Создайте свой собственный идентификатор сессии в приложении struts2 или j2ee

У меня есть приложение, использующее Struts2 jsp и java..sessionid создается контейнером. Я хочу создать свой собственный идентификатор сеанса и установить для этого конкретного сеанса... просто хочу перезаписать. Я также создал фильтр. идентификатор сеанса

что-то вроде

session.setSessionId()

Спасибо..

1 ответ

Вы можете сделать это, используя CookieInterceptor, который может реализовать CookiesAware и затем перехватить вызов, чтобы установить свой собственный sessionId.

Редактировать:

Только что понял, CookieInterceptor не позволяет вам установить cookie, поэтому я сделал что-то вроде этого

В моем методе выполнения моего Action Я сделал это:

public String execute() {
        String jSessionId = null;
        for (Cookie c : httpServletRequest.getCookies()) {
            if (c.getName().equals("JSESSIONID"))
                jSessionId = c.getValue();
        }
        System.out.println("Value Found In Request = " + jSessionId);
        jSessionId = "TestingOverrideOfJSessionId";
        Cookie myCookie = new Cookie("JSESSIONID", jSessionId);
        myCookie.setMaxAge(60 * 60 * 24 * 365); // Make the cookie last a year
        httpServletResponse.addCookie(myCookie);

        return SUCCESS;
    }

Результат

Переопределение SessionId

Другие вопросы по тегам