spring security中的hasAuthority怎么进行实现
时间: 2023-07-11 11:46:46 浏览: 88
spring security 认证授权实现
在Spring Security中,使用hasAuthority进行授权判断时,需要进行以下实现步骤:
1. 在Spring Security的配置文件中配置授权信息:
```
@Configuration
@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests()
.antMatchers("/admin/**").hasAuthority("ROLE_ADMIN")
.antMatchers("/user/**").hasAuthority("ROLE_USER")
.anyRequest().authenticated()
.and()
.formLogin().permitAll()
.and().logout().permitAll();
}
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
auth.inMemoryAuthentication()
.withUser("admin").password("{noop}admin").authorities("ROLE_ADMIN")
.and()
.withUser("user").password("{noop}user").authorities("ROLE_USER");
}
}
```
在上述代码中,我们通过`hasAuthority`方法来指定访问URL需要的权限,例如`/admin/**`需要`ROLE_ADMIN`权限,`/user/**`需要`ROLE_USER`权限。
2. 在认证过程中为用户分配角色:
在上述代码中,我们通过`AuthenticationManagerBuilder`的`inMemoryAuthentication`方法来定义了两个用户,并为他们分别分配了不同的角色。在实际应用中,我们可以使用不同的认证方式来为用户分配角色,例如数据库认证、LDAP认证等方式。
以上就是使用`hasAuthority`进行授权判断的简单实现方式。
阅读全文