質問

特定のページがログイン保護されている Web アプリケーションを作成しています。このために、glassfish で JDBC セキュリティ レルムを作成し、フォーム認証を使用しました (メソッドと同様) ここで説明されています)

ナビゲーション ルールを使用して、ユーザーを Web サイトの安全な領域にリダイレクトしています。

<navigation-case>
        <from-outcome>showResults</from-outcome>
        <to-view-id>/SecureUser/Reservation/New/AvailableResults.xhtml</to-view-id>
        <redirect/>
</navigation-case>
(etc...)

これはうまくいきます。ただし、ナビゲーションの場合にリダイレクト タグをスキップすると、ページの URL は変更されません。その場合、認証されていないユーザーは保護されたページにアクセスできます。

これについて最善の方法は何でしょうか?ページが転送されるのではなくリダイレ​​クトされるようにするだけで十分でしょうか?ユーザーがログインしているかどうかを確認するコードを、セキュリティで保護されたすべてのページに記述する必要がありますか?

役に立ちましたか?

解決

ページ間のナビゲーションに POST を使用することは悪い習慣であると考えられています。JSFを使用しないでください h:commandLink または h:commandButton 簡単なページ間のナビゲーション用。どちらも、単純なナビゲーションにはまったく不要で SEO に優しくない POST フォームを生成します。むしろ使ってください h:link または h:button その代わり。これは、プレーンなバニラの GET リンクと GET フォームをそれぞれレンダリングします。

とにかく POST フォームを送信していて、結果ページがフォーム ページと異なる場合は、次を使用します。 PRG (ポストリダイレクト取得) パターン は良い習慣であると考えられています。使用できます <redirect/> このために。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top