Skip to content

Commit 4640249

Browse files
committed
hotfix : interceptor 수정
1 parent 7ffd511 commit 4640249

File tree

2 files changed

+11
-4
lines changed

2 files changed

+11
-4
lines changed

src/main/java/ita/tinybite/domain/chat/controller/ChatController.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,6 @@ public void sendMessage(ChatMessageReqDto req,
4444
// message 저장
4545
ChatMessage saved = chatService.saveMessage(message);
4646

47-
log.info("[chat log] send message: {}, [{}] - {}", saved.getSenderId(), saved.getMessageType(), saved.getContent());
4847
// subscribe 한 사용자에게 전송
4948
simpMessagingTemplate.convertAndSend("/subscribe/chat/room/" + saved.getChatRoomId(), ChatMessageResDto.of(saved, userId));
5049

src/main/java/ita/tinybite/domain/chat/service/StompAuthInterceptor.java

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import ita.tinybite.domain.auth.entity.JwtTokenProvider;
44
import lombok.RequiredArgsConstructor;
5+
import lombok.extern.slf4j.Slf4j;
56
import org.jetbrains.annotations.NotNull;
67
import org.springframework.messaging.Message;
78
import org.springframework.messaging.MessageChannel;
@@ -14,6 +15,7 @@
1415
/**
1516
* http가 아닌, 웹소켓에서 인증을 위한 인터셉터 (filter는 사용 안됨)
1617
*/
18+
@Slf4j
1719
@Component
1820
@RequiredArgsConstructor
1921
public class StompAuthInterceptor implements ChannelInterceptor {
@@ -23,12 +25,18 @@ public class StompAuthInterceptor implements ChannelInterceptor {
2325
@Override
2426
public Message<?> preSend(@NotNull Message<?> message, @NotNull MessageChannel channel) {
2527
StompHeaderAccessor accessor = MessageHeaderAccessor.getAccessor(message, StompHeaderAccessor.class);
28+
log.info("StompAuthInterceptor preSend");
2629

2730
if(StompCommand.CONNECT.equals(accessor.getCommand())) {
28-
String auth = accessor.getFirstNativeHeader("Authorization").substring("Bearer ".length());
31+
String authHeader = accessor.getFirstNativeHeader("Authorization");
2932

30-
jwtTokenProvider.validateToken(auth);
31-
Long userId = jwtTokenProvider.getUserId(auth);
33+
if (authHeader == null || !authHeader.startsWith("Bearer ")) {
34+
throw new IllegalArgumentException("Missing or invalid Authorization header");
35+
}
36+
37+
String token = authHeader.substring(7);
38+
jwtTokenProvider.validateToken(token);
39+
Long userId = jwtTokenProvider.getUserId(token);
3240
accessor.getSessionAttributes().put("userId", userId);
3341
}
3442
return message;

0 commit comments

Comments
 (0)