SpringSecurity源码中核心类

SpringSecurity源码

第一部分 核心类

  • SecurityBuilder
  • HttpSecurity
  • WebSecurity
  • SecurityFilterChain
  • FilterChainProxy

SecurityBuilder是安全构架器,HttpSecurity和WebSecurity都是SecurityBuilder的实现类,HttpSecurity通过build()构建了一个SecurityFilterChain调用链。 WebSecurity构建了一个FilterChainProxy,他是一个Filter过滤器,其内部维护了一个filterChains(SecurityFilterChain的链表),doFilter执行时,利用装饰器模式+责任链模式先调用SecurityFilterChain,再调用原生chain.doFilter(req, resp)继续执行

第二部分核心类

  • HttpSecurity内容
  • SecurityConfigurer
  • AbstractConfiguredSecurityBuilder

SecurityBuilder用来构建安全对象,安全对象包括:ttpSecurity、FilterChainProxy、AuthenticationManager、SecurityConfigurer用来配置安全对象构建器(SecurityBuilder),典型的有

FormLoginConfigurer、CsrfConfigurer

第三部分

  • Authentication

  • AuthenticationManage

  • AuthenticationManageBuilder

  • ProviderManager

  • AuthenticationProvider

    其中Authentication为认证信息,AuthenticationManage可以用来认证,其中有一个重要的方法 Authentication authenticate(Authentication authentication),AuthenticationManagerBuilder用来构建

    AuthenticationManager的,即ProviderManager,是一个重要的ProviderManager 实现类。即ProviderManager中存储了AuthenticationProvider集合,认证的时候 先查看是否support,是的话,开始认证

第四部分

  • UserDetailsService
  • DaoAuthenticationProvider
  • AbstractUserDetailsAuthenticationProvider
  • UsernamePasswordAuthenticationFilter
  • FormLoginConfigurer

用户名密码登录所使用到的类,UserDetailsService用来加载用户信息的,DaoAuthenticationProvider是一个provider(结合UserDetailsService进行加载用户信息),用来做认证的,AbstractUserDetailsAuthenticationProvider是DaoAuthenticationprovider的父类。UsernamePasswordAuthenticationFilter是一个过滤器,生成一个认证对象,在通过providerManager来进行认证,核心就是利用DaoAuthenticationProvider来进行认证。FormLoginConfigurer用于配置用户名密码相关信息,通过http来进行配置。

第五部分

  • SecurityContext
  • SecurityContextHolder
  • SecurityContextPersistenceFilter
  • SecurityContextRepository
  • SecurityContextConfigurer
相关推荐
源码宝4 天前
拿来即改的云HIS源码:前端BootStrap+LayUI,后端SpringBoot,数据库MySQL+MyCat
java·源码·his系统·云技术·his源码·医院信息系统源码
幽络源小助理4 天前
2026最新写真图片视频打赏系统源码_全开源无加密_幽络源源码
开源·源码·php源码
折哥的程序人生 · 物流技术专研5 天前
Java 23 种设计模式:从踩坑到精通 | 组合模式 —— 树形结构处理,部分与整体一视同仁
java·组合模式·java面试·springsecurity·结构型模式·java设计模式·从踩坑到精通
幽络源小助理5 天前
苹果CMS觅知ART弹幕播放器_MizhiPlayer全新UI-幽络源源码网
开源·源码·php源码
程序猿阿越6 天前
AutoMQ源码(一)读、写、Compaction
java·后端·源码
贾艺驰7 天前
实战Android Framework: 新增一个系统服务
android·源码
VX_BYSJ83418 天前
【关注可白嫖源码】--17214基于Web的旅游信息交互网站设计与实现(案例分析)
源码·毕设·计算机毕业设计·大作业·毕设定制·程序定制·毕设代做
源码宝10 天前
智能随访系统源码,技术架构设计:Spring Boot + Vue.js + 微服务实战
java·人工智能·源码·随访系统·智能随访·随访系统成品源码
甜瓜看代码13 天前
SystemUI 启动与组成机制
android·源码·源码阅读
源码宝14 天前
基于SpringCloud+UniApp的智慧工地云平台整体架构设计与实现
java·人工智能·spring cloud·源码·智慧工地·云平台