문제
현재 STOMP 인가 로직은 정확한 dashboard 목적지만 검사하지만, SimpleBroker는 pattern 형태의 구독도
처리합니다. 이 차이로 인가 대상 목적지를 다른 형태로 구독할 수 있고, RAG 사용자 queue와
dashboard 이외 목적지의 client SEND도 명시적인 정책 없이 열려 있습니다.
목표
- client가 구독할 수 있는 목적지를 정확한 허용 목록으로 제한합니다.
/topic/dashboard는 ROLE_ADMIN만 구독할 수 있게 유지합니다.
/user/queue/rag-answer는 인증된 사용자만 구독할 수 있게 유지합니다.
- pattern, 내부 broker queue, 알 수 없는 목적지 구독을 거부합니다.
- 서버만 push를 발행하는 현재 구조에 맞춰 client
SEND를 거부합니다.
- 실제 WebSocket과 SimpleBroker를 포함한 회귀 테스트를 추가합니다.
비목표
- 로그아웃·token 만료 후 이미 열린 session을 강제로 종료하는 정책은 다루지 않습니다.
- 새로운 WebSocket destination이나 client message 기능을 추가하지 않습니다.
완료 조건
- 현재 프런트의 dashboard와 RAG 정확한 구독이 정상 동작합니다.
- 권한 없는 dashboard 구독, pattern 구독, 알 수 없는 목적지, client
SEND가 거부됩니다.
- 단위·통합·전체 Backend 테스트와 build가 통과합니다.
- 설계와 실행 결과를 각각
docs/design, docs/test-results에 기록합니다.
문제
현재 STOMP 인가 로직은 정확한 dashboard 목적지만 검사하지만, SimpleBroker는 pattern 형태의 구독도
처리합니다. 이 차이로 인가 대상 목적지를 다른 형태로 구독할 수 있고, RAG 사용자 queue와
dashboard 이외 목적지의 client
SEND도 명시적인 정책 없이 열려 있습니다.목표
/topic/dashboard는ROLE_ADMIN만 구독할 수 있게 유지합니다./user/queue/rag-answer는 인증된 사용자만 구독할 수 있게 유지합니다.SEND를 거부합니다.비목표
완료 조건
SEND가 거부됩니다.docs/design,docs/test-results에 기록합니다.