ADMIN 권한 검증 시 에러 문제
문제: USER 권한으로 ADMIN 권한 전용 경로에 접근 시 로그에는 ForbiddenException이 발생하지만, 응답이 적절히 처리되지 않아 서버 에러가 발생(ADMIN 권한 검증 시 오류 발생)
원인:
응답 반환 누락
- authenticate 메소드에서 관리자 권한을 확인하고, 권한이 없으면 ForbiddenException을 던짐.
- doFilterInternal 메소드에서도 이 예외를 catch해서 응답을 처리하는 구조임.
- 하지만, doFilterInternal 메소드에서 응답 누락 문제가 발생하였고, 이 때문에 에러가 발생하였음.
해결:
doFilterInternal 메소드에서 응답 반환을 하게 수정했음
- authenticate 메소드에선 예외를 던지기만 할 뿐, 응답 반환은 하지 않음. 인증 실패를 알려주기만 하는 것임.
- 응답 반환을 포함하는 예외 처리 자체는 doFilterInternal 메소드에서 이뤄지게 수정하였음.


이중필터 문제라고 생각하였으나, 잘 생각해보니 그냥 doFilterInternal메소드에서 응답 반환을 누락한 게 본질적 문제였음.
authenticate 메소드에서 ForbiddentException 예외 던지기를 하고, doFilterInternal 메소드에서 ForbiddentException 예외를 catch하여 상태 코드 및 문구를 응답 반환하는 구조임. 두 메소드가 복잡하게 얽혀 있어서 이중필터라고 볼 수도 있지만, 응답 처리의 책임을 분리한 방식이고, 응답 처리의 중복을 피하는 방식을 사용함으로써 '응답 처리의 중복'을 피한 것이다.
'Archive > 예전 TIL' 카테고리의 다른 글
| JPA: N+1 문제란? (0) | 2025.05.16 |
|---|---|
| JPA 쿼리를 활용한 성능 개선 (0) | 2025.02.18 |
| 토큰 매개 변수 이름과 HTTP 헤더 값 충돌 (0) | 2025.01.22 |
| 트러블슈팅: plus_week (0) | 2024.12.20 |
| 트러블슈팅(: 아웃소싱 프로젝트) (0) | 2024.12.07 |