2016년 6월 28일 화요일

spring mvc의 exceptionHandler에서 mediaType 정보 획득하기

Spring MVC 를 사용하다보면 contentNegotiatingViewResolver 는 거의 필수 사용 설정이다.

따라서 exceptionHandler를 사용할 때에도 mediaType에 따라 응답 결과를 처리해야한다.

이 때 가장 많이 고민하게 되는 부분이 Spring Security를 사용하는 경우 응답처리였다.

json으로 요청한 경우는 로그인이 필요하다는 exceptionMessage를 내려보내주고 html로 요청한 경우 security에서 처리한 로그인 페이지로 가는 처리를 할 필요가 있다.

이를 위해서는

  1. 응답요청에 대한 MediaType
  2. method 에 설정한 @RequestMapping  타입의 produces의 MediaType
  3. controller 에 설정한 @RequestMapping 의 produces의 MediaType

이 두 가지에 대해 exceptionHandler에서 확인이 가능해야한다.

다음과 같이 확인이 가능하다.


댓글 없음:

댓글 쓰기