【发布时间】:2012-09-05 16:17:13
【问题描述】:
我知道我可以为具有当前活动会话的用户获取所有会话,并且我知道我可以获取所有具有活动会话的用户的所有主体。但我想知道是否可以为特定用户获取所有会话。因此,假设我是当前活动会话的用户 A,我想 getAllPrincipals,然后选择其中一个委托人,然后为该特定委托人选择 getAllSessions。这可能吗?如果有怎么办?
【问题讨论】:
标签: java spring session spring-security
我知道我可以为具有当前活动会话的用户获取所有会话,并且我知道我可以获取所有具有活动会话的用户的所有主体。但我想知道是否可以为特定用户获取所有会话。因此,假设我是当前活动会话的用户 A,我想 getAllPrincipals,然后选择其中一个委托人,然后为该特定委托人选择 getAllSessions。这可能吗?如果有怎么办?
【问题讨论】:
标签: java spring session spring-security
您说的是SessionRegistry,在API 中有getAllSessions(Object principal, boolean includeExpiredSessions) 可以使用的方法。例如:
List<Object> allPrincipals = getAllPrincipals();
Object principal = allPrincipals.get(0); // change this to way you want
List<SessionInformation> principalSessions = getAllSessions(principal, false);
请记住,主体对象可以是任何东西,例如 User 或您自己的实现,但它必须正确定义 equals() 和 hashCode。
【讨论】: