Question

Je suis en train d'utiliser un HttpSessionListener pour vérifier un cookie et obtenir l'adresse IP de la demande.

Mais je n'ai pas accès à l'HttpServletRequest chez l'auditeur de passer à STKUserCookie ou pour obtenir l'adresse IP.

public STKUserCookie(HttpServletRequest request)

public void sessionCreated(HttpSessionEvent se) {
    HttpSession httpSes = se.getSession();

    if ( se.getSession().getAttribute("STKUserSession") == null) {
        STKUserCookie userCookie = new STKUserCookie(request);  <------- ERROR on this line "request" not available
        String userBadge = userCookie.getUserID();
        STKUserDAO userDAO = new STKUserDAO();
        STKUser user = userDAO.getUser(userBadge);
        if (user != null) {
            user.setIpAddress(se.getRemoteAddr());    <------- ERROR on this line "getRemoteAddr" not a method of se
            userDAO.updateLogin(user);
            httpSes.setMaxInactiveInterval(36000); //set to 10 hours
            httpSes.setAttribute("STKUserSession", user);
        }

    }
}

Le ci-dessus était une scriptlet que j'incluais dans toutes mes pages jsp et je suis en train de factoriser en un auditeur, plutôt que d'un filtre puisque je veux seulement qu'il soit appelé une fois par session pour réduire les frais généraux. Ou devrais-je vous inquiétez pas les frais généraux et coller la méthode dans un filtre ??

Était-ce utile?

La solution

Ne vous inquiétez pas au sujet de la tête d'un filtre sans op. Il est négligeable.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top