在struts2或j2ee app中创建自己的会话ID

时间:2012-04-16 08:04:45

标签: session struts2 sessionid

我有一个使用Struts2 jsp的应用程序,而java..sessionid是由container创建的。我想创建自己的会话ID并设置为该特定会话...只想覆盖。我已经创建了一个过滤器。会话id.any线索

类似

session.setSessionId()

感谢..

1 个答案:

答案 0 :(得分:1)

您可以使用可以实现CookieInterceptorCookiesAware执行此操作,然后拦截调用以设置您自己的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 Override