WebSecurityConfigurerAdapter setAccessDecisionManager
时间: 2024-01-26 17:03:02 浏览: 84
AccessDecisionManager
WebSecurityConfigurerAdapter 中的 setAccessDecisionManager 方法是用来设置访问决策管理器(AccessDecisionManager)的。
访问决策管理器是 Spring Security 中的一个核心概念,用于在用户请求访问资源时决定是否允许访问。它根据访问策略和用户的身份信息来决定是否授权访问。
setAccessDecisionManager 方法用于配置访问决策管理器,通常需要传入一个实现了 AccessDecisionManager 接口的类的实例,例如 AffirmativeBased、ConsensusBased 等。
下面是一个示例:
```
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Autowired
private CustomAccessDecisionManager accessDecisionManager;
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.antMatchers("/admin/**").hasRole("ADMIN")
.antMatchers("/user/**").hasAnyRole("ADMIN", "USER")
.anyRequest().authenticated()
.accessDecisionManager(accessDecisionManager)
.and()
.formLogin()
.loginPage("/login")
.permitAll()
.and()
.logout()
.permitAll();
}
}
```
在上面的示例中,我们通过 accessDecisionManager 方法设置了自定义的访问决策管理器 CustomAccessDecisionManager。这样,在用户请求访问资源时,就会使用 CustomAccessDecisionManager 中的访问决策逻辑来决定是否授权访问。
阅读全文