/*******************************************************************************
* Copyright (c) 2016 hangum.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the GNU Lesser Public License v2.1
* which accompanies this distribution, and is available at
* http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
*
* Contributors:
* hangum - initial API and implementation
******************************************************************************/
package com.hangum.tadpole.engine.utils;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.http.HttpSession;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;
import org.apache.log4j.Logger;
/**
* HTTP session collector
*/
public class HttpSessionCollectorListener implements HttpSessionListener {
private static final Logger logger = Logger.getLogger(HttpSessionCollectorListener.class);
private static final Map<String, HttpSession> sessions = new HashMap<String, HttpSession>();
@Override
public void sessionCreated(HttpSessionEvent event) {
HttpSession session = event.getSession();
if(logger.isDebugEnabled()) logger.debug("---> [login]" + session.getId());
sessions.put(session.getId(), session);
}
@Override
public void sessionDestroyed(HttpSessionEvent event) {
if(logger.isDebugEnabled()) logger.debug("---> [logout]" + event.getSession().getId());
sessions.remove(event.getSession().getId());
}
public static Map<String, HttpSession> getSessions() {
return sessions;
}
public static HttpSession find(String sessionId) {
return sessions.get(sessionId);
}
}