From 092378c07af88344d61cc1a9b8032cbe7e8f7c72 Mon Sep 17 00:00:00 2001 From: BAEK0111 Date: Tue, 16 Sep 2025 23:15:36 +0900 Subject: [PATCH] =?UTF-8?q?refactor/#38=20-=20chatting=EC=9D=84=20?= =?UTF-8?q?=EC=9C=84=ED=95=9C=20SecurityConfig,=20WebSocketConfig=20?= =?UTF-8?q?=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/chat/config/WebSocketConfig.java | 15 +++++++++------ .../domain/chat/service/ChatServiceImpl.java | 2 ++ .../assu/server/global/config/SecurityConfig.java | 2 +- 3 files changed, 12 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/assu/server/domain/chat/config/WebSocketConfig.java b/src/main/java/com/assu/server/domain/chat/config/WebSocketConfig.java index cdb02cb4..7e87bf5d 100644 --- a/src/main/java/com/assu/server/domain/chat/config/WebSocketConfig.java +++ b/src/main/java/com/assu/server/domain/chat/config/WebSocketConfig.java @@ -1,6 +1,7 @@ package com.assu.server.domain.chat.config; import org.springframework.context.annotation.Configuration; +import org.springframework.messaging.simp.config.ChannelRegistration; import org.springframework.messaging.simp.config.MessageBrokerRegistry; import org.springframework.web.socket.config.annotation.*; @@ -8,25 +9,27 @@ @EnableWebSocketMessageBroker public class WebSocketConfig implements WebSocketMessageBrokerConfigurer { + @Override public void registerStompEndpoints(StompEndpointRegistry registry) { - registry.addEndpoint("/ws/chat") // 클라이언트 WebSocket 연결 지점 + registry.addEndpoint("/ws") // 클라이언트 WebSocket 연결 지점 .setAllowedOriginPatterns( + "*", + "https://assu.shop", "http://localhost:63342", "http://localhost:5173", // Vite 기본 "http://localhost:3000", // CRA/Next 기본 "http://127.0.0.1:*", - "http://192.168.*.*:*") // 같은 LAN의 실제 기기 테스트용 - .withSockJS(); // fallback for old browsers + "http://192.168.*.*:*"); // 같은 LAN의 실제 기기 테스트용 + // fallback for old browsers - // ✅ 모바일/안드로이드용 (네이티브 WebSocket) - registry.addEndpoint("/ws/chat-native") - .setAllowedOriginPatterns("*"); // wss 사용 시 TLS 세팅 } @Override public void configureMessageBroker(MessageBrokerRegistry registry) { registry.setApplicationDestinationPrefixes("/pub"); // 클라이언트가 보내는 prefix registry.enableSimpleBroker("/sub"); // 서버가 보내는 prefix + registry.enableSimpleBroker("/certification"); // 인증현황을 받아보기 위한 구독 주소 + registry.setApplicationDestinationPrefixes("/app"); // 클라이언트가 인증 요청을 보내는 주소 } } diff --git a/src/main/java/com/assu/server/domain/chat/service/ChatServiceImpl.java b/src/main/java/com/assu/server/domain/chat/service/ChatServiceImpl.java index cd8d672a..f732a7f4 100644 --- a/src/main/java/com/assu/server/domain/chat/service/ChatServiceImpl.java +++ b/src/main/java/com/assu/server/domain/chat/service/ChatServiceImpl.java @@ -95,6 +95,8 @@ public ChatResponseDTO.SendMessageResponseDTO handleMessage(ChatRequestDTO.ChatM log.info("saved message start"); Message saved = messageRepository.saveAndFlush(message); log.info("saved message middle"); + log.info("REQ roomId={}, senderId={}, receiverId={}, message={}", + request.roomId(), request.senderId(), request.receiverId(), request.message()); log.info("saved message id={}, roomId={}, senderId={}, receiverId={}", saved.getId(), room.getId(), sender.getId(), receiver.getId()); diff --git a/src/main/java/com/assu/server/global/config/SecurityConfig.java b/src/main/java/com/assu/server/global/config/SecurityConfig.java index 8d7f72b8..186af88d 100644 --- a/src/main/java/com/assu/server/global/config/SecurityConfig.java +++ b/src/main/java/com/assu/server/global/config/SecurityConfig.java @@ -22,7 +22,7 @@ public SecurityFilterChain filterChain(HttpSecurity http, JwtAuthFilter jwtAuthF .requestMatchers(HttpMethod.OPTIONS, "/**").permitAll() // ✅ WebSocket 핸드셰이크 허용 (네이티브 + SockJS 모두 포함) - .requestMatchers("/ws/**").permitAll() + .requestMatchers("/ws","/ws/**").permitAll() // Swagger 등 공개 리소스 .requestMatchers(