SpringSecurity-身份认证原理

本文深入探讨Spring Security的身份认证过程,涉及SecurityContextHolder、SecurityContext、Authentication等核心类的作用,阐述AuthenticationManager、AuthenticationProvider和AuthenticationEntryPoint的角色,并解析UsernamePasswordAuthenticationFilter的工作流程。同时,文章提到了UserDetailsService和DaoAuthenticationProvider在用户名密码认证中的作用。
摘要由CSDN通过智能技术生成

目录

1. 前言

2. 主要类

3. 用户名密码身份认证


1. 前言

这篇文章的内容大部分来自官方文档,如果你英语还可以,我强烈建议你去spring官网进行学习。

正文通过列举主要类的方式,展开身份认证的介绍。

2. 主要类

2.1. SecurityContextHolder

使用ThreadLocal存储"已通过身份认证的用户的详细信息"。

存储内容简图

2.2. SecurityContext

从SecurityContextHolder获取,内部包含一个Authentication对象。

2.3. Authentication

两个用处

  1. 作为AuthenticationManager的输入,提供进行身份认证的凭证。
  2. 代表已通过身份认证的用户,从SecurityContext中获取。

包含的信息

  1. principle 当事人,用于识别用户,例如进行身份认证时携带用户名和密码
  2. credentials 凭证,通常情况会是密码,身份认证结束后被清除掉
  3. authorities 权限,授予的权限

2.4. GrantedAuthority

代表用户被授予的权限。

2.5. AuthenticationManager

提供API,用于定义如何进行身份认证。

返回的Authentication实例应被设置到SecurityContextHolder中。

2.6. ProviderManager

ProviderManager是常见的AuthenticationManager实现类,代表由Authenti

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值