使用SessionRegistry对象,我已经为用户的所有 Activity 会话检索了SessionInformation。
现在,我现在要检查这些会话的权限。为此,我需要身份验证对象。
Spring 安全性有办法解决吗
我的代码:
List<SessionInformation> sessionInformationList = sessionRegistry.getAllSessions( user, false);
SessionInformation sessionInformation = sessionRegistry.getSessionInformation(lastSessionId);
//Now I need Authentication Object, any idea
我这样做是为了检索不同会话ID的用户角色
最佳答案
在Stormpath Spring Security integration中,我们对身份验证工作流程中所需的内容进行了编码。一旦对用户进行了正确的身份验证,就会生成Granted Authorites
并将其应用于要检索的Authentication
对象。
我们将该信息封装在一个名为StormpathUserDetails
的对象中。您可以看看this piece of code。
然后,您的代码可以通过以下方式检索该信息:Collection<? extends GrantedAuthority> grantedAuthorities = ((StormpathUserDetails)SecurityContextHolder.getContext().getAuthentication().getPrincipal()).getAuthorities();
希望这对您可以做的事有所帮助。