1. Spring Security介绍
1.1 Spring Security定义
Spring Security
是一个能够为基于
Spring
的企业应用系统提供声明式的安全访问控制解决方案的安全框 架。
Spring Security
主要实现了
Authentication
(认证,解决
who are you?
) 和
AccessControl (访问控制,也就是what are you allowed to do
?,也称为
Authorization
)。
SpringSecurity
在架构上 将认证与授权分离,并提供了扩展点。
Spring Security is a powerful and highly customizable authentication and access-control
framework. It is the de-facto standard for securing Spring-based applications. Spring
Security
是一个功能强大且高度可定制的身份验证和访问控制框架。它是用于保护基于
Spring
的
应用程序。
Spring Security is a framework that focuses on providing both authentication and
authorization to Java applications. Like all Spring projects, the real power of Spring Security
is found in how easily it can be extended to meet custom requirements
Spring Security
是一个框架,侧重于为
Java
应用程序提供身份验证和授权。与所有
Spring
项目一样,
Spring
安全性
的真正强大之处,在于它很容易扩展以满足定制需求
认证 :用户认证就是判断一个用户的身份是否合法的过程,用户去访问系统资源时系统要求验证用户 的身份信息,身份合法方可继续访问,不合法则拒绝访问。常见的用户身份认证方式有:用户名密码 登录,二维码登录,手机短信登录,指纹认证等方式。
授权
: 授权是用户认证通过根据用户的权限来控制用户访问资源的过程,拥有资源的访问权限则正常 访问,没有权限则拒绝访问。
1.2 Spring Security和Shiro比较
在
Java
生态中,目前有
Spring Security
和
Apache Shiro
两个安全框架,可以完成认证和授权的功能。
Spring Security
Apache Shiro
:一个功能强大且易于使用的
Java
安全框架
,
提供了认证
,
授权
,
加密
,
和会话管理。
相同点:
1. 认证功能
2. 授权功能
3. 加密功能
4. 会话管理
5. 缓存支持
6. rememberMe功能
不同点:
优点:
1. Spring Security基于Spring开发,项目中如果使用Spring作为基础,配合Spring Security做权限更加方便,而 Shiro需要和Spring进行整合开发
2. Spring Security功能比Shiro更加丰富些,例如安全防护
3. Spring Security社区资源比Shiro丰富
缺点:
1.
Shiro
的配置和使用比较简单,
Spring Security
上手复杂
2.
Shiro
依赖性低,不需要任何框架和容器,可以独立运行,而
Spring Security
依赖于
Spring
容器
一般来说,常见的安全管理技术栈的组合是这样的:
SSM + Shiro
Spring Boot/Spring Cloud +Spring Security
2. Spring Security使用
2.1 用户身份认证
快速开始
创建一个
SpringBoot
项目
1