监听 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;
}
}
HttpSessionListener 实现类 监听 session创建于销毁时的动作
最新推荐文章于 2024-01-08 14:59:15 发布