SpringSecurity 学习指南大全
SpringSecurity
概述
SpringSecurity 版本:5.7.1
Spring Security 是一个提供身份验证、授权和防止常见攻击的框架。 凭借着对基于 Servlet 或 Reactive(反应式) 的应用程序的一流支持,它是保护基于 Spring 的应用程序的标准。
关于功能的完整说明,请查看文档的【功能】部分。
基于 Servlet,也就是我们经常使用的 SpringMVC
基于 Reactive,是和 SpringMVC 并行的反应式 Web 框架 Spring WebFlux
入门指南
如果你准备好开始保护你的应用程序,请查看基于 Servlet 或 Reactive 的【新手入门】,它将带你创建你的第一个基于 Spring Security 的应用程序。
如果你想了解 Spring Security 的工作原理,请查看【架构】部分。
运行环境
5.7 新增功能
基于 Servlet
基于 WebFlux
环境准备
推荐使用项目构建工具来使用 Spring Security。
Maven
在 SpringBoot 中使用
SpringBoot 提供了 spring-boot-starter-security 启动器来使用 SpringSecurity,启动器已经整合了 SpringSecurity 需要的依赖包。可以使用快速构建项目工具来选择 SpringSecurity 组件,如 https://start.spring.io 。我们也可以通过手动引入来启动 SpringSecurity 配置。
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
</dependencies>
SpringBoot 已经为我们指定了对应版本,如果你需要单独指定,可以提供以下属性来实现:
<properties>
<spring-security.version>5.7.1</spring-security.version>
</properties>
一般使用 SpringBoot 提供的依赖版本是没有什么问题的,如果改变了其依赖版本,有可能还需要调整 Spring 框架的版本。
<properties>
<spring.version>5.3.20</spring.version>
</properties>
如果需要引入额外的功能如(LDAP、OpenID等),则需要单独引入其它的项目模块和依赖项。【项目模块和依赖性】在后续章节单独讲解
Gradle
感兴趣可点击官网查看
功能
Spring Security 为身份验证、授权和防范常见攻击提供了全面的支持。它还提供了与其他库的集成,以简化其使用。
认证
Spring Security 为认证提供了全面的支持。在用户访问特定的资源时,我们通常要求用户输入用户名和密码来对用户进行身份验证。一旦执行的身份验证处理,我们就知道了用户的身份和其对应访问资源的权限。
Spring Security 提供了对用户身份验证的内置支持。 本节专门介绍适用于 Servlet 和 WebFlux 环境的通用身份验证支持。 有关支持的详细信息,请参阅 Servlet 和 WebFlux 的【身份验证】部分。
密码存储
防止漏洞利用
Spring Security 提供了针对常见漏洞的保护。默认情况下会启用保护。本节主要介绍 Spring Security 所保护的各种攻击的高级描述。
CSRF
HTTP Headers
HTTP Requests
其它整合
Spring Security 可以与众多框架和 API 进行整合。 在本节中,我们将讨论非特定于 Servlet 或 Reactive(反应式) 环境的通用集成。 要查看特定的集成,请先查看基于 Servlet 或 Reactive(反应式) 集成部分。
|