Shiro限制帐号只能在一处登录
来源:互联网 发布:淘宝商城女童套装 编辑:程序博客网 时间:2024/05/24 03:48
版权声明:本文为博主原创文章,未经博主允许不得转载。
/** * 登录 */ @SysLog("登录") @ResponseBody @RequestMapping(value = "/login", method = RequestMethod.POST) public R login(String usercode, String password, String captcha)throws IOException { /*String kaptcha = ShiroUtils.getKaptcha(Constants.KAPTCHA_SESSION_KEY); if(!captcha.equalsIgnoreCase(kaptcha)){ return R.error("验证码不正确"); }*/ try{ Subject subject = ShiroUtils.getSubject(); //sha256加密 password = MD5Utils.encrypt(usercode, password); UsernamePasswordToken token = new UsernamePasswordToken(usercode, password); subject.login(token); // 剔除其他此账号在其它地方登录 List<Session> loginedList = getLoginedSession(subject); for (Session session : loginedList) { session.stop(); } }catch (UnknownAccountException e) { return R.error(e.getMessage()); }catch (IncorrectCredentialsException e) { return R.error(e.getMessage()); }catch (LockedAccountException e) { return R.error(e.getMessage()); }catch (AuthenticationException e) { return R.error("账户验证失败"); } return R.ok().put("userType",1);//将当前用户类型返回给前台 } //遍历同一个账户的session private List<Session> getLoginedSession(Subject currentUser) { Collection<Session> list = ((DefaultSessionManager) ((DefaultSecurityManager) SecurityUtils .getSecurityManager()).getSessionManager()).getSessionDAO() .getActiveSessions(); List<Session> loginedList = new ArrayList<Session>(); SysUserEntity loginUser = (SysUserEntity) currentUser.getPrincipal(); for (Session session : list) { Subject s = new Subject.Builder().session(session).buildSubject(); if (s.isAuthenticated()) { SysUserEntity user = (SysUserEntity) s.getPrincipal(); if (user.getUsercode().equalsIgnoreCase(loginUser.getUsercode())) { if (!session.getId().equals( currentUser.getSession().getId())) { loginedList.add(session); } } } } return loginedList; }
阅读全文
0 0
- Shiro限制帐号只能在一处登录
- Shiro限制帐号只能在一处登录
- 一个帐号同一时间只能一人登录
- 一个帐号同一时间只能一人登录
- 一个帐号在同一时间只能一个人登录
- 我的shiro之旅: 十二 shiro 踢出用户(同一用户只能一处登录)
- Springmvc在限制只能在一处登陆
- 限制一个账号同时只能在一处登陆
- 关于shiro同一帐号同一时刻多处登录问题
- 同一时间同一帐号只能登陆在一台电脑
- Oracle限制某个数据库帐号只能在特定机器上连入数据库
- Oracle限制某个数据库帐号只能在特定机器上连入数据库
- Shiro限制登录尝试次数
- shiro 实现单用户登录,一个用户同一时刻只能在一个地方登录
- 一个帐号同一时间只能一个人登录
- 一个帐号同一时间只能一个人登录
- 一个帐号同一时间只能一个人登录
- java 一个帐号同一时间只能一个人登录
- Mysql主从不同步的解决方法(本例为mysql5.7)
- 把mysql数据库中的表通过java代码生成实体类
- telnet windows 系统
- c++ 运算符重载
- GIT 常用命令--绝对经典
- Shiro限制帐号只能在一处登录
- native与h5交互
- 1-4 输出菱形
- ESI.ProCAST.2016.0.Suite.Win64
- Android 一次启动多个Activity (TaskStackBuilder)
- Coursera pku C程序进阶 编程题#4:扩号匹配问题
- JSON(发送/接收)
- 虚拟化笔记04.OpenFiler.install
- BIO编程 及实现代码