简介
Spring Security是一种基于Spring AOP和Servlet过滤器Filter的安全框架,它提供全面的安全性解决方案,提供在Web请求和方法调用级别的用户鉴权和权限控制。
Filter在一个HTTP请求过程中的执行流程如下图:
Spring Security 提供了多种登录认证策略。
典型的基于表单登录认证的流程如下图:
Quik Start
1.创建spring boot项目
2.加入Security 和 Web 依赖
3.启动应用,浏览器访问 localhost:8080
得到一个登录表单页面:
同时控制台有如下输出:
Using generated security password: 9656abf8-b6a5-4270-824e-ebbafd1fdbc2
用随意用户名密码尝试登录:
用 security 默认的用户名 user 和控制台输出的密码登录,登录成功,因没有测试页面,直接进入了一个默认的 Error Page 。
可以在 application.properties 中配置用户名和密码:
#自定义用户名和密码
spring.security.user.name=root
spring.security.user.password=root
除了用户名密码,Spring Boot 还支持以下配置项:
# SECURITY (SecurityProperties)
# Spring Security过滤器排序
spring.security.filter.order=-100
# 安全过滤器责任链拦截的分发类型
spring.security.filter.dispatcher-types=async,error,request
# 用户名,默认值为user
spring.security.user.name=user
# 用户密码
spring.security.user.password=
# 用户角色
spring.security.user.roles=
# SECURITY OAUTH2 CLIENT (OAuth2ClientProperties)
# OAuth提供者详细配置信息
spring.security.oauth2.client.provider.*= #
# OAuth客户端登记信息
spring.security.oauth2.client.registration.*=
使用WebSecurity-ConfigurerAdapter自定义用户信息
1使用内存定义用户认证服务
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {