Skip to content

H、在线用户强制下线

wangjie edited this page Dec 25, 2019 · 3 revisions

强制下线相关配置属性:

#jsets-shiro配置
jsets:
  shiro:
    #是否启用强制用户下线(系统管理员通过session操作迫使指定用户下线),不配置默认不启用
    force-logout-enable: true 
    #用户被强制下线后跳转的页面,force-logout-enable=true时此项有用,不配置默认跳转到login-url
    force-logout-url: /force_logout 

在线用户查询:

@Controller
@RequestMapping("/online")
public class OnlineAction {
    /**
     * 当前在线用户
     */
    @RequestMapping("/list")
    public String list(Model model) {
    	// 当前存活的Session数量
    	int onlineCount = ShiroUtils.getActiveSessionCount();
    	// 当前存活的Session列表
    	List<Session> activeSessions = ShiroUtils.getActiveSessions();
    	// 包装OnlineUserVo
    	List<OnlineUserVo> onlineUsers = Lists.newArrayList();
    	// 包装代码见DEMO
    	model.addAttribute("onlineCount",onlineCount);
    	model.addAttribute("onlineUsers",onlineUsers);
        return "online/online_list";
    }
    
    /**
     * 强制用户下线
     */
    @RequestMapping("/do_force_fogout")
    public String doForceLogout(@RequestParam(name="sessionId") String sessionId) {
    	ShiroUtils.forceLogout(sessionId);
        return "redirect:/online/list";
    }
}

在线用户列表:

当前在线用户

强制下线效果:

当前用户被管理员强制下线

Clone this wiki locally