package com.ycsoft.commons.action; import java.io.IOException; import java.io.PrintWriter; import java.net.Socket; import java.util.Enumeration; import java.util.regex.Matcher; import java.util.regex.Pattern; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; import javax.servlet.http.HttpSessionEvent; import javax.servlet.http.HttpSessionListener; import org.apache.log4j.Logger; import com.ycsoft.commons.constants.Environment; import com.ycsoft.commons.helper.LoggerHelper; import com.ycsoft.commons.helper.SocketHelp; public class SessionListener implements HttpSessionListener { public void sessionCreated(HttpSessionEvent se) { } public void sessionDestroyed(HttpSessionEvent se) { HttpSession session = se.getSession(); String ssoSid = (String) session .getAttribute(Environment.SSO_TOKEN_PARAM_KEY); String contextPath = (String) session .getAttribute(Environment.CONTEXT_PATH); if(ssoSid!=null) try { SsoUnit.destrorySso(ssoSid,contextPath); } catch (IOException e) { e.printStackTrace(); } } public static String getSsoLoginUrl(HttpServletRequest req) { String ssoLoginUrl = SsoUnit.getSsoLoginUrl(); if ("".equals(ssoLoginUrl)) { String domain = req.getHeader("referer"); try{ Matcher m = Pattern.compile("^(http|https)://((((\\w+\\.)+\\w+)+)|(\\w+))(:\\w+)*").matcher(domain); if (m.find()) domain = m.group(); }catch (Exception e) { domain = ""; } ssoLoginUrl = domain + Environment.ROOT_PATH_BOSS_LOGIN+"/"; } return ssoLoginUrl; } }