2011-01-19 15 views
0

は大きな絵Httpヘッダーで直接作業することによって、Cookie JSESSIONIDをHttpOnlyに更新するにはどうすればよいですか?ここで

である私はJSESSIONIDクッキーに「HttpOnlyの」を追加したいが、私は手でこれをやりたい、という意味:

//create a new cookie 
StringBuilder updatedCookie = new StringBuilder("JSESSIONID").append("=") 
       .append(sessionId).append("; Path=").append("/") 
       .append("; HttpOnly"); 

//save the cookie 
response.setHeader("SET-COOKIE", updatedCookie.toString()); 

これは、サーブレットフィルタで行われます

  1. このフィルタを1回だけ実行させるにはどうすればよいですか?このフィルタは、すべてのサイトにマッピングされています(フィルタは「/ *」というURLパターンを持ちます)。つまり、ログイン時に、または
  2. 本当に各リクエストで実行し、このCookieが既にマークされているかどうかを確認し、答えが「はい」の場合はスキップする必要がありますか?

PS:

  1. 私が行うことができないので、今
  2. が変数セッションID

答えて

1
をStringBuilderのの不適切な使用を無視し、不足していること3.0をサーブレットにアップグレードすることを教えないでください。

このフィルタを1回だけ実行させるにはどうすればよいですか?すなわち、ログイン時

不可能です。すでにセッションが作成されている可能性があります。

理論上、あなたの最善の場所はHttpSessionListener#sessionCreated()ですが、これはHttpServletResponseオブジェクトを何らかの形で提供していないため、紛失しています。

各リクエストで実行して、このCookieが既にマークされているかどうかを確認し、答えが「はい」の場合はスキップする必要がありますか?

はい。しかし、これは特に安くすべきである。

関連する問題