Spring Security 两种资源放行策略
时间: 2024-02-22 22:22:52 浏览: 154
Spring Security提供了两种资源放行策略:基于URL的放行和基于表达式的放行。
1. 基于URL的放行策略:可以通过配置`WebSecurityConfigurerAdapter`类中的`configure()`方法来实现。使用`antMatchers()`方法可以指定哪些URL需要放行,通过`permitAll()`方法来设置放行权限。
例如,以下代码将"/public"下的所有URL都设置为放行:
```java
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests()
.antMatchers("/public/**").permitAll()
.anyRequest().authenticated();
}
```
2. 基于表达式的放行策略:可以通过在`configure()`方法中使用`hasAuthority()`、`hasRole()`等表达式来实现更灵活的放行控制。
例如,以下代码将"/admin"下的URL仅对具有"ROLE_ADMIN"角色的用户进行授权访问:
```java
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests()
.antMatchers("/admin/**").hasRole("ADMIN")
.anyRequest().authenticated();
}
```
这些策略可以根据具体需求进行组合和配置,以达到实现资源放行的目的。
阅读全文