nbr*_*bro 21 java spring spring-security
我是Spring和Spring Security的新手.我正在阅读关于Spring Security的内容,它出现了principal的概念,它应该是当前登录的用户.但是,如果我们有多个当前登录用户怎么办?所以,我的问题是,那么春季安全的主要内容到底是什么?
我已阅读本教程的示例:
http://www.mkyong.com/spring-security/get-current-logged-in-username-in-spring-security/
他们似乎考虑到只有一个当前登录的用户,这种情况并非如此.
如何检索特定用户?我如何区分正在进行请求的用户?
Mar*_*tör 46
主体是当前登录的用户.但是,您通过绑定到当前线程的安全上下文检索它,因此它也绑定到当前请求及其会话.
SecurityContextHolder.getContext()
SecurityContext
通过ThreadLocal
变量在内部获取当前实现.因为请求绑定到单个线程,所以这将获得当前请求的上下文.
为了简化,您可以说安全上下文在会话中并包含用户/主体和角色/权限.
如何检索特定用户?
你没有.所有API都旨在允许访问当前请求的用户和会话.让用户A成为100个当前经过身份验证的用户之一.如果A对您的服务器发出请求,它将分配一个线程来处理该请求.如果你那么SecurityContextHolder.getContext().getAuthentication()
在这个线程的上下文中这样做.默认情况下,在该线程内,您无权访问由不同线程处理的用户B的上下文.
我如何区分正在进行请求的用户?
你没必要,这就是Servlet容器为你做的.
归档时间: |
|
查看次数: |
23781 次 |
最近记录: |