在我的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中声明了这个
的webjarhttp://localhost:8080/webjars/jquery/3.2.0/jquery.min.js
但是对资源@ {{1}}的结果GET请求返回状态代码302并且未加载脚本。我尝试在请求中包含一个前导斜杠,但它有相同的结果。
答案 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.