私は試した
< 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フラグを設定するための解決策を教えてください