From 3d65b5eb67a7cc35631c3fb3263864c73c068799 Mon Sep 17 00:00:00 2001 From: khee2 <21keunghee@gmail.com> Date: Wed, 12 Jun 2024 15:02:58 +0900 Subject: [PATCH] =?UTF-8?q?[feat]=20=EB=B0=9C=ED=96=89,=20=EA=B5=AC?= =?UTF-8?q?=EB=8F=85=EC=8B=9C=20=ED=86=A0=ED=81=B0=20=EA=B2=80=EC=A6=9D=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Backend/global/config/AuthChannelInterceptor.java | 11 +++++++++-- .../SafeNet/Backend/global/config/WebSockConfig.java | 5 ++++- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/SafeNet/Backend/global/config/AuthChannelInterceptor.java b/src/main/java/com/SafeNet/Backend/global/config/AuthChannelInterceptor.java index 73aa6f7..849828e 100644 --- a/src/main/java/com/SafeNet/Backend/global/config/AuthChannelInterceptor.java +++ b/src/main/java/com/SafeNet/Backend/global/config/AuthChannelInterceptor.java @@ -29,8 +29,14 @@ public AuthChannelInterceptor(JwtTokenProvider jwtTokenProvider) { @Override public Message preSend(Message message, MessageChannel channel) { StompHeaderAccessor accessor = StompHeaderAccessor.wrap(message); - if (StompCommand.CONNECT.equals(accessor.getCommand())) { + + if (StompCommand.CONNECT.equals(accessor.getCommand()) || + StompCommand.SUBSCRIBE.equals(accessor.getCommand()) || + StompCommand.SEND.equals(accessor.getCommand())) { + String token = accessor.getFirstNativeHeader("ACCESS_TOKEN"); + log.debug("Received ACCESS_TOKEN in Interceptor: {}", token); + try { if (token != null && token.startsWith("Bearer ")) { token = token.substring(7); @@ -48,6 +54,7 @@ public Message preSend(Message message, MessageChannel channel) { throw e; } } + return message; } -} \ No newline at end of file +} diff --git a/src/main/java/com/SafeNet/Backend/global/config/WebSockConfig.java b/src/main/java/com/SafeNet/Backend/global/config/WebSockConfig.java index 0179e5c..946c5ac 100644 --- a/src/main/java/com/SafeNet/Backend/global/config/WebSockConfig.java +++ b/src/main/java/com/SafeNet/Backend/global/config/WebSockConfig.java @@ -32,4 +32,7 @@ public void registerStompEndpoints(StompEndpointRegistry registry) { registry.addEndpoint("/ws-stomp").setAllowedOriginPatterns("*") // stomp websocket 연결 .withSockJS(); } -} \ No newline at end of file +} + +// WebSocket 메시지의 헤더에서 ACCESS_TOKEN을 추출하고 검증 +// 유효한 토큰이 있는 경우 사용자 인증 정보를 설정하고, 유효하지 않은 경우 연결을 차단 \ No newline at end of file