2011/08/24
GAEでJSESSIONIDが永続化されない
GAE/J でセッションを使っていて困った現象が1つ。
JSESSIONIDが永続化されないのだ。
Chromeで見てみると御覧の通りで実機に上げても同じ。
GAEの独自の仕様なのだろうか? 自力でセッションを実装しても良いのだができればやりたく無いので 逃げ手を探してみた。 Set-Cookie は同じキーが複数ある場合、 後の方が有効になるはずなので Filter をかましてみた。
public class SessionFilter implements Filter {
public void init(FilterConfig conf) throws ServletException {
}
public void doFilter(ServletRequest req, ServletResponse res,
FilterChain chain) throws ServletException, IOException {
chain.doFilter(req, res);
HttpServletRequest _req = (HttpServletRequest) req;
HttpServletResponse _res = (HttpServletResponse) res;
HttpSession session = _req.getSession();
Cookie jsid = new Cookie("JSESSIONID",session.getId());
jsid.setMaxAge(session.getMaxInactiveInterval());
jsid.setPath("/");
_res.addCookie(jsid);
}
public void destroy() {
}
}
なんか行けてるみたい。
とりあえず、session-timeout の設定が効くようになった。
GAEの独自の仕様なのだろうか? 自力でセッションを実装しても良いのだができればやりたく無いので 逃げ手を探してみた。 Set-Cookie は同じキーが複数ある場合、 後の方が有効になるはずなので Filter をかましてみた。
とりあえず、session-timeout の設定が効くようになった。
この投稿へのコメント

コメント・フォーム