spring security 基本组件和认证流程
2024-01-18 13:55:15 0 举报
Spring Security是一款强大的安全框架,用于保护基于Java的应用程序。它包含了一些基本组件,如User对象、Role对象、Authentication和AccessDecisionManager等,这些组件共同协作,实现了用户身份验证和授权等功能。 认证流程是Spring Security的核心功能之一,它包括以下几个步骤: 1. 用户提交登录请求,包含用户名和密码。 2. Spring Security将用户输入的用户名和密码与系统中已存储的认证信息进行比较。 3. 如果验证成功,Spring Security会创建一个Authentication对象,该对象包含用户信息、权限等信息。 4. 接着,AccessDecisionManager组件将根据Authentication对象中的权限信息,判断用户是否有权访问请求的资源。 5. 如果用户具有相应权限,Spring Security将允许用户访问资源;否则,将拒绝访问请求。 总之,Spring Security提供了一种灵活的安全管理方式,可以有效地保护应用程序免受非法访问和恶意攻击。
作者其他创作
大纲/内容
InMemoryUserDetailsManager
ProviderManager认证管理器
SecurityContextHolder
Authentication认证用户信息接口
UserDetailsService用户数据源接口#loadUserByUsername一般用户自定义从数据库查询
认证过滤链主流程
UserDetailsService
ProviderManager认证管理器实现类
AbstractAuthenticationProcessingFilter
Filter
AuthenticationManager认证管理器接口
SecurityFilterChain
UsernamePasswordAuthenticationToken认证用户信息实现类(表单登录)
DaoAuthenticationProvider 支持基于用户名/密码的认证JwtAuthenticationProvider 支持认证JWT令牌
UsernamePasswordAuthenticationFilter
DaoAuthenticationProvider执行认证提供者
AuthenticationProvider认证接口(执行真正认证)
SecurityContextHolder认证上下文(保存认证用户)
UserDetails
调用loadUserByUsername方法,得到用户信息
spring security 主要接口及实现类
Authentication实现类UsernamePasswordAuthenticationToken
AuthenticationManager
将UserDetails设置到认证对象中Authentication
保存认证对象到上下文中
AuthenticationProvider
构建UsernamePasswordAuthenticationToken认证用户对象
调用authenticate方法
AuthorizationManager授权管理器
调用authenticate方法发送认证成功/失败事件
授权管理器实现类
0 条评论
下一页