Spring Security静态资源请求HTTP代码302

时间:2017-05-30 16:15:58

标签: spring-boot webjars

在我的Spring Boot Web应用程序中,我已将Spring Security配置为允许访问静态资源,如此

<script src="webjars/jquery/3.2.0/jquery.min.js"></script>

在我的登录jsp页面中,我包括像这样的jquery

<dependency>
    <groupId>org.webjars</groupId>
    <artifactId>jquery</artifactId>
    <version>3.2.0</version>
</dependency>

我在我的pom中声明了这个

的webjar
http://localhost:8080/webjars/jquery/3.2.0/jquery.min.js

但是对资源@ {{1}}的结果GET请求返回状态代码302并且未加载脚本。我尝试在请求中包含一个前导斜杠,但它有相同的结果。

1 个答案:

答案 0 :(得分:3)

匹配器的顺序非常重要,请参阅Spring doc

  

http.authorizeRequests()方法有多个子节点   每个匹配器都按其声明的顺序进行考虑。

所以anyRequest()匹配器必须在antMatchers()之后。以下是Spring doc中的示例:

protected void configure(HttpSecurity http) throws Exception {
    http.authorizeRequests()
        .antMatchers("/resources/**", "/signup", "/about").permitAll()
        .antMatchers("/admin/**").hasRole("ADMIN")
        .antMatchers("/db/**").access("hasRole('ADMIN') and hasRole('DBA')")
        .anyRequest().authenticated()
        .and()
        // ...
        .formLogin();
}

我想会发生的是,您将被安全过滤器重定向到登录页面,从而产生302.