rla*_*d9k 2 java spring spring-security spring-boot
我正在注册一个过滤器,如下所示用于日志输出
我想要网址模式:/*/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;
}
Run Code Online (Sandbox Code Playgroud)
由于代码注册了 Servlet Filter,因此 URL 模式必须符合 Servlet/Filters 支持的 URL 映射,如 Servlet 规范中所指定:
\n\n12.2 映射规范
\n在 Web 应用程序部署描述符中,使用以下语法来定义映射:
\n\n
\n- \n
以字符开头
\n/并以/*后缀结尾的字符串用于路径映射。- \n
以前缀开头的字符串
\n*.用作扩展映射。- \n
空字符串 ("") 是一种特殊的 URL 模式,它精确映射到应用程序的上下文根,即表单的请求
\nhttp://host:port/<context-root>/。在本例中,路径信息为/,servlet 路径和上下文路径为空字符串 (\xe2\x80\x9c\xe2\x80\x9c)。- \n
仅包含该字符的字符串
\n/表示应用程序的“默认”servlet。在这种情况下,Servlet 路径是请求 URI 减去上下文路径,并且路径信息为空。- \n
所有其他字符串仅用于精确匹配。
\n
因此,一个 URL 只能有一个通配符,并且它必须是第一个或最后一个:
\n/some/path/**.ext| 归档时间: |
|
| 查看次数: |
2940 次 |
| 最近记录: |