Java FilterRegistrationBean url模式没有';行不通
我正在为日志输出注册一个如下所示的过滤器 我想要url模式:Java FilterRegistrationBean url模式没有';行不通,java,spring,spring-boot,spring-security,Java,Spring,Spring Boot,Spring Security,我正在为日志输出注册一个如下所示的过滤器 我想要url模式:/*/api/* @Bean public CommonsRequestLoggingFilter commonsRequestLoggingFilter() { CommonsRequestLoggingFilter filter = new CommonsRequestLoggingFilter(); filter.setIncludeClientInfo(true); filter.setIncludeH
/*/api/*
@Bean
public CommonsRequestLoggingFilter commonsRequestLoggingFilter() {
CommonsRequestLoggingFilter filter = new CommonsRequestLoggingFilter();
filter.setIncludeClientInfo(true);
filter.setIncludeHeaders(true);
filter.setIncludePayload(true);
filter.setIncludeQueryString(true);
filter.setMaxPayloadLength(1000);
return filter;
}
@Bean
public FilterRegistrationBean filterRegistrationBean () {
final FilterRegistrationBean registrationBean = new FilterRegistrationBean();
registrationBean.addUrlPatterns("/*/api/*");
return registrationBean;
}
由于代码注册Servlet
过滤器
,因此URL模式必须符合Servlet规范中指定的Servlet/Filters支持的URL映射:
12.2映射规范
在Web应用程序部署描述符中,以下语法用于定义映射:
- 路径映射使用以
字符开头,以/
后缀结尾的字符串/*
- 以
前缀开头的字符串用作扩展映射*。
- 空字符串(“”)是一种特殊的URL模式,它精确地映射到应用程序的上下文根,即
。在这种情况下,路径信息是http://host:port//
,servlet路径和上下文路径是空字符串(“”)/
- 仅包含
字符的字符串表示应用程序的“默认”servlet。在这种情况下,servlet路径是请求URI减去上下文路径,路径信息为空/
- 所有其他字符串仅用于精确匹配
/some/path/*
*.ext