Spring Data Rest와 JPA가있는 프로젝트에서 작업 중이며 HTTP 인터셉터를 구성하려고합니다.Spring Data REST URL에서 Spring 인터셉터가 작동하지 않습니다.
@Configuration
public class WebMvcConfig extends WebMvcConfigurerAdapter {
@Autowired
DBEditorTenantInterceptor dbEditorTenantInterceptor;
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(dbEditorTenantInterceptor)
.addPathPatterns("/**");
}
}
Spring Web MVC Docs - Config Interceptors에서 설명한 바와 같이 (다음
@Component
public class DBEditorTenantInterceptor extends HandlerInterceptorAdapter {
Logger logger = LoggerFactory.getLogger(DBEditorTenantInterceptor.class);
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
throws Exception {
logger.debug("********** INTERCEPTION SUCCESSFUL **********");
return true;
}
}
및 WebMvcConfig를 확장하여 인터셉터 등록 : 참조 문서 당으로 Spring Web MVC Docs - Handler Mapping Interceptor 가능 는, I는 다음과 같이 HandlerInterceptorAdapter 확장 컴포넌트를 만들어/helloworld와 같은 Spring Data REST에서 사용하지 않는 URL에 HTTP 요청을 발행합니다. 로거 출력을 보면 예상대로 인터셉터가 작동합니다.
017-10-26 13:16:24.689 DEBUG 17012 --- [p-nio-80-exec-4] c.c.v.d.DBEditorTenantInterceptor : ********** INTERCEPTION SUCCESSFUL **********
그러나 스프링 데이터 휴식으로 URL을 사용하면 인터셉터가 호출되지 않습니다. 이는/api/{모델의 기존 엔티티}에 적용됩니다.
스프링 데이터 나머지 URL에 대해 인터셉터가 호출되지 않는 이유는 무엇입니까? 모든 요청에 대해 인터셉터를 작동 시키려면 어떻게해야합니까?
미리 감사드립니다.