1. jeesite限制用户只能在一处登录

      /*** 授权查询回调函数, 进行鉴权但缓存中无用户的授权信息时调用*/@Overrideprotected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principals) {Principal principal = (Principal) getAvailablePrincipal(principals);// 获取当前已登录的用户if (!Global.TRUE.equals(Global.getConfig("user.multiAccountLogin"))) {Collection<Session> sessions = getSystemService().getSessionDao().getActiveSessions(true, principal,UserUtils.getSession());if (sessions.size() > 0) {if (UserUtils.getSubject().isAuthenticated()) {//限制用户只能在一处登录startfor (Session session : sessions) {Object obj = session.getAttribute(DefaultSubjectContext.PRINCIPALS_SESSION_KEY);SimplePrincipalCollection coll = (SimplePrincipalCollection) obj;if (coll == null) {continue;}Principal user = (Principal) coll.getPrimaryPrincipal();String username = user.getLoginName();// 当第二次登录时,给出提示,禁止重复登录if (principal.loginName.equals(username)) {UserUtils.getSubject().logout();throw new AuthenticationException("msg:该用户已在其他设备登录,禁止重复登录!!!!");}}//限制用户只能在一处登录end}}}User user = getSystemService().getUserByLoginName(principal.getLoginName());if (user != null) {SimpleAuthorizationInfo info = new SimpleAuthorizationInfo();List<Menu> list = UserUtils.getMenuList();for (Menu menu : list) {if (StringUtils.isNotBlank(menu.getPermission())) {// 添加基于Permission的权限信息for (String permission : StringUtils.split(menu.getPermission(), ",")) {info.addStringPermission(permission);}}}// 添加用户权限info.addStringPermission("user");// 添加用户角色信息for (Role role : user.getRoleList()) {info.addRole(role.getEnname());}// 更新登录IP和时间getSystemService().updateUserLoginInfo(user);// 记录登录日志LogUtils.saveLog(Servlets.getRequest(), "系统登录");return info;} else {return null;}}

jeesite限制用户只能在一处登录相关推荐

  1. 同一个账号只能一处登录

    有些系统要求用户账号不能在多浏览器同时登录,只能在一处登录,若该账号在别的地方登录了,则之前登录的账号再次操作时,就会跳转回登录页面. 设计思路: 一个USERID只能对应一个SESSIONID; 如 ...

  2. shiro 删除用户session_我的shiro之旅: 十二 shiro 踢出用户(同一用户只能一处登录)...

    看了一下官网,没有找到关于如何控制同一用户只能一处登录的介绍,网上也没有找到相关的文章.可能有些人会记录用户的登录信息,然后达到踢出用户的效果.这里介绍一个更简单的方法. 如果我们跟shiro的源码, ...

  3. Sqlserver中 登录用户只能看到自己拥有权限的库

    Sqlserver中 登录用户只能看到自己拥有权限的库 转自:https://www.cnblogs.com/huangtailang/p/4209180.html SSMS设置:https://ww ...

  4. SQL Server 2008等登录用户只能看到自己的数据库设置办法

    默认情况下登录用户除了看到自己拥有管理权限的数据库外.还可以看到其他数据库,在点击打开时会提示没有权限.如下设置可使该用户只能看到自己拥有管理权限的数据库,而看不到其他没有权限的数据库. (1)取消默 ...

  5. 用户 sa 登录失败。_Sqlserver2008R2特定用户只能查看管理指定的数据库

    一.新建登录名 安全性---登录名---右键---新建登录名 二.设置public权限 默认情况下,public用户能看到所有的数据库. REVOKE VIEW ANY DATABASE TO [pu ...

  6. 一个用户只能登录一次

    仅仅思路,这是springsecurety的 package com.dbapp.fly.config.security;import java.io.IOException; import java ...

  7. Shiro一处登录与退出

    Shiro一处登录与退出 退出 @RequestMapping("/loginout")public String loginOut(){Subject sub = Securit ...

  8. 同一账户同时只能在一处登陆(单点登陆)

    思路: 1:用户登陆->产生一个随机Key(GUID)(服务器维护一个字典[id,key],放在memcache中)->同时输出key到客户端Cookie 每次用户访问页面,检测是否登陆时 ...

  9. J2EE用监听器实现同一用户只能有一个在线

    这里我们讨论的是已登陆或将要登陆的用户,游客不在讨论的范围之内.这一点大家应该很容易就能理解的吧.                那么我们应该怎样去实现同一用户只能有一个在线这样的一个小功能呢? 有人 ...

最新文章

  1. android 中使用TabHost控件实现微信界面的底部菜单效果
  2. swift不用声明类型那些事
  3. linux netty udp服务端,Netty实现简单UDP服务器(示例代码)
  4. 移除集合效率高还是add高_效率比较--集合
  5. mysql把一个字段加到另一张表中_mysql如何能把一个表中的某一字段下的数据加入另一个表中相同字段下,条件是两表中的某字段相同?...
  6. 暑期训练日志----2018.8.24
  7. java copy-on-write_[Java并发-18-并发设计模式] COW模式:Copy-on-Write模式的应用领域
  8. go mysql 多并发_MySQL并发处理-Go语言中文社区
  9. go - struct
  10. 05、应用程序数据操作(下)
  11. 下列( )软件不能编辑html语言,2016年职称计算机Dreamweaver考试题库五
  12. 用剪映将无字幕的英文视频翻译成中文字幕(附教程+软件)
  13. 支付宝 android 崩溃,支付宝App崩溃网友集体炸锅 官方紧急回应
  14. flink 一次job卡deploying故障解决
  15. 仰望星空不如脚踏实地
  16. 淘宝卖家如何有效控制直通车展现?
  17. 我要悄悄学习,做一个浪漫的程序员
  18. iphone各个系列手机最新的尺寸资料(更新到iphone6s)
  19. GD32F303固件库开发(16)----移植兆易创新SPI Nor Flash之GD25Q64Flash
  20. MySQL InnoDB配置统计信息

热门文章

  1. IOS 上架到App Store被拒的常见问题总结
  2. linux服务器重启命令是什么
  3. 数据分析方法,寻找事物之间的因果规律-逻辑关系法(1)
  4. mysql gtid 开启失败_失败gtid
  5. mysql投票网站_ThinkPHP5+jQuery+MySql实现投票功能
  6. 其中n和ch是用户传入的参数,n为[1, 9]的正整数。要求函数按照如样例所示的格式打印出n行由字符ch构成的字符金字塔。注意每个字符后有一个空格。
  7. 利用MATLAB编程实现系统传递函数的构建以及它们之间进行串联、并联、反馈时的构建方法
  8. 求华氏温度100c语言程序,C语言程序设计答案
  9. 教你如何下载、安装、使用SQL Server
  10. Es6 find 和findIndex的区别