로그인 처리는 Filter와 Interceptor중 무엇을 선택해야 할까?
2022. 4. 11. 19:27
Spring
Filter와 Interceptor(로그인 처리, 스프링) 서론 토이 프로젝트로 로그인을 인터셉터로 구현하던 중이었다. 그런데 팀원 중 한 분이 시큐리티는 필터를 사용하는데 무엇을 써야할지에 대한 의문을 내셨다. 나는 인터셉터가 제공하는 기능들이 편리하기 때문에 사용했는데 조금 더 알아보기로 했다. 차이점 Filter와 Interceptor는 실행 시점이 다르다. Filter는 스프링 밖에 Web Application에 존재하고, Interceptor는 스프링에 존재한다. Filter는 스프링에 오기 전에 처리할 수 있기 때문에 스프링까지 들어오는 필요를 줄여준다. Interceptor는 스프링이 기능을 제공하기 때문에 편리하다. 대략 이런 내용들이 많다. @ExceptionHandler 솔직히 경험이 ..
Interceptor 예외를 @ExceptionHandler가 핸들링 가능할까?
2022. 4. 11. 18:42
Spring
Interceptor에서 예외를 응답 해주는 방법 postman 요청은 성공? 다른 서버에서는 실패? // /error 는 스프링 부트가 제공하고 있기 때문에 커스텀 해도 스프링을 타게 되기 때문에(BasicErrorController.java) // /api/error 와 같이 커스텀 해야한다. request.setAttribute("message", "로그인이 필요한 서비스"); request.getRequestDispatcher("/error").forward(request, response); 문제 HandlerInterceptor에서 예외를 RestControllerAdvice가 핸들링하지 못한다. 상황이 어떤가 살펴보자. 소셜 로그인을 시도한다. authorization code가 유효하지 않..