Skip to content

Conversation

@DongHyeonka
Copy link
Contributor

✨ PR 작업 내용

  • spring ai를 활용하여 ai 모델을 쉽게 가져올 수 있도록 하였습니다.
  • 순수 websocket이 아닌 stomp를 사용하기에 테스트를 위한 html 환경을 작성하였습니다.
  • 기존에는 websocketsecurity 어노테이션을 통해서 보안을 구성하였지만 내부적으로 csrf 검증 로직이 자동 활성화 되기에 현재 jwt 검증과는 맞지 않는 방식이어서 이 부분을 제거하고 websocketinterceptor 단에서 jwt 검증을 하도록 하여 보안을 강화하였습니다.

handshakehandler vs websocketinterceptor : 핸들러와 인터셉터에서 jwt 검증하는 로직을 작성할 수 있는데 handler에서 이러한 작업을 하게 될 경우 stomp는 인증된 사용자를 모르기에 인증된 사용자를 stomp프로토콜로 넘겨줘야 하는 로직이 추가로 필요할 수 있습니다. 또한 핸들러는 연결시 한번만 동작하기에 검증 위치가 적절하지 않습니다. 인터셉터는 메시지 자체에 대해서 세부적인 컨트롤이 가능하기에 여기서 jwt 검증을 하게 된다면 바로 인증된 사용자를 stompheaderaccessor에 인증 객체를 담을 수 있습니다. 따라서 여기서 이러한 검증을 구현하게 된다면 권한에 따른 메시지 접근 또한 추가적으로 고려해 볼 수 있습니다.

- 불필요한 코드 및 중복 코드 제거
- Spring AI 라이브러리를 활용한 ai 모델 연동
- factory 패턴을 통해 타입에 따른 서비스 호출 구현
- websocketsecurity 삭제 : 기존에 jwt 인증에서는 csrf 인증이 불필요 한대 사용으로 처리되고 있었고 자동적으로 이 websocketsecurity에서 csrf 토큰 검증 interceptor가 등록되어 동작하기 때문에 이는 불필요 하다. 따로 websocketinterceptor에서 jwt 검증만으로도 충분함 따라서 제거
- testcode 코드 추가 : controller, ai, message, session 관리 testcode 작성
@DongHyeonka DongHyeonka self-assigned this Aug 29, 2025
@DongHyeonka DongHyeonka merged commit fd5a3fe into Synapsesa:develop Aug 29, 2025
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant