我有一个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以拦截所有请求?
由于
答案 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);
}
}