springboot 通过@WebFilter(urlPatterns )配置Filter过滤路径,没有配置/*,输入任何路径都能进过滤器

@Slf4j
@Component
@ServletComponentScan
@WebFilter(urlPatterns = {"/config/*","/driver/*","/order/*","/im/*","/privacy/*","/config/*"}, filterName = "apiFilter")
public class SecurityRequestFilter implements Filter {
}

以上代码,urlPatterns 没有指名要过滤“/”根路径,但是在输入http://localhost:8080/之后,却能进入filter。

启动打印日志如下:

 观察日志可以看出,注册的过滤器除了使用filterName = "apiFilter"显示注册的外,还隐试注册了一个以类名首字母为小写的过滤器(securityRequestFilter )

解决方法:filterName = "apiFilter" 修改为 filterName = "securityRequestFilter",覆盖掉隐试注册的过滤器,这样就可以避免注册多个过滤器。从而解决输入任何路径都能进过滤器的问题。

猜你喜欢

转载自blog.csdn.net/huangpeigui/article/details/89513769