/* ================================================================== * Created [2009-4-27 下午11:32:55] by Jon.King * ================================================================== * TSS * ================================================================== * mailTo:jinpujun@hotmail.com * Copyright (c) Jon.King, 2009-2012 * ================================================================== */ package com.jinhe.tss.core.web.listener; import javax.servlet.http.HttpSession; import javax.servlet.http.HttpSessionEvent; import javax.servlet.http.HttpSessionListener; import org.apache.log4j.Logger; import com.jinhe.tss.core.Config; import com.jinhe.tss.core.sso.context.Context; import com.jinhe.tss.core.sso.online.OnlineUserManagerFactory; /** * <p> SessionDestroyedListener.java </p> * * Session超时监听程序:相关Session超时时,注销在线用户库中对应记录信息 * */ public class SessionDestroyedListener implements HttpSessionListener { private Logger log = Logger.getLogger(this.getClass()); public void sessionCreated(HttpSessionEvent event) { HttpSession session = event.getSession(); // 设置 session 的过期时间 if(session.isNew()){ String configValue = Config.getAttribute(Config.SESSION_CYCLELIFE_CONFIG); if (configValue != null && !configValue.trim().equals("")) { session.setMaxInactiveInterval(Integer.parseInt(configValue)); // 以秒为单位 } } String sessionId = session.getId(); String appCode = Context.getApplicationContext().getCurrentAppCode(); log.debug("应用【" + appCode + "】里 sessionId为:" + sessionId + " 的session创建完成,有效期为:" + session.getMaxInactiveInterval() + " 秒 "); } public void sessionDestroyed(HttpSessionEvent event) { String sessionId = event.getSession().getId(); String appCode = Context.getApplicationContext().getCurrentAppCode(); log.debug("应用【" + appCode + "】里 sessionId为:" + sessionId + " 的session已经过期," + "有效期为:" + event.getSession().getMaxInactiveInterval() + " 秒 "); String token = OnlineUserManagerFactory.getManager().logout(appCode, sessionId); Context.destroyIdentityCard(token); //去除登陆用户身份证card信息 } }