Spring Security 的前身是 Acegi Security,在被收纳为 Spring 子项目后正式更名为 Spring Security。在笔者成书时,Spring Security 已经升级到 5.1.3.RELEASE 版本,加入了原生 OAuth2.0 框架,支持更加现代化的密码加密方式。
可以预见,在 Java 应用安全领域,Spring Security 会成为被首先推崇的解决方案,就像我们看到服务器就会联想到 Linux 一样顺理成章
总目录:
第 1 部分
-
初识 Spring Security
-
表单认证
-
认证与授权
第 2 部分
-
实现图形验证码
-
自动登录和注销登录、
-
会话管理
-
密码加密
-
跨域与 CORS
-
跨域请求伪造的防护
-
单点登录与 CAS
-
HTTP 认证
-
@EnableWebSecurity 与过滤器链机制
第 3 部分
-
用 Spring Social 实现 OAuth 对接
第 4 部分
用 Spring Security OAuth 实现 OAuth 对接
为方便教学,这里已经事先为大家准备好了一个半成品的后台管理系统,而想要完善另一部分,就需要用到 SpringSecurity 了!
第 5 部分:认证功能实现
-
案例介绍
-
初识权限管理
-
初识 Spring Security
-
Spring Security 过滤器链
-
SpringSecurity 使用自定义认证页面
-
SpringSecurity 使用数据库数据完成认证
第 6 部分:授权
-
设置用户状态
-
退出登录
-
remember me
-
显示当前认证用户名
-
授权准备工作
-
动态展示菜单
-
授权操作
-
权限不足异常处理
第 7 部分:整合 SpringBoot
-
SpringSecurity 整合 SpringBoot 集中式版
-
技术选型
-
初步整合认证第一版
-
整合认证第二版【加入 jsp 使用自定义认证页面】
-
整合认证第三版【数据库认证】
-
整合实现授权功能
-
SpringSecurity 整合 SpringBoot 分布式版
-
分布式认证概念说明
-
分布式认证流程图
-
JWT 介绍
-
SpringSecurity+JWT+RSA 分布式认证思路分析
-
SpringSecurity+JWT+RSA 分布式认证实现
第 8 部分:OAuth2.0
-
概念说明
-
使用场景
-
说明
-
建表语句
-
表字段说明
-
建父工程并导入 jar 包
-
创建资源模块
-
创建授权模块
-
测试
-
在数据库中手动添加客户端信息
-
授权码模式测试
-
简化模式测试
-
密码模式测试
-
客户端模式测试
很多时候,一个系统的安全性完全取决于系统开发人员的安全意识。例如,在我们从未听过 SQL 注入时,如何意识到要对 SQL 注入做防护?关于 Web 系统安全的攻击方式非常多,诸如 XSS、CSRF 等,未来还会暴露出更多的攻击方式,我们只有在充分了解其攻击原理后,才能提出完善而有效的防护策略。学习 Spring Security 并非局限于降低 Java 应用的安全开发成本,通过 SpringSecurity 了解常见的安全攻击手段以及对应的防护方法也尤为重要,这些是脱离具体开发语言而存在的。