JBoss 6.1で実行されるJSF(2.0)ベースのWebアプリケーションがあります。JAASではFORMベースの認証を使用しています。
この「admin/editUser.jsf」のようなリンクをブックマークに追加しているユーザーもいます。ユーザーが(アプリケーション内のナビゲーションを使用せずに)このページに直接アクセスすると、このページは正しく機能しません。
問題は、ログイン後に、要求されたURLとは関係なく、ユーザーをindex.jsfページにリダイレクトする方法はありますか?
それは可能ではありません。
サーブレット3.0(Tomcat 7 / Glassfish 3 / JBoss 6など)を使用している場合、最善の策HttpServletRequest#login()
は、JAASフォームの代わりにプログラムによるログインを使用することです。
だから、代わりに
<form action="j_security_check" method="post">
...
<input type="submit" />
</form>
使用する
<h:form>
...
<h:commandButton value="Login" action="#{bean.login}" />
</h:form>
と
public String login() {
// ...
request.login(username, password);
// ...
return "index.jsf?faces-redirect=true";
}
ログインフォームを送信した後にユーザーをリダイレクトするナビゲーションルールを使用できます。この例を次に示し ます。http ://www.mkyong.com/jsf2/jsf-form-action-navigation-rule-example/