应用程序的两个主要区域是“认证”和“授权”(或者访问控制)。这两个主要区域是SpringSecurity的两个目标。
- “认证”(Authentication),是建立一个他声明的主体的过程(一个“主体”一般是指用户,设备或一些可以在你的应用程序中执行动作的其他系统)。
- “授权”(Authorization)指确定一个主体是否允许在你的应用程序执行一个动作的过程。为了抵达需要授权的店,主体的身份已经有认证过程建立。
一、整合
1、引入
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
2、编写配置类
@EnableWebSecurity
public class MySecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
//授权
http.authorizeRequests()
//所有权限都允许 与/匹配的请求是完全可访问的
.antMatchers("/").permitAll()
// 与/level/**匹配的请求需要对用户进行身份验证,并且必须有权限VIP
.antMatchers("/level/**").hasRole("VIP")
.and()
//登录 使用自定义登录页面和失败 URL 启用基于表单的身份验证
.formLogin().loginPage("/login").failureUrl("/login-error");
//开启自动配置的注销
http.logout()
//跳转到指定路径 首页
.logoutSuccessUrl("/");
//开启记住我功能
http.rememberMe();
}
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
//内存中获取用户
auth.inMemoryAuthentication()
//用户 密码 权限
.withUser("zhangsan").password("123456").roles("VIP")
.and()
.withUser("lisi").password("123789");
}
}