commit
This commit is contained in:
@@ -328,30 +328,30 @@ public class SysUserServiceImpl extends BaseServiceImpl<Sys_user> implements Sys
|
||||
//清除角色缓存
|
||||
sysRoleService.clearCache();
|
||||
|
||||
//获取sessionDao
|
||||
DefaultWebSessionManager shiroWebSessionManager = Mvcs.getIoc().get(DefaultWebSessionManager.class, "shiroWebSessionManager");
|
||||
SessionDAO sessionDAO = shiroWebSessionManager.getSessionDAO();
|
||||
Collection<Session> activeSessions = sessionDAO.getActiveSessions();
|
||||
|
||||
//获取所有在线的session
|
||||
for (Session activeSession : activeSessions) {
|
||||
Serializable id = activeSession.getId();
|
||||
Sys_user user = dao().fetch(Sys_user.class, Cnd.where("loginSessionId", "=", id));
|
||||
if (Lang.isEmpty(user)) {
|
||||
continue;
|
||||
}
|
||||
fetchLinks(user, null);
|
||||
fillModuleMenus(user);
|
||||
fillUnitUnion(user);
|
||||
|
||||
//更新subject
|
||||
List<PrincipalCollection> list = new CopyOnWriteArrayList<>();
|
||||
Subject subject = SecurityUtils.getSubject();
|
||||
PrincipalCollection principals = subject.getPrincipals();
|
||||
String realName = principals.getRealmNames().iterator().next();
|
||||
PrincipalCollection newPrincipalCollection = new SimplePrincipalCollection(user, realName);
|
||||
list.add(0, newPrincipalCollection);
|
||||
activeSession.setAttribute("org.apache.shiro.subject.support.DelegatingSubject.RUN_AS_PRINCIPALS_SESSION_KEY", list);
|
||||
}
|
||||
// //获取sessionDao
|
||||
// DefaultWebSessionManager shiroWebSessionManager = Mvcs.getIoc().get(DefaultWebSessionManager.class, "shiroWebSessionManager");
|
||||
// SessionDAO sessionDAO = shiroWebSessionManager.getSessionDAO();
|
||||
// Collection<Session> activeSessions = sessionDAO.getActiveSessions();
|
||||
//
|
||||
// //获取所有在线的session
|
||||
// for (Session activeSession : activeSessions) {
|
||||
// Serializable id = activeSession.getId();
|
||||
// Sys_user user = dao().fetch(Sys_user.class, Cnd.where("loginSessionId", "=", id));
|
||||
// if (Lang.isEmpty(user)) {
|
||||
// continue;
|
||||
// }
|
||||
// fetchLinks(user, null);
|
||||
// fillModuleMenus(user);
|
||||
// fillUnitUnion(user);
|
||||
//
|
||||
// //更新subject
|
||||
// List<PrincipalCollection> list = new CopyOnWriteArrayList<>();
|
||||
// Subject subject = SecurityUtils.getSubject();
|
||||
// PrincipalCollection principals = subject.getPrincipals();
|
||||
// String realName = principals.getRealmNames().iterator().next();
|
||||
// PrincipalCollection newPrincipalCollection = new SimplePrincipalCollection(user, realName);
|
||||
// list.add(0, newPrincipalCollection);
|
||||
// activeSession.setAttribute("org.apache.shiro.subject.support.DelegatingSubject.RUN_AS_PRINCIPALS_SESSION_KEY", list);
|
||||
// }
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user