写点什么

独家巨献!阿里技术专家兼 Github 贡献者,整理的 Spring Security 入门到成神

作者:Geek_0c76c3
  • 2022 年 10 月 09 日
    湖南
  • 本文字数:1665 字

    阅读完需:约 5 分钟

独家巨献!阿里技术专家兼Github贡献者,整理的Spring Security入门到成神

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 和 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 正在走向舞台中央

上面的文档已整理成册,有需要的读者朋友们

用户头像

Geek_0c76c3

关注

+小助理 ikt4435 资料全部白嫖 2022.09.16 加入

还未添加个人简介

评论

发布
暂无评论
独家巨献!阿里技术专家兼Github贡献者,整理的Spring Security入门到成神_Java_Geek_0c76c3_InfoQ写作社区