Spring Security是Spring提供的对于项目的安全框架。以前使用大量的xml配置来实现,而Spring Boot中基于java配置实现Spring Security功能。
安全框架有两个重要概念:认证 和 授权 。认证即确认用户可以访问当前系统,授权即确定用户在当前系统下所拥有的功能权限。 通俗点讲,比如你去豪华酒店吃饭,认证就是你有门票,能进入饭店,授权就是规定了你进了酒店能在哪些区域溜达,不能在哪些区域溜达。
Spring Security创建一个类并继承WebSecurityConfigurerAdapter这个方法,并在之类中重写configure的3个方法,其中3个方法中参数包括为HttpSecurity(HTTP请求安全处理),AuthenticationManagerBuilder(身份验证管理生成器)和WebSecurity(WEB安全)
public class SecurityConfiguration extends WebSecurityConfigurerAdapter {
@Override
protected void configure(AuthenticationManagerBuilder auth){
super.configure(auth);
}
@Override
protected void configure(HttpSecurity http){
super.configure(http);
}
@Override
protected void configure(WebSecurity web){
super.configure(web);
}
}
接下来我们先看看protected void configure(HttpSecurity http)这个方法提供了一个默认的配置。
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.anyRequest().authenticated()
.and()
.formLogin()
.and()
.httpBasic();
}
http.authorizeRequests()其中这里的意思是指通过authorizeRequests()方法来开始请求权限配置。
而接着的.anyRequest().authenticated()是对http所有的请求必须通过授权认证才可以访问。
直观描述
参考:https://www.jianshu.com/p/4468a2fff879,https://www.jianshu.com/p/e6655328b211