Skip to content

Latest commit

 

History

History
38 lines (20 loc) · 2.63 KB

6주차 - 진행한 작업들.md

File metadata and controls

38 lines (20 loc) · 2.63 KB

Spring Security 예외처리 구현

Spring Security는 Servlet Filter 위에서 동작하기 때문에, ExceptionResolver에 의해 처리되지 않는다.

따라서 별도의 예외처리 로직을 구현해야 한다.

그 외 Spring Container 안에서 발생하는 예외는 전역으로 @RestControllerAdvice 가 붙은 RestExceptionHandlerAdvice라는 객체에서 처리하고 있는 상황이다.

Spring Security에서 발생한 예외도 기존 방식과 통일성 있게 @RestControllerAdvice를 사용해 예외처리 하였다.

그리고 이러한 방식의 장점이 HandlerExceptionResolver에 예외처리를 위임하므로, 인증 예외가 아닌 나머지 비즈니스로직의 예외는 기존의 RestExceptionHandlerAdvice에서 처리하게 된다. (아니면 따로 예외처리를 해 주어야 하는데, 동일한 예외를 처리하므로 중복이 발생한다.)

(이전에 프로젝트를 진행할때는 Spring Security에서 예외를 처리하는 AuthenticationEntryPoint나 AccessDeniedHandler를 상속받고, 해당 객체에서 바로 예외메시지를 반환하도록 처리하였다. 참고1, 2)

Spring Security 공식문서Bealdung - Handle Spring Security Exceptions With @ExceptionHandler를 참고하여 구현하였다.

또한 ExceptionResolver에 대해서 잘 모르고 있어서, 따로 공부하고 정리하였다.

500 status code 반환 시 예외메시지 노출 문제 수정

f-lab-edu/celog#26

Github Actions을 사용한 CI 구현

f-lab-edu/celog#30

진행 도중 발생한 문제

CI가 실패하였고, 로그를 보니 아래 에러 로그가 있었다. Error: HttpError: Resource not accessible by integration

구글링으로 권한 부족해서 생긴 에러라고 파악 jacoco 리포트를 작성하는 부분에서 PR 쓰기 권한이 누락된 걸 확인함