SpringBoot HandlerInterceptor没有拦截库端点

时间:2017-11-06 05:44:48

标签: spring-boot spring-security spring-security-oauth2

我有一个SpringBoot应用程序,我已经实现了一个HandlerInterceptor来记录有关API使用的一般信息。我希望它也将请求记录到Spring Security's OAuth2 endpoint,但它不会拦截请求。

@Configuration
public class WebConfiguration extends WebMvcConfigurerAdapter {

@Override
public void addInterceptors(InterceptorRegistry registry) {

    // register the interceptor that will write API usage info to a file
    registry.addInterceptor(new ServiceUsageInterceptor());
}

如何配置HandlerInterceptor以拦截所有请求?

由于

1 个答案:

答案 0 :(得分:0)

这与拦截器无关。使用嵌入式Tomcat中的自定义AccessLogValve将用法写入日志文件。更新模式似乎解决了这个问题。

@Override
public void customize(ConfigurableEmbeddedServletContainer container) {
        TomcatEmbeddedServletContainerFactory factory = (TomcatEmbeddedServletContainerFactory) container;
        CustomAccessLogValve accessLogValve = new CustomAccessLogValve();
        accessLogValve.setEnabled(true);

        // set pattern
        accessLogValve.setPattern("timestamp=\"%t\" local_host=\"%v\" status=\"%s\" remote_host=\"%h\" client_id=\"%q\" uri=\"%r\" execution_time=\"%D\"");

        factory.addContextValves(accessLogValve);
    }
}