要件は、JSESSIONID がログインの前後で異なる必要があることです。
フローは login.jsp -> loginwebaction -> loginsuccess.jsp -> filter -> otheraction です
私のコードは
- ログインに成功した後 (loginwebaction で)、
- すべての属性をセッションからマップにコピーし、
- セッションを無効にし、
- セッションを再作成する
HttpSession session = request.getSession(true);
- すべての属性をマップから新しいセッションにコピーし、
ログインに成功すると Jsessionid が変化し、 loginsuccess.jsp が表示されます。しかし、私には問題があります。
この後、他のアクションのリンクをクリックすると、フィルターにヒットします。フィルターでは、ログインしている場合はセッションのユーザー情報を確認する必要があり、ログインしていない場合はエラー ページを表示する必要があります。
HttpSession session = request.getSession();
if(null == session.getAttribute("USER_INFO")){
//redirect to error page
}
問題は次のとおりです。フィルターでアクセスされたセッションが新しく、再作成方法がわかりません。フィルターのコードは
このセッションの変更を修正するためにさらに進む方法はありますか?