即使使用带有url模式的@WebFilter,Spring Boot映射也会过滤到/ *

时间:2016-06-09 22:54:43

标签: java spring spring-mvc web-applications spring-boot

我在Spring Boot应用程序(1.3.5)中定义了一个过滤器,注释如下

@WebFilter(urlPatterns = {"/api/*"}, description = "Create sessions only for API requests.")
public class SessionFilter implements Filter {

我想使用此过滤器在数据库中仅为API请求创建会话记录。但是,我也看到此过滤器也被调用/favicon.ico请求。我也用@ServletComponentScan注释了我的主要课程。所有类都在主类的子包下。

从日志中,我看到[/*]正在映射到过滤器。我不明白为什么。

[2016-06-09 22:39:34] [ INFO] [ost-startStop-1] [] [o.s.b.c.embedded.FilterRegistrationBean ][configure                : 271] - Mapping filter: 'com.mycompany.package.filter.SessionFilter' to urls: [/api/*]
[2016-06-09 22:39:34] [ INFO] [ost-startStop-1] [] [o.s.b.c.embedded.FilterRegistrationBean ][configure                : 258] - Mapping filter: 'sessionFilter' to: [/*]

我还注册了以下内容以启用Servlet 3.0 API。

@Configuration
public class WebConfigurer implements ServletContextInitializer {

我在嵌入式tomcat中运行。

更新

当我添加filterName参数mySessionFilter时,日志如下所示。我还必须将@Configuration添加到过滤器以获取此功能。

[2016-06-14 18:55:58] [ INFO] [ost-startStop-1] [] [o.s.b.c.embedded.FilterRegistrationBean ][configure                : 271] - Mapping filter: 'mySessionFilter' to urls: [/api/*]
[2016-06-14 18:55:58] [ INFO] [ost-startStop-1] [] [o.s.b.c.embedded.FilterRegistrationBean ][configure                : 258] - Mapping filter: 'sessionFilter' to: [/*]

0 个答案:

没有答案