Spring Security(新版本)实现权限认证与授权
在Spring Security中,权限认证与授权通常是通过配置http.authorizeRequests()
来实现的。以下是一个简单的例子,展示了如何配置Spring Security来实现基于角色的访问控制。
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http
// 配置请求权限
.authorizeRequests()
// 允许所有用户访问"/", "/home"
.antMatchers("/", "/home").permitAll()
// 需要"ROLE_USER"角色的权限访问"/user"
.antMatchers("/user").hasRole("USER")
// 需要"ROLE_ADMIN"角色的权限访问"/admin"
.antMatchers("/admin").hasRole("ADMIN")
// 其他所有请求需要身份认证
.anyRequest().authenticated()
.and()
// 其他的配置...
;
}
}
在这个例子中,我们定义了三个URL路径的权限:
/
和/home
可以被所有用户不需要认证访问。/user
需要拥有USER
角色的用户才能访问。/admin
需要拥有ADMIN
角色的用户才能访问。- 其他所有请求必须由用户进行身份认证才能访问。
这样配置后,Spring Security会根据角色对不同的URL路径进行权限控制,保护应用的安全性。
评论已关闭