Skip to content

[Fix] 관리자 역할 회수 후 WebSocket 대시보드 접근 차단 - #373

Merged
Gimini-3 merged 5 commits into
developfrom
fix/371
Oct 1, 2026
Merged

Gimini-3 merged 5 commits into
developfrom
fix/371

Conversation

@Gimini-3

@Gimini-3 Gimini-3 commented Oct 1, 2026 •

Copy link
Copy Markdown
Contributor

배경

PR #366에서 관리자 역할 회수 HTTP 응답 뒤에도 기존 STOMP Principal의 ADMIN snapshot 때문에 새 대시보드 구독과 기존 구독 push가 주기 재검증 전까지 허용되는 것을 확인했습니다.

변경

  • 새 /topic/dashboard SUBSCRIBE에서 현재 primary 역할을 다시 확인하고 조회 실패 시 거부합니다.
  • clientOutboundChannel에서 기존 구독자별 대시보드 MESSAGE를 전달하기 직전 primary 역할을 확인합니다. 회수·조회 실패 시 메시지를 버리고 해당 세션을 닫습니다.
  • sessionId로 열린 물리 WebSocket의 인증 snapshot을 찾는 조회 경계를 추가했습니다.
  • 실제 HTTP 역할 회수, PostgreSQL, Redis, STOMP 구독·push를 잇는 시험을 갱신했습니다. 오래된 ADMIN 캐시를 의도적으로 넣어도 관리자 데이터가 나가지 않는지 확인합니다.
  • 실행 명령, 결과, 성능 비용과 미검증 범위를 결과 문서에 기록했습니다.

테스트 환경

항목 실제 시험 환경
실행 위치 개발자 로컬 컴퓨터에서 Spring Boot 통합 테스트 실행
데이터 저장·캐시 로컬 PostgreSQL·Redis 서비스에 실제 연결
시험 경로 HTTP 역할 회수 → DB 커밋·캐시 처리 → STOMP 구독·대시보드 push
클라우드 VM 이 PR의 검증에는 GCP VM을 사용하지 않음(0대). OpenSQL 3노드·OpenProxy·다중 백엔드 부하는 미검증

검증

  • 관련 5 suite, 36 test 통과. 실제 로컬 PostgreSQL·Redis 통합 시험에서 회수 사용자에게 새 push 0건, 다른 ADMIN 구독자에게 같은 push 전달을 확인했습니다.
  • 마지막 통합 시험 강화 전 전체 1,257 test는 통과했습니다. 최종 코드에서 전체 재실행은 로컬 PostgreSQL의 too many clients already 때문에 완료되지 않았습니다. 관련 대상 36건은 최종 코드로 다시 통과했습니다.
  • git diff origin/develop...HEAD --check 통과.
  • GCP 3노드 OpenProxy, 다중 백엔드, 처리량·p95·p99, 회수 전 인가를 통과한 in-flight 메시지는 검증하지 않았습니다.

Closes #371

@Gimini-3
Gimini-3 requested a review from kangcheolung October 1, 2026 07:52
@coderabbitai

coderabbitai Bot commented Oct 1, 2026

Copy link
Copy Markdown

Important

  • 🔍 Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

⚙️ Run configuration

Configuration used: Repository: DocGrid/docgrid/.coderabbit.yaml

Review profile: CHILL

Plan: Advanced

Run ID: 1685d6a4-b9ba-4e36-85e4-2eb3f1b6bbb5

  • Autopilot · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Autopilot is currently an internal CodeRabbit preview.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@Gimini-3
Gimini-3 merged commit 85bf35a into develop Oct 1, 2026
1 check passed
@Gimini-3 Gimini-3 self-assigned this Oct 1, 2026
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.

[Fix] 관리자 역할 회수 후 WebSocket 대시보드 접근 차단

1 participant