1

私は試した

< Context cookies="true" crossContext="true">

< SessionCookie secure="true" httpOnly="true" />

context.xml にありますが、jboss4.0 では認識されません

そして私はJavaプログラムで試しました

String sessionid = req.getSession().getId();
 resp.setHeader("SET-COOKIE", "JSESSIONID=" + sessionid + ";Path="+req.getContextPath()+"; Secure; Domain="+req.getServerName()+"; HttpOnly");

2番目のリクエストでは、セッションのセッション検証オブジェクトを取得できないため、セッションの期限切れページが表示されます

そして私はフィルターで試しました

public void doFilter(final ServletRequest req, final ServletResponse res, final FilterChain filterChain) throws IOException, ServletException {

                final HttpServletResponse response = (HttpServletResponse) res;

                final HttpServletRequest request = (HttpServletRequest) req;
                    System.out.println(response.containsHeader("SET-COOKIE"));
                if (response.containsHeader("Set-Cookie")) {  // *******

                    response.setHeader("SET-COOKIE", "JSESSIONID=" + request.getSession().getId() + "; Path=" + request.getContextPath()

                            + "; HttpOnly" + (request.isSecure()?SECURE_FLAG : ""));

                }

                filterChain.doFilter(req, res);

        }

上記のフィルターを使用する場合、 response.containsHeader("SET-COOKIE") または response.containsHeader("Set-Cookie") は常に false を返します

安全でhttponlyとしてjboss 4.0 Jsessionidフラグを設定するための解決策を教えてください

4

2 に答える 2