Spring Interceptor를 냅다 사용해보는 시간이다.
냅다 사용해 본 후 궁금한 내용들을 파헤칠 것이다.
[사용 목표]
특정 컨트롤러로 접근 시 DB에 해당 사용자 계정이 있는지 확인.
//빈 껍데기 어노테이션을 만들어준다.
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface Auth {
}
먼저, HandlerInterceptor 구현체를 만들어 인터셉터를 구현해준다.
나는 Controller호출 전 처리를 구현할거기 때문에 preHandle만 구현해주었다.
주요 로직
주요로직
[부팅로그]
[10:46:01.214] INFO [org.springframework.security.web.DefaultSecurityFilterChain.<init>:55] - Will secure any request with [org.springframework.security.web.session.DisableEncodeUrlFilter@14e6a2ed
(생략)
[10:46:02.078] INFO [com.kosaf.core.config.interceptor.AuthInterceptor.addInterceptors:17] - 언제호출? AuthInterceptor
위 로그에서 확인할 수 있듯이, 각종 filter등록이 끝나면 interceptor도 등록한다.
[controller 진입 요청]
[10:46:12.320]INFO [com.kosaf.core.config.interceptor.UserAuthInterceptor.preHandle:25]
- handler..? com.kosaf.core.web.replaceKeyword.presentation.ReplaceKeywordController#replaceKeyword()
진입 요청 이후에는 내가 2번에서 만든 HandlerInterceptor 구현체의 preHandle로 들어오는 것을 확인할 수 있다.