HttpSessionListener 实现类 监听 session创建于销毁时的动作

监听 session创建于销毁时的动作  ,用于用户安全相关问题是的统计,注销等操作

使用方法: 在web.xml文件中添加listener 
<listener>
    <listener-class>路径.sessionlistener</listener-class>
  </listener> 



package com.fnic.cdnmgr.ui.security.listener;

import javax.servlet.annotation.WebListener;
import javax.servlet.http.HttpSession;
import javax.servlet.http.HttpSessionAttributeListener;
import javax.servlet.http.HttpSessionBindingEvent;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import com.fnic.cdnmgr.sdk.comm.CDNException;
import com.fnic.cdnmgr.sdk.comm.ConstComm;
import com.fnic.cdnmgr.sdk.security.api.IUserInOutSrv;
import com.fnic.cdnmgr.ui.security.cache.OnlineSessionCache;

/**
 * Application Lifecycle Listener implementation class sessionlistener
 * 
 */
@WebListener
public class sessionlistener implements HttpSessionListener, HttpSessionAttributeListener
{

    private static final Logger logger = LoggerFactory.getLogger(ConstComm.LOGGER_SC);

    private static IUserInOutSrv userInOutSrv;

    private static OnlineSessionCache onlineSessionCache;

    /**
     * Default constructor.
     */
    public sessionlistener()
    {
        // TODO Auto-generated constructor stub
    }

    /**
     * @see HttpSessionAttributeListener#attributeRemoved(HttpSessionBindingEvent)
     */
    @Override
    public void attributeRemoved(final HttpSessionBindingEvent arg0)
    {
        // TODO Auto-generated method stub
    }

    /**
     * @see HttpSessionAttributeListener#attributeAdded(HttpSessionBindingEvent)
     */
    @Override
    public void attributeAdded(final HttpSessionBindingEvent arg0)
    {
        // TODO Auto-generated method stub
    }

    /**
     * @see HttpSessionAttributeListener#attributeReplaced(HttpSessionBindingEvent)
     */
    @Override
    public void attributeReplaced(final HttpSessionBindingEvent arg0)
    {
        // TODO Auto-generated method stub
    }

    /**
     * @see HttpSessionListener#sessionCreated(HttpSessionEvent)
     */
    @Override
    public void sessionCreated(final HttpSessionEvent arg0)
    {
        logger.debug("sessioncreated");

    }

    /**
     * @see HttpSessionListener#sessionDestroyed(HttpSessionEvent)
     */
    @Override
    public void sessionDestroyed(final HttpSessionEvent event)
    {
        HttpSession session = event.getSession();
        String tokenId = "";
        if (session.getAttribute("loginToken") != null)
        {
            tokenId = session.getAttribute("loginToken").toString();
        }
        try
        {
            userInOutSrv.logout(tokenId);
        }
        catch (Exception e)
        {
            e.printStackTrace();
        }
        session.invalidate();
        onlineSessionCache.deleteSession(session);
    }

    public static void setUserInOutSrv(final IUserInOutSrv userInOutSrv)
    {
        sessionlistener.userInOutSrv = userInOutSrv;
    }

    public static void setOnlineSessionCache(final OnlineSessionCache onlineSessionCache)
    {
        sessionlistener.onlineSessionCache = onlineSessionCache;
    }

}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值