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。

启动打印日志如下:

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

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

 

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

你可能感兴趣的:(java,web)