session用户账号认证(一个用户登陆,踢出前一个用户)

在web.xml中配置:

<listener>
    <listener-class>cn.edu.hbcf.common.listener.SessionAttributeListener</listener-class>
  </listener>

然后写一个实体类:

package cn.edu.hbcf.common.listener;

import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;

import javax.servlet.http.HttpSession;
import javax.servlet.http.HttpSessionAttributeListener;
import javax.servlet.http.HttpSessionBindingEvent;

import cn.edu.hbcf.common.constants.WebConstants;
import cn.edu.hbcf.privilege.pojo.BaseUsers;

public class SessionAttributeListener implements HttpSessionAttributeListener {

     public static Map<String, HttpSession> sessionMap=new ConcurrentHashMap<String, HttpSession>();
     @Override
     public void attributeAdded(HttpSessionBindingEvent arg0) {
         if(arg0.getName().equals(WebConstants.CURRENT_USER)){
            // Enumeration session = arg0.getSession().getServletContext().getAttributeNames();
             HttpSession session = arg0.getSession();
        //     ServletContext application = session.getServletContext();
             BaseUsers user = (BaseUsers)session.getAttribute(WebConstants.CURRENT_USER);
             if(sessionMap.containsKey(user.getAccount())){//踢掉前一次登录
                 try {
                    HttpSession session2=sessionMap.remove(user.getAccount());
                     session2.invalidate();
                } catch (Exception e) {
                }
                // application.removeAttribute(user.getAccount());
            }
            sessionMap.put(user.getAccount(), session);
        //    application.setAttribute(user.getAccount(), user);
         }

     }
    @Override
    public void attributeRemoved(HttpSessionBindingEvent arg0) {
    }
    @Override
    public void attributeReplaced(HttpSessionBindingEvent se) {
        // TODO Auto-generated method stub

    }

}
时间: 2024-10-13 06:11:02

session用户账号认证(一个用户登陆,踢出前一个用户)的相关文章

spring security登录人数限制并且同一个账号可以踢掉前一个用户配置文件

一.限制用户登录数和session自动托管 1.maximumSessions:限制登录人数 2.exceptionIfMaximumExceeded: 为true同一账户只能登录一次, 为false同一账户可以登录多次如果配置了org.springframework.security.web.session.ConcurrentSessionFilter则会踢出前一个登录的session 3.sessionRegistry配置session管理 4.concurrentSessionFilte

Linux系统下查看已经登录用户并踢出的方法

LINUX是个多用户系统,一旦连接到网络中,它可以同时为多个登录用户提供服务. 查看用户的操作 查看当前用户: [[email protected] ROOT] # W                        2:31PM UP 11 DAY ,21:18 4 USERS, LODE AVERAGE : 0.12, 0.09 , 0.08                        USER TTY FROM [email protected] IDLE JCPU PCPU WHAT  

Django 编写博客网站的用户管理部分(采用自有的 django.contrib.auth) 2. 登陆登出和用户信息管理

续前Django 编写博客网站的用户管理部分(采用自有的 django.contrib.auth) 1. 注册部分 项目工具:Python 2.7.11  Django 1.10.2  Bootstrap 3.3.0   IDE:eclipse Pydev 1. 由于Django自带auth, 故仅需编写登录登出的url和template即可 urls常见上篇 template代码如下仅供参考: login 1 {% extends "account_base.html" %} 2 3

Linux强制踢出登录用户(断线账户剔除)

首先,用w查看登录用户 09:19:58 up 5 days, 2:53, 2 users, load average: 1.00, 1.01, 1.00 USER TTY FROM [email protected] IDLE JCPU PCPU WHAT root pts/1 192.168.1.100 07:52 56:32 0.06s 0.06s -bash root pts/2 192.168.1.101 09:19 2.00s 0.03s 0.00s w 确认pts/1用户无响应,将

用户登录限制、锁定与踢出

本文以SSH为例进行PAM配置来实现相应的认证功能,其它的登录方式配置相似,详情可参考文章<PAM - 可插拔认证模块>. 1.限制用户的登录(SSH) (1)使用pam_access自定义限制规则 //新增pam_access模块认证 [[email protected] ~]# vi /etc/pam.d/sshd #%PAM-1.0 account requisite pam_access.so nodefgroup accessfile=/etc/mypam/access_ssh.co

SAP R3 强制踢出用户

1.输入事务代码SM04. 2.找到你需要强行踢出的用户并选定,如下图: 3.选择用户后,点击菜单"用户(U)-退出系统L ". 弹出如下提示: 4.把勾都打上保存即可!

ORACLE 11g 实现伪审计用户&lt;登陆退出&gt;的详细记录

需求就是需要记录用户登陆登出的记录,包括时间以及连接ip地址以及连接方式等等,这样有助于跟踪分析问题,特别是一些人为无意识的dml操作导致数据丢失.数据混乱的问题追踪,还是非常有效的.大家知道Oracle库开启了审计audit后,肯定有办法查到问题,但是审计比较消耗资源,所以可以通过触发器之类的来间接实现这个功能. 1.建记录表 -- Create table create table UC_LOGON_OFF ( user_id VARCHAR2(30), session_id NUMBER(

Linux系统下强制踢掉登录用户

linux系统root用户可强制踢制其它登录用户,首先可用w命令查看登录用户信息,显示信息如下: [[email protected] ~]# w 15:49:22 up 18:24,  5 users,  load average: 0.00, 0.03, 0.10USER     TTY        [email protected]   IDLE   JCPU   PCPU WHATroot     tty1           2days  0.11s  0.00s xinit /et

Django项目:CRM(客户关系管理系统)--45--36PerfectCRM实现CRM用户登陆注销02

图片另存为  16*16  名字修改为      global_logo.jpg 1 /*! 2 3 *bootstrap.js 4 * 5 * Bootstrap v3.3.7 (http://getbootstrap.com) 6 * Copyright 2011-2016 Twitter, Inc. 7 * Licensed under the MIT license 8 */ 9 10 if (typeof jQuery === 'undefined') { 11 throw new E