jdbcRealm で保護されたフォルダー secureuser および secureadmin を使用した Web アプリ プロジェクト (NetBeans 7.1.2+GlassFish 3.1.2) があります。jdbc セキュリティは通常のフォーム ログインであり、セキュリティ制約が追加されています。Glassfish デプロイメント記述子、および web.xml が通常どおり定義されています。サーブレットの設定はデフォルトの「/faces/*」です。
「localhost8080/app/faces/secureduser/」の形式の URL にアクセスしようとすると、セキュリティは期待どおりに機能します。ただし、代わりに「localhost8080/app/faces/faces/secureduser/」を使用すると、セキュリティがバイパスされます。他の保護されたフォルダーについても同じことが言えます。
セキュリティ制約で定義された URL パターンに「/faces」を追加すると、[定義されたパターンが「/faces/secureduser」の場合、「/faces/faces/secureduser」が追加される] と、常にセキュリティが上書きされるように見えます。
ログイン フォームが JSF であるか、最初のページの設計要件が少なくともセキュリティの範囲外であるため、"app/faces/" フォームのコンテキストでフィルターを使用することはできません。
ユーザーが追加のプレフィックス「/faces」を入力しても、セキュリティを維持するにはどうすればよいですか?