Spring Security 架构图
2025-09-17 13:56:33 0 举报
Spring Security架构主要采用模块化设计,核心包括认证(身份验证)和授权(权限控制)机制。它由一系列互相协作的组件组成,其主要的组成包括SecurityContext、Authentication、AuthenticationManager、ProviderManager、以及多个AuthenticationProvider,它们负责处理不同类型的身份验证流程。此外,还有一个FilterChainProxy,用于管理内部的一系列安全过滤器,如UsernamePasswordAuthenticationFilter、ExceptionTranslationFilter和FilterSecurityInterceptor等。Spring Security也支持高级安全特性,如OAuth2、JWT认证和CSRF保护,以确保API的安全。这些组件协同工作,提供了一套全面的安全框架,适用于各种Web应用和微服务架构,其设计灵活,可通过不同的配置或自定义扩展来适应不同的安全需求。
作者其他创作
大纲/内容
UserDetailsService
校验密码正确
Filter B
OneTimeTokenProvider
Step 4 PasswordEncoder 校验凭证
是登录请求
Security Filter ... N
FilterChainProxy
1c:转交 Authentication 至 AuthenticationManager 处理
Filter A
ExceptionTranslationFilter
JwtAuthenticationProvider
AuthenticationManager
Filter C
Filter D
Delegation Filter Proxy
Step 3 AuthenticationProvider 调用 UserDetailsService
ProvicerManager
SecurityContextHolderFilter
UserDetails
Authentication
1b:调用UsernamePasswordAuthenticationFilter 的 attemptAuthentication 提取待认证对象
getAuthoritiesgetPasswordgetUsernameisAuthenticated = true
HttpSessionSecurityContextRepository
Step 6 上下文的持久化
Request \"/login\"
Authentication Object
AbstractAuthenticationProcessingFilter
SecurityContextHolder
Servlet Filters
1a:/login 登录请求
PasswordEncoder
DaoAuthenticationProvider
getAuthoritiesgetPasswordgetUsername
Step 2 AuthenticationManager 委托给 AuthenticationProvider
Step 5 设置安全上下文
passwordusernameisAuthenticated = false
0 条评论
下一页