SpringSecurity框架认证流程详解
1.添加依赖
在Spring Boot项目中使用Spring Security时需要添加依赖项:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
2.创建一个SecurityConfig.java配置类, 在里面重写configur方法
3. 在方法中配置白名单
@Override
protected void configure(HttpSecurity http) throws Exception {
//super.configure(http); 不能保留!
//当访问需要登录认证才能访问的资源时, 没有登录的时跳转到登录页面
http.formLogin().loginPage("/login.html");//弹出登录页面
//设置黑名单(需要登录才可访问的资源)
String[] urls = {
"",""};
// 配置请求授权
// 如果某个请求被多次配置,按照“第一匹配原则”处理
// 应该将精确的配置写在前面,将较模糊的配置写在后面
http.authorizeHttpRequests()
.mvcMatchers(urls) //匹配某些请求路径
.authenticated() //需要通过登录认证
.permitAll(); //许可,直接放行, 即不需要登录也可以访问
.anyRequest() //任何请求,从执行效果来看,也可以视为:除了以上配置过的以外的其它请求
// 是否调用以下方法,将决定是否启用默认的登录页面
// 当未通过认证时,如果有登录页,则自动跳转到登录,如果没有登录页,则直接响应403
// http.formLogin();
// super.configure(http); // 不要调用父类的同名方法,许多默认的效果都是父类方法配置的
//关闭跨域攻击防御策略,否则所有post请求将失效 ---禁用“防止伪造的跨域攻击的防御机制”
http.csrf().disable();
}