单用户登陆,踢出前一个同名用户

原创 2007年09月26日 16:24:00

*******在web.xm中做session过期时间设置************
<session-config>
  <session-timeout>15</session-timeout>
 </session-config>
 

******************LogonAction.java******************************
ActionServlet servlet = this.getServlet();         
HttpSession session = request.getSession();
ServletContext servletContext = servlet.getServletContext();
HttpSession oldSession = (HttpSession) servletContext.getAttribute(loginId);
boolean isFirstLogin = (oldSession == null);
boolean isSameLogin = (oldSession != null) && oldSession.getId().equals(session.getId());      
if (isFirstLogin || !isSameLogin) {
             servletContext.setAttribute(loginId, session);
}

******************在其他需要验证的action中加入一下代码*****************
ActionServlet servlet = this.getServlet();
ServletContext servletContext = servlet.getServletContext();
HttpSession oldSession = (HttpSession) servletContext.getAttribute(loginId);    
if(session.getAttribute(Constants.CURRENT_USER)==null){
   session.setAttribute("message", "timeout");
   return mapping.findForward("timeoutfail");
}
if (oldSession != null&&!(oldSession.getId().equals(session.getId())))  {  
       request.getSession().invalidate();
      return (mapping.findForward("failoldsession"));
 }
    

 

CAS单点登出实现同帐号当前登录成功踢出前一登录终端

需求:张三在自己电脑上登录了admin帐号,然后又去李四电脑上登录帐号,登录成功后系统踢出张三电脑上的帐号认证。 方案:每次在CAS服务端登录成功时记录当前登录帐号(唯一)(List)。每次登录操作之...
  • II_bat
  • II_bat
  • 2016年11月18日 10:36
  • 2173

Asp.net实现踢出用户

最近公司老大叫我实现防止用户重复登录的功能,既然是老大吩咐的那肯定要去做了,哈哈,开个玩笑,言归正传吧。到网上找了很多资料,大部分都用Application或数据库实现,其原理我就不用多说了,想必大家...
  • liubiaocai
  • liubiaocai
  • 2008年06月03日 22:56
  • 1396

统计在线用户数以及同账号登录踢出另一用户

写一个session属性监听器:定义两个map,一个存session,以用户编号为key;一个存用户信息,也以用户编号为key.map的个数就是在线用户数.每个用户登录时,先检查map中是否存在,如果...
  • licheng989
  • licheng989
  • 2016年06月03日 17:15
  • 704

spring security3.0控制多个用户账号同时登录和管理员踢出用户

声明一下,这篇文章不是基于acegi  spring security2.0写的,  我发现很多文章都是基于老版本写的,  并不适用最新版。 下面跟大家分享一下在spring security3...
  • u013305082
  • u013305082
  • 2016年09月06日 10:39
  • 1571

单一用户登录,即当前用户登录后要踢出前一个登录,即做出踢人效果,如何实现?

单一用户登录,即当前用户登录后要踢出前一个登录,即做出踢人效果,如何实现? 一般情况下,用户登录,有两种方式:cookie方式,session方式。一般情况下,session方式是使用最多的...
  • Ideality_hunter
  • Ideality_hunter
  • 2017年10月24日 10:31
  • 315

shiro 实现单用户登录,一个用户同一时刻只能在一个地方登录

如果我们跟shiro的源码,我们可以看到。当用户登录成功后,shiro会把用户名放到session的attribute中,key为DefaultSubjectContext_PRINCIPALS_SE...
  • qq_15746201
  • qq_15746201
  • 2016年12月03日 23:31
  • 1150

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

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

java防止帐号重复登录、后登入用户踢前登入用户

方法1: 每个用户登录后建立一个用户对象,将其同时放入session和在线用户集合;每个用户登录前先检查该用户名是不是在集合内,如果是,则将原用户对象移除,让二次登录的用户直接登录;用户每个请求前的...
  • xujiangdong1992
  • xujiangdong1992
  • 2017年05月15日 21:55
  • 805

oracle 踢出已登陆用户

所有session都放在v$session 中其中saddr,sid,serial#,username为此操作要用的列 alter system kill session 15,6;15为SID,6为...
  • ducduc
  • ducduc
  • 2009年06月16日 11:27
  • 2343

spring security3实现如何踢出用户

对于spring security我个人是比较喜欢的一个安全框架,我们的系统中一般需要提供强制将用户踢出的功能,这个功能security也有提供, 首先我们要操作需要获取sessionRegistr...
  • lipc_
  • lipc_
  • 2016年09月30日 18:31
  • 1150
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:单用户登陆,踢出前一个同名用户
举报原因:
原因补充:

(最多只允许输入30个字)