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