Monitorando sessões HTTP em aplicações Java Web

Implementando a interface HttpSessionListener é possível saber quando é criado, destruído ou consultado uma sessão http dentro da aplicação, segue abaixo o exemplo:

public class HttpSessionCollector implements HttpSessionListener {
     
    private final Logger logger = LogManager.getLogger(getClass().getName()); 

    private static final Map<String, HttpSession> sessions = new HashMap<String, HttpSession>();

    @Override
    public void sessionCreated(HttpSessionEvent event) {
        HttpSession session = event.getSession();
        logger.info("Criado sessão: " + session.getId());
        sessions.put(session.getId(), session);
    }

    @Override
    public void sessionDestroyed(HttpSessionEvent event) {
        logger.info("Destruida sessão: " + event.getSession().getId());
        sessions.remove(event.getSession().getId());
    }

    public static HttpSession find(String sessionId) {
        return sessions.get(sessionId);
    }

}
Observação
A classe acima contem o comportamento padrão de uma sessão então qualquer alteração pode influenciar no funcionamento da sessão dentro da aplicação.

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.