ログインしているユーザーによってページリクエストをリダイレクトする方法
質問
Seam 3 と JBoss 7 を使用してサイトを開発しています。Seam セキュリティと JSF を使用しています。サイトのフロントページにはログイン コントロールがあります。ユーザーが資格情報を入力すると、ユーザー ページ「/MySC」にリダイレクトされます。
ただし、ログインしたユーザーがドメイン ルート「/」を入力するだけで、フロント ページが表示されます。私が望むのは、ユーザーがログインしているときにフロントページに再度アクセスできないようにすることです。彼がフロント ページに移動するか、ロケーション バーにドメイン ルートを入力することを要求した場合、「/MySC」にリダイレクトされるようにしたいと考えています。どうやってやるの?
解決
非常に強力な SEAM ナビゲーション ルールを使用できます。page.xml で宣言します...そこで条件付きナビゲーション ルールを宣言できます。
<page view id="/view.xhtml">
<navigation from-action="#{user.login}">
<rule if-outcome="successfull"><redirect view-id="/MySC.xhtml"/>
<message severity="Info">
Your login is successfull!.
</message>
</navigation>
</page>
他のヒント
ページ構造を小さな再設計することをお勧めします:フロントページを作成します /start
認証されたユーザーが表示され、にリダイレクトできるページ /login
ユーザーがまだ認証されていない場合。
この設計は、懸念の分離の観点からクリーンであるだけでなく(異なるフォルダー内の認証ロジックをバンドルすることができます)、コンテキストルートと認証ページを混合する問題も解決します。
所属していません StackOverflow