写在前面
Spring Security是一个强大且高度可定制的安全框架,致力于为Java应用提供身份认证和授权。
Spring Web Security是Java web开发领域的一个认证(Authentication)/授权(Authorisation)框架,基于Servlet技术,更确切的说是基于Servlet的Filter技术。因此,在学习Spring Web Security之前,有必要先对Servlet Filter的工作机制做个介绍。
注:Spring Security本身并不只是针对web的,但本文讲的主要是其在web开发中的使用,因此下文提到Spring Security时主要指Spring Security在web开发中那一部分。
在市面上有关SpringSecurity的学习资料并不是很多,而且也不是很全的,所以就整理了一些有关SpringSecurity的文档:
Part1 SpringSecurity实战
Spring Security的前身是 Acegi Security,在被收纳为Spring子项目后正式更名为SpringSecurity。在Spring Security已经升级到5.1.3.RELEASE版本,不仅新增了原生OAuth框架,还支持更加现代化的密码加密方式。可以预见,在 Java 应用安全领域,Spring Security会成为首先被推崇的安全解决方案。
Spring Security有强大的功能,但它同时也有很高的学习成本。它囊括了身份认证的各种应用场景以及Web安全的大量知识,仅官方参考手册就有数十万字,并且还省略了诸多实现细节。许多开发人员在面对这样的“庞然大物”时无从入手,更因为对其不够了解而在实际项目中不敢轻易采用。
由浅入深、抽丝剥茧地讲解了SpringSecurity的典型应用场景,另外,还分析了部分核心源码,以及许多开发语言之外的安全知识。通过本书,读者不仅可以学习如何应用 SpringSecurity,还可以学习借鉴它的实现思路,以将这种实现思路应用到其他开发场景中。
第1部分(第1章至第3章)
主要介绍Spring Security的基本配置,包括默认配置、简单表单认证,以及基于数据库模型的认证与授权。
- 第1章初识Spring Security
- 第2章表单认证
- 第3章认证与授权
第2部分(第4章至第11章)
主要介绍各种定制化的配置场景,剖析Web项目可能遇到的安全问题,并讲解如何使用Spring Security进行有效防护,部分章节还配备了详细的源码导读。
- 第4章实现图形验证码
- 第5章自动登录和注销登录
- 第6章会话管理
- 第7章密码加密
- 第8章跨域与CORS
- 第9章跨域请求伪造的防护
- 第10章单点登录与CAS
- 第11章HTTP认证
第3部分(第13章)
将登录用户的数据来源从系统内转移到社交平台,详细介绍了OAuth,并使用Spring Social整合Spring Security,实现QQ快捷登录,满足一般性的项目需求。
- 第13章用Sping Social实现OAuth对接
第4部分(第14章)
带领读者认识Spring Security OAuth框架,并基于该框架完整实现了OAuth客户端、OAuth授权服务器以及OAuth资源服务器三种角色。除此之外,还简单剖析了SpringSecurityOAuth的部分核心源码,以帮助读者更好地理解OAuth框架。
- 第14章用Spring Security OAuth实现OAuth对接
以上是SpringSecurity实战的学习资料,下面还会有四份有关SpringSecurity的学习笔记:
Part2 SpringSecurity 设置用户状态
一、设置用户状态
- 1.1源码分析
- 1.2判断认证用户的状态
二、退出登录
三、remember me
- 3.1记住我功能原理分析
- 3.2记住我功能页面代码
- 3.3开启remember me过滤器
- 3.4 remember me安全性分析
- 3.5持久化remember me信息
四、显示当前认证用户名
五、授权准备工作
六、动态展示菜单
七、授权操作
- 7.1开启授权的注解支持
- 7.2在注解支持对应类或者方法上添加注解
八、权限不足异常处理
- 方式一: rsing-esurtyxmt
- 方式二:在webxml中处理
- 方式三:编写异常处理器
Part3 SpringSecurity 案例介绍
这里已经事先为大家准备好了一个半成品的后台管理系统,而想要完善另一部分,就需要用到我们今天学习的内容SpringSecurity了!
一、案例介绍
二、初识权限管理
三、初识Spring Security
四、Spring Security过滤器链
五、SpringSecurity使用自定 义认证页面
六、SpringSecurity使用数据库数据完成认证
Part4 SpringSecurity 整合SpringBoot集中式版/分布式版
SpringSecurity 整合SpringBoot集中式版
- 技术选型
- 初步整合认证第一版
- 整合认证第二版[加入jsp使用自定义认证页面]
- 整合认证第三版[数据库认证]
- 整合实现授权功能
SpringSecurity 整合SpringBoot分布式版
- 分布式认证概念说明
- 分布式认证流程图
- JWT介绍
- SpringSecurity +JWT+RSA分布式认证思路分析
- SpringSecurity+. JWT+ RSA分布式认证实现
Part5SpringSecurity OAuth2.0介绍
OAuth协议为用户资源的授权提供了一个安全的、开放而又简易的标准。与以往的授权方式不同之处是OAuth的授权不会使第三方触及到用户的帐号信息(如用户名与密码),即第三方无需使用用户的用户名与密码就可以申请获得该用户资源的授权,因此OAuth是安全的。
- OAuth2.0介绍
- OAuth2.0中表结构说明
- OAuth2.0实战案例
- 测试
写在最后
说白了,我们每个人都拥有自己的梦想,但现实的打击往往让我们沦为社畜。实际上,所谓的梦想都是需要建立在物质基础上,所以无论是你转行也好,还是仍旧在自己的行业里坚持下去,都需要花费时间,需要自己去努力,只不过互联网行业的见效更快,站在金字塔上层或顶端相对来说更容易。
领取这份SpringSecurity,只需要: