使用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();
希望这对您可以做的事有所帮助。

09-11 18:53