SpringSecurity 介绍
SpringSecurity 介绍
1、概述
- Spring Security是一个Java框架,用于保护应用程序的安全性。
- 它提供了一套全面的安全解决方案,包括身份验证、授权、防止攻击等功能。
- Spring Security基于过滤器链的概念,可以轻松地集成到任何基于 Spring 的应用程序中。
- 它支持多种身份验证选项和授权策略,开发人员可以根据需要选择适合的方式。
- 此外,Spring Security 还提供了一些附加功能,如集成第三方身份验证提供商和单点登录,以及会话管理和密码编码等。
- 总之,Spring Security 是一个强大且易于使用的框架,可以帮助开发人员提高应用程序的安全性和可靠性。
Spring Security是一个框架,提供 认证(authentication)、授权(authorization) 和 保护,以抵御常见的攻击。它对保护命令式和响应式应用程序有一流的支持,是保护基于Spring的应用程序的事实标准。
2、安全框架
开发软件系统时,Web
安全非常重要,JAVA
安全框架,大家听得最多的应该是
Spring Security
Apache Shiro
- Sa-Token
一个功能完善的安全框架,一般需要支持以下特性:
- 认证(Authentication):验证用户的身份
- 授权(Authorization):验证用户的访问和权限,对已认证用户进行访问控制
- 加密:对重要信息进行加密处理,比如密码加密
- 会话管理:对用户认证、会话信息进行存储管理
- 防御攻击:对常见的网络攻击进行防御
3、发展历史
Spring
社区在成立后,2003
年底开始考虑开发安全框架,最初是Acegi
,大约一年后,Acegi Security
成为Spring Framework
的正式子项目。
2006年5月Acegi Security
发布了1.0
版, 于2007
年底更名为Spring Security
。
如今Spring Security
拥有一个强大且活跃的开源社区
当前最新版本文档:https://docs.spring.io/spring-security/reference/getting-spring-security.html
4、常用术语
4.1、认证(Identification)
根据声明者持有的特定信息,来确认声明者的身份
- 例如身份证、用户名/密码、手机(包括短信、二维码、手势密码)、电子邮箱、生物特征(虹膜、面部、指纹、语音等)
- 高安全要求的场景下,会使用多种认证方式组合进行身份校验,即多因素认证
4.2、授权(Authorization)
资源所有者委派执行者,赋予其指定范围的权限。执行对资源的操作。
4.3、鉴权(authentication)
对一个声明者的身份权利的真实性进行鉴别
- 授权和鉴权是一个一一对应的流程,有授权才会去鉴权
4.4、权限控制(Access/Permission Control)
权限控制就是授权和鉴权的统称
主体: 谁使用系统谁就是主体。可以是使用系统的用户或设备或从其他系统远程登陆的用户等等
5、版本新特性
Spring Security 5.7 x 弃用WebSecurityConfigurerAdapter
在 Spring Security 5.7.0-M2 中,我们弃用了
WebSecurityConfigurerAdapter
,因为我们鼓励用户转向基于组件的安全配置。
来源官网文档:https://spring.io/blog/2022/02/21/spring-security-without-the-websecurityconfigureradapter
来源于SpringSecurity中文文档,地址:https://springdoc.cn/spring-security/servlet/authorization/authorize-http-requests.html