Wil*_*LAM 5 security spring spring-security
我SecurityContextHolder.getContext().getAuthentication()在服务器端获取当前登录的用户
并对用户进行一些登录.
这是一个问题:假设我有三个用户登录.服务器端如何识别用户只是简单地调用SecurityContextHolder.getContext().getAuthentication();?
感谢您的回复.
默认情况下,这里有3个重要的事项:
SecurityContextHolder在来自HTTP会话的每个请求之前填充(并在请求完成后将认证对象存储回来)ThreadLocal - 在请求处理期间存储认证对象认证后,相应的SecurityContext对象存储在HTTP会话中.在每个请求处理特殊之前SecurityContextPersistenceFilter触发.它负责SecurityContext从HTTP会话(通过SecurityContextRepository实例)加载对象以及将SecurityContext对象注入SecurityContextHolder.查看SecurityContextPersistenceFilter类的源代码以获取更多详细信息.另一个重要的部分是默认情况下使用变量SecurityContextHolder存储SecurityContext对象ThreadLocal(因此每个线程将有一个不同的身份验证对象).
编辑.其他问题:
SecurityContextHolder它不是一个实例,它是一个带有静态方法的辅助类.SecurityContext存储在ThreadLocal变量中.SecurityContextHolder是一个辅助类,可用于SecurityContext通过ThreadLocal变量获取/设置实例.SecurityContextHolder所有线程使用的相同静态方法来获取/设置相应的 SecurityContext.ThreadLocal变量对于不同的线程具有不同的值.| 归档时间: |
|
| 查看次数: |
2550 次 |
| 最近记录: |