阿里技术专家兼Github贡献者,整理的Spring Security入门到成神
Spring Security是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架。它提供了一组可以在Spring应用上下文中配置的Bean,充分利用了Spring IoC,DI(控制反转Inversion of Control ,DI:Dependency Injection 依赖注入)和AOP(面向切面编程)功能,为应用系统提供声明式的安全访问控制功能,减少了为
Spring Security 介绍
Spring Security是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架。它提供了一组可以在Spring应用上下文中配置的Bean,充分利用了Spring IoC,DI(控制反转Inversion of Control ,DI:Dependency Injection 依赖注入)和AOP(面向切面编程)功能,为应用系统提供声明式的安全访问控制功能,减少了为企业系统安全控制编写大量重复代码的工作。
目前市面上 Spring Security 相关的资料书籍少之又少,我翻阅了各大平台网站都没有发现真正能把 Spring Security 讲解得十分透彻,由此特意去拜访了一位老朋友,整理出了这份 Spring Security 全解,在这里我选择将它进行一个开源式的分享,大体内容如下:
觉得不错的朋友可以-公众号【不脱发有志青年】
Spring Security中的用户信息
- Spring Security 和Apache Shiro
- 认证/鉴权
- 过滤器链
- RBAC模型
- 其他一些概念
- Spring Boot 集成 Spring Security
- UserDetailsServiceAutoConfiguration
- UserDetailsService
- UserDetails
- UserDetailsServiceAutoConfiguration
- 自定义UserDetailsManager
- 数据库管理用户
- 不推荐使用md5
- Spring Security中的密码算法
- Spring Security 加载 PasswordEncoder 的规则
- bcrypt 编码算法
Spring Boot 中的 Spring Security 自动配置初探
- Spring Boot 下 Spring Security 的自动配置
- @EnableWebSecurity 注解
- SecurityFilterAutoConfiguration
- URI中的 Ant 风格
- Spring MVC 和 Spring Security 中的 Ant 风格
- 自定义配置类WebSecurityConfigurerAdapter
- HttpSecurity 配置
实现自定义登录
- form登录的流程
- Spring Security 中的登录
- HttpSecurity中的form表单登录
- Spring Security聚合登录实战
- 多种登录方式并存的实现
- 图解认证过滤器UsernamePasswordAuthenticationFilter
- 图解认证管理器AuthenticationManager
- AuthenticationManager的初始化细节
Spring Security中的“分布式对象”
- SharedObject
- 从零手写一个验证码登录
- 集成到Spring Security
- 验证码认证管理器、过滤器
- Spring Security 中的内置 Filter
- 内置过滤器初始化、讲解
- Spring Security中的过滤器链及其机制
- 图解Spring Security的过滤器体系
- Servlet Filter体系
- GenericFilterBean
- DelegatingFilterProxy
- SecurityFilterChain
- FilterChainProxy
- 实现自定义退出登录
- 我们使用 Spring Security 登录后都做了什么
Web无状态会话Token技术JWT
- JWT知识扩展JOSE
- 我们都看错了 JWT
- 什么是 JWE
- Spring Security jose 相关
- 构造JWT Token生成服务
- JWT 解码以及验证
- spring-security-jwt
- 构建 JWT 中的 payload
- 生成 RSA 密钥并进行签名
- spring-security-jwt
- JWT 解码以及验证
实现Spring Security登录后返回JWT
- 实现登录成功/失败返回逻辑
- Spring Security中自定义异常处理
- Http 状态对认证授权的规定
- Spring Security 中的异常处理
- Spring Security中使用 JWT 认证访问接口
- 常用的 Http 认证方式
- Json Web Token 的认证方式 Bearer Authentication
- Spring Security 中实现接口 Jwt 认证
- 定义 Json Web Token 过滤器
- 配置 JwtAuthenticationFilter
对RBAC权限控制的理解
- 为什么需要 RBAC?
- RBAC 模型的分类
- RBAC 中一些概念的理解
- 基于配置的接口访问控制
- 将角色写入 UserDetails
- 在 HttpSecurity 中进行配置角色访问控制
- permitAll 与 anonymous 的一些探讨
- 基于注解的接口访问控制
- Spring Security 方法安全
- @EnableGlobalMethodSecurity 注解
- 使用 prePostEnabled
- 使用 jsr250Enabled
- 使用 securedEnabled
安全上下文SecurityContext
- SecurityContextHolder
- 实现动态权限控制
- 动态的权限控制同样依赖 RBAC 模型
- 请求认证过程
- 如何结合安全框架
- Spring Security 提供的轮子
- FilterSecurityInterceptor
- FilterInvocationSecurityMetadataSource
- AccessDecisionManager
- AccessDecisionVoter
- 在一个应用中实现多个安全策略
- 如何 路由 不同的安全配置
- 如何指定默认的HttpSecurity
- 如何配置不同的UserDetailsService
相比较Shiro而言,Security功能更加的强大,它可以很容易地扩展以满足更多安全控制方面的需求,特别是随着现在 Spring Boot 和 Spring Cloud 的流行,Spring Security 正在走向舞台中央。
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)