1、关键的代码
//关键代码
DefaultWebSecurityManager securityManager = (DefaultWebSecurityManager) SecurityUtils.getSecurityManager();
DefaultWebSessionManager sessionManager = (DefaultWebSessionManager) securityManager.getSessionManager();
MemorySessionDAO sessionDao = (MemorySessionDAO) sessionManager.getSessionDAO();
Collection<Session> sessions = sessionDao.getActiveSessions();
for(Session session:sessions){
Object obj = session.getAttribute(DefaultSubjectContext.PRINCIPALS_SESSION_KEY);
if(null!=obj){
SimplePrincipalCollection spc = (SimplePrincipalCollection)session.getAttribute(DefaultSubjectContext.PRINCIPALS_SESSION_KEY);
//我自定义的用户信息
UserInfo ui = (UserInfo) spc.getPrimaryPrincipal();
//此处可以处理自己的逻辑
}
}
2、前提条件
sessionManager必须用DefaultWebSessionManager这个
@Bean(name = "sessionManager")
public SessionManager getDefaultWebSessionManager() {
return new DefaultWebSessionManager();
}
本文介绍如何使用Shiro框架中的DefaultWebSessionManager进行会话管理,并遍历所有活动会话来获取用户信息。实现这一过程需要配置DefaultWebSessionManager并自定义用户信息类。
1243

被折叠的 条评论
为什么被折叠?



