Spring Security 是 Spring 家族中用于提供认证、授权和攻击防护功能的一套安全框架。它也是 Spring 应用在安全框架方面的公认标准。
Spring Security 安全框架适合为 Spring Boot 项目提供安全保护,所以如果您是个 Spring Boot 项目的开发人员,且正在寻找一种可以和 Spring Boot 轻松集成的,用于认证和鉴权的框架时,可以优先考虑 Spring Security。
Spring Security 的核心特性包括:认证和授权、常规攻击防范、与 Servlet 接口集成、与 Spring Boot 应用集成等。
认证和授权的目的是,让系统知道使用者是谁(认证)?是什么样的身份?允许他做什么?禁止他做什么?通常的做法是要求用户输入自己的用户名和密码,来实现登录和授权的过程。
本技术专栏提供了示例项目的源代码(购买完整专栏可获取),专栏中提供了下载链接:
专栏大纲
Spring Security 是 Spring 家族中规范化的安全框架。它帮助我们轻松地构建应用安全环境,可以快速地实现认证(Authentication)和权限(Authorization)管理,它帮助我们规范化开发过程,是一套完整、成熟、易用的开发框架。
Java 环境下有两大安全框架:Spring Security 和 Apache Shiro。
和 Spring Security 一样,Shiro 同样隶属于一个强大的软件社区: Apache。二者的功能类似,都完成了认证和鉴权功能,都有超过十年的发展历史。Shiro 是一个独立的安全框架,Spring Security 则与 Spring 关联紧密,所以在二者的选择上,可以简单的用如下原则区分:
如果我们开发 Spring Boot 项目,那优先建议使用 Spring Security 安全框架。如果我们开发其他类型的项目,那请使用 Shiro 作为安全框架。
本技术专栏从零开始详细介绍了Spring Security的工作原理和开发实践过程,包括基于内存和数据库的用户认证、自定义用户认证、基于URL地址和访问级别的授权、密码编码、加密模块、默认过滤器链、自定义过滤器、自定义认证和动态授权的开发实践、自定义异常处理、单元测试、自定义登录和登出页面、同源策略(SOP)、跨站请求伪造(CSRF)、跨域资源共享(CORS)、CSRF攻击防御、前后端分离CORS跨域请求等等。
开发环境:Spring Boot2.3.7.RELEASE + Spring Security 5.3.6.RELEASE
本技术专栏主要包含如下章节,并附带有示例项目源码:
轻松创建Spring Security 入门应用
Spring Security应用请求流程、认证流程和认证方式
Spring Security 基于内存认证的开发实践
Spring Security基于数据库用户存储方案的开发实践
初步理解Spring Security 工作流程和过滤器机制
理解Spring Security中的用户对象
理解Spring Security中的认证对象
开发实践:基于Spring Security 实现自定义用户认证的详细过程【1】
开发实践:基于Spring Security 实现自定义用户认证的详细过程【2】
开发实践:基于Spring Security 实现自定义用户认证的详细过程-注册新用户
Spring Security中PasswordEncoder 密码校验和密码加密流程
Spring Security 中DelegatingPasswordEncoder 代理类简介和使用
Spring Security中的加密模块(Crypto)和使用入门
轻松理解Spring Security中的授权、角色和权限
实现Spring Security 基于URL地址级别的授权保护
简要分析Spring Security 的授权流程
实现Spring Security基于方法级别的授权保护
如何查看Spring Security 过滤器链中的过滤器?
轻松实现Spring Security框架中自定义过滤器
轻松实现自定义过滤器检查请求头(Request Header)信息
开发实践:基于Spring Security 实现可配置的动态授权-创建示例项目、表、模型和Repository
开发实践:基于Spring Security 实现可配置的动态授权-实现自定义授权接口
开发实践:基于Spring Security 实现可配置的动态授权- 自定义安全配置类
开发实践:基于Spring Security 实现可配置的动态授权- 测试效果
开发实践:Spring Security中的单元测试
开发实践:基于Spring Security实现自定义AuthenticationEntryPoint
开发实践:基于Spring Security实现自定义AccessDeniedHandler
开发实践:自定义Spring Security登录和登出页面
同源策略(SOP)、跨站请求伪造(CSRF)攻击和防御
开发实践:基于Spring Security实现CSRF跨站攻击防御
了解跨域资源共享(CORS)和请求流程
开发实践:Spring Boot 应用跨域解决方案
开发实践:在Spring Security应用项目中解决跨域问题