如何忽略公共资源的Servlet过滤器(.js .css文件)

时间:2017-07-07 11:49:04

标签: java spring spring-mvc spring-boot spring-security

我在安全配置中有一个带有 JWT过滤器 spring boot 项目。基本上,此过滤器从请求中提取jwt标记,并将Principal添加到SecurityContext。

我在文件夹src/main/resources/static中也有静态文件(。css / .js / .ttf ...),因此我无需身份验证即可访问这些文件。

它运行完美,但在提供这些文件之前,它会执行无用的jwt过滤器,因为我不需要为这些请求提取jwt标记。无需花费额外的毫秒数。

我想忽略静态资源的jwt过滤器。

我最终得到了这个解决方案:覆盖spring安全配置中的配置方法

@Override
public void configure( WebSecurity web ) throws Exception
{
    web.ignoring().antMatchers( "/**/*.js", "/**/*.css" );
}

现在,当我请求js文件时,不再执行过滤器。这里的主要问题是列出静态资源的所有 ant模式(images / fonts / audio ...)。

是否有更好的解决方案来解决此问题,而不是在配置方法中列出所有静态文件扩展名?

1 个答案:

答案 0 :(得分:1)

您可以尝试以下内容:

web.ignoring().antMatchers( "/**/*.*" );