Interceptor란 Controller에 들어오는 요청 HttpRequest와 Controller가 응답하는 HttpResponse를 가로채는 역할을 한다.
이를 활용해 예시로 로그인이 필요한 페이지에 접근하기 전 로그인 인증을 하는 용도 등 사용할 수 있다.
Interceptor는 Filter와 역할이 유사하지만 차이가 분명히 있다.
이 글에서는 로그인이 필요한 페이지에 접근하기 전 로그인 인증을 하는 예제를 구현하려고 한다.
설정
/profile/** 경로의 모든 요청을 가로채서 com.project.pet.interceptor 패키지에 있는 NonLoginInterceptor 객체를 실행한다는 코드이다.
HandlerInterceptor Interface 구현
먼저 HandlerInterceptor Interface를 구현하여야 하는데
그러기 위해서는 preHandle Method, postHandle Method, afterCompletion Method를 구현해야 한다.
각 Method는 예제의 주석과 같이 실행된다.
각 Method의 반환 값이 true이면 Handler의 다음 실행이 진행되지만 false이면 남은 Interceptor와 Controller가 실행되지 않는다.
테스트를 위해서 설정했었던 경로의 Controller를 작성하여 URL를 요청해보면 되겠다.
이렇게 Interceptor의 개념과 예제를 간단히 포스팅해 보았다.