跳至主要內容

SpringSecurity 介绍

Jin大约 3 分钟

SpringSecurity 介绍

1、概述

  • Spring Security是一个Java框架,用于保护应用程序的安全性。
  • 它提供了一套全面的安全解决方案,包括身份验证、授权、防止攻击等功能。
  • Spring Security基于过滤器链的概念,可以轻松地集成到任何基于 Spring 的应用程序中。
  • 它支持多种身份验证选项和授权策略,开发人员可以根据需要选择适合的方式。
  • 此外,Spring Security 还提供了一些附加功能,如集成第三方身份验证提供商和单点登录,以及会话管理和密码编码等。
  • 总之,Spring Security 是一个强大且易于使用的框架,可以帮助开发人员提高应用程序的安全性和可靠性。

Spring Security是一个框架,提供 认证(authentication)open in new window授权(authorization)open in new window保护,以抵御常见的攻击open in new window。它对保护命令式和响应式应用程序有一流的支持,是保护基于Spring的应用程序的事实标准。

2、安全框架

开发软件系统时,Web 安全非常重要,JAVA安全框架,大家听得最多的应该是

  1. Spring Security
  2. Apache Shiro
  3. Sa-Tokenopen in new window

一个功能完善的安全框架,一般需要支持以下特性:

  • 认证(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.htmlopen in new window

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 中,我们弃用open in new windowWebSecurityConfigurerAdapter,因为我们鼓励用户转向基于组件的安全配置。

来源官网文档:https://spring.io/blog/2022/02/21/spring-security-without-the-websecurityconfigureradapter

来源于SpringSecurity中文文档,地址:https://springdoc.cn/spring-security/servlet/authorization/authorize-http-requests.html

贡献者: Jin