前提・実現したいこと
Wicket初心者です。
Wicket1.5 で実現する必要があります。
ログアウトを実行すると(ログアウトボタン押下のアクションとして)ログイン画面に遷移させたいです。
ブックマーク可能ページなら(mountPage("¥manu", Menu.class); などと設定してあれば)、実現可能ですが、そうでないページ(一時的なURLを持つページ、編集画面など)で、ログアウトすると、PageExpiredError で、ログイン画面に遷移しません。
以下を設定しているので、インスタント消失エラーと判断され、PageExpiredErrorPageのページに飛んでしまいます。
getApplicationSettings().setPageExpiredErrorPage(PageExpiredErrorPage.class);
発生している問題・エラーメッセージ
ブックマーク可能ページでないページで、ログアウトを実行。ログインページに遷移せずに、エラーページに遷移してしまいます。
エラーページは、PageExpiredErrorPage.java で定義しています。
エラーが発生しました。(PageExpiredError)
該当のソースコード
ーーー // ログアウトボタン押下時の処理 @Override public void onClick() { // セッションクリア session.invalidate(); } ーーー // WebApplicationの設定 public class WebApplication extends AuthenticatedWebApplication { @Override protected void init() { … getApplicationSettings().setPageExpiredErrorPage(FcPageExpiredErrorPage.class); … } } ーーー // PageExpiredErrorPage.java public class PageExpiredErrorPage extends WebPage { public PageExpiredErrorPage() { WebResponse res = (WebResponse) getResponse(); res.setStatus(404); } } ーーー // (参考) private void submitNow() { setResponsePage(new XXXPage()); // XXXPageでログアウトすると、エラー画面に遷移 // setResponsePage(YYYPage.class); // YYYPageでログアウトすると、ログイン画面に遷移 }
試したこと
session.invalidate();だけでは、不十分なのでしょうか。
例えば、クッキーのクリアなど。
補足情報(FW/ツールのバージョンなど)
Wicket1.5 を利用しています。
あなたの回答
tips
プレビュー