1.문제 정의
- 문제 요약 : 필터단에서 일어나는 커스텀 예외 처리 문제 발생
- 발생 일시 : 2024년 6월 19일
- 발생 장소 : 로컬 개발 서버
2. 증상 기술
- 상세 증상 : 시큐리티 필터단에서 오류가 발생 시, @ExceptionHandler가 적용되지 않아 커스텀 예외 처리가 되지 않고 그대로 오류 메시지가 노출되는 문제 발생
3. 원인 분석
- 원인 가설 :
- ExceptionHandler의 처리 순서 :
- @ExceptionHandler는 디스패처 서블릿 뒤에서 처리되는데, 시큐리티 필터는 디스패처 서블릿에 도달하기 전에 실행되므로 @ExceptionHandler가 실행되지 않을 가능성.
- 필터에서 직접 예외 처리 필요 :
- 시큐리티 필터에서 발생하는 예외는 필터 자체에서 처리해야 할 가능성.
- 전역 예외 처리 미설정 :
- 전역 예외 처리 핸들러가 필터에서 발생하는 예외를 처리하도록 설정되지 않았을 가능성.
- 검증 과정 :
- ExceptionHandler의 처리 순서 검증:
- 필터에서 예외 발생 시 @ExceptionHandler가 호출되는지 확인.
- 필터 내에서 예외 발생후, 로그를 통해 @ExceptionHandler가 호출되지 않는지 확인.
- 필터에서 예외 처리 검증 :
- 필터를 커스텀하여 예외 처리가 되는지 확인
- 전역 예외 처리 설정 검증 :
- 전역 예외 처리 핸들러를 수정하여 필터에서 발생하는 예외를 처리하도록 설정하고, 예외 발생 시 커스텀 응답이 반환되는지 확인.
- 최종 원인 : 시큐리티의 필터는 디스패쳐 서블릿에 도달하기전에 실행되기때문에 @ExceptionHandler이 실행되지않기때문에 필터단에서 예외를 처리 해야한다.
- 첨부 사진 :

▶ 필터단 커스텀 예외가 실행되는 것을 볼 수있다.
4. 해결 방법