要实现管理端对在线用户一个状态的管控,需要修改在线用户的session信息
代码如下所示
import org.apache.shiro.session.Session; import org.apache.shiro.session.mgt.eis.SessionDAO; import org.apache.shiro.subject.Subject; //引用shiro管理的SessionDao @Autowired private SessionDAO sessionDAO; @Override public void dealSession(String userId, int type) { //获取所有的在线session Collectionsessions = sessionDAO.getActiveSessions(); for(Session session:sessions){ //通过userId和在登录时记录到session会话的userId做对比,在线用户是否存在该用户 if(session.getAttribute("userId") != null && userId.equals(session.getAttribute("userId").toString())){ //通过session获取到该用户的所有信息 QcodeUser user = (QcodeUser)session.getAttribute("userInfo"); user.setIsSilence(type); break; } } return; }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)