J2EE信息管理系统如何限制同一账号多处登录

beyoyo 2015-06-05 03:25:03
加精
求各位大神,希望能给我点现在互联网公司用的比较安全可靠的思路~求各位大大指导
...全文
6353 38 打赏 收藏 转发到动态 举报
写回复
用AI写文章
38 条回复
切换为时间正序
请发表友善的回复…
发表回复
哞啥咔啦咔 2016-07-22
  • 打赏
  • 举报
回复
用redis维护用户登陆信息,多处登陆时匹配信息,很容易判断用户是否上线。
ouzhijian 2016-06-20
  • 打赏
  • 举报
回复
websocket
nanfu08 2015-07-29
  • 打赏
  • 举报
回复
感觉用redis 你用户session信息生成一个key,当这个用户再次登录的时候判断这个key是否存在。
shuanzia 2015-07-23
  • 打赏
  • 举报
回复
springmvc是可以这样设置的,服务器端只允许一个session回话活动,再次登录前一个就会强制退出
自然80 2015-06-26
  • 打赏
  • 举报
回复
单实例好做,如果是集群 就复杂些。 如果是集群可以用集群缓存,把登陆的 用户ID 和sessionID 做个缓存。 用户登录(访问)的时候检查 注册下。用户退出 和session超时的时候 注销下缓存。
liangtu 2015-06-24
  • 打赏
  • 举报
回复
引用 30 楼 moyan254 的回复:
看到这个问题,突然想起玩的游戏了 如果赶上节日,某个时段会有200万的玩家同时在线 存session中,会不会把服务器卡死 存表中,某些用户的网络不好,频繁登陆,对表的读写操作就特别大了 跟这个问题是相同的 想过,但是一直没想出一个合理的办法
200万用户信息没那么大,而且能支持两百万,硬件肯定没问题。
west_joe 2015-06-22
  • 打赏
  • 举报
回复
刚好在学j2ee,看一下
伊顺鸣 2015-06-18
  • 打赏
  • 举报
回复
;来学习了哦。。
放纵的青春 2015-06-18
  • 打赏
  • 举报
回复
你说的信息管理系统是前台的还是后台的啊? 听你的意思是面向外面用户的,访问量很大的? 直接用单点登录就OK了吧? sso 自己网上搜一下
浅笑天无情 2015-06-18
  • 打赏
  • 举报
回复
看到这个问题,突然想起玩的游戏了 如果赶上节日,某个时段会有200万的玩家同时在线 存session中,会不会把服务器卡死 存表中,某些用户的网络不好,频繁登陆,对表的读写操作就特别大了 跟这个问题是相同的 想过,但是一直没想出一个合理的办法
wangruohang 2015-06-17
  • 打赏
  • 举报
回复
可以在Application中放置一个map集合,用户id作为key,value存放相关信息,当用户登录后,查找map集合是否保存该key,存在提示异地登录;不存在登录成功。
池塘春草 2015-06-14
  • 打赏
  • 举报
回复
这边好热闹呀 来听听好
  • 打赏
  • 举报
回复
可以将用户名和密码经过加密算法生成一个唯一的字符串,存入redis里面,每次登陆的时候进行匹配。
xwj11566408 2015-06-12
  • 打赏
  • 举报
回复
好东西,多多学习下
liangtu 2015-06-10
  • 打赏
  • 举报
回复
用缓存记录用户登录的session,如果再次登录则做相应处理。
sinly8008 2015-06-10
  • 打赏
  • 举报
回复
这边好热闹呀 来听听好
二十亩鱼 2015-06-09
  • 打赏
  • 举报
回复
不同请求的sessin是不能通话的,我觉得session不能实现如题要求,使用全局对象application倒是可以一试,看具体需求,是否需要库表配合。
wdh123love 2015-06-09
  • 打赏
  • 举报
回复
登陆的时候把他的机器码,和登陆状态写到数据库中。异地登陆的时候以最新的机器码为准,不一样的就下线
猿敲月下码 2015-06-09
  • 打赏
  • 举报
回复
接14L,如果用户在别的地方登陆,那么会更新全局缓存中的登录时间 此时缓存中的登录时间肯定大于之前session中的登录时间 session中的loginDate跟全局缓存中的loginDate不一致的话就跳转到登陆页面.
猿敲月下码 2015-06-09
  • 打赏
  • 举报
回复
解决方法很多,我这里提供一个思路: 建一个全局缓存map<username,loginDate>,键值对为唯一用户名/登录时间 登陆时: Date loginDate = new Date(); map.push(username,loginDate); 同时在session中存放一份登录时间 session.setAttribute("userLoginDate",loginDate); 然后建一个全局的过滤器,每次请求都判断下session中的loginDate跟全局缓存中的loginDate是否一致 如果用户在q
加载更多回复(13)

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧