私のweb.xmlを無視します。面白いことに私はこの作業をしていましたが、私はいくつかのばかげた変更を行いましたが、今はアクセスしていますlocalhost:8080
私は常にログインしていなくてもsecure.xhtmlを参照します。localhost:8080/secured/secure.xhtml
はうまくリダイレクトします。ウェルカムファイルは、セキュリティ制約に
2
A
答えて
7
あなたは<welcome-file>
を完全に使用していません。要求されたフォルダ(ルート/
、または/public/
または/secured/
など)にかかわらず、フォルダが要求されたときにいつでも提供する必要があるファイルの唯一のファイル名を表す必要があります。
ウェルカムファイルは、RequestDispatcher#forward()
によって実行される内部転送によって処理されます。内部転送はではなく、はセキュリティ制約を引き起こします。代わりにリダイレクトを送信する必要があります。
<welcome-file>
をより初期設定に変更します。 index.xhtml
。
<welcome-file-list>
<welcome-file>index.xhtml</welcome-file>
</welcome-file-list>
/index.xhtml
のようにwebappのルートに1つ作成します。
が
/index.xhtml
のURLパターンにFilter
地図やdoFilter()
メソッド内response.sendRedirect("secured/secure.xhtml")
を呼び出す:あなたは/secured/secure.xhtml
に/index.xhtml
上すべての要求をリダイレクトする必要がある場合は、基本的には2つの方法があります。例えば。@WebFilter("/index.xhtml") public class IndexFilter implements Filter { @Override public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException { HttpServletResponse response = (HttpServletResponse) res; response.sendRedirect("secured/secure.xhtml")); } // ... }
- は、順番に
externalContext.redirect("secured/secure.xhtml")
ないバッキングBeanメソッドを呼び出し/index.xhtml
で<f:event type="preRenderView">
を入れてください。例えば。@ManagedBean @ApplicationScoped public class IndexBean { public void redirect() throws IOException { FacesContext.getCurrentInstance().getExternalContext().redirect("secured/secure.xhtml"); } }
関連する問題
- 1. セキュリティ制約、ウェルカム・ファイル
- 2. 逆セキュリティ制約を設定する
- 3. セキュリティ制約を伴うリクエストのフィルタリング
- 4. web.xmlファイルにセキュリティ制約を追加する方法は?
- 5. Tomcatのセキュリティ制約の設定は必須ですか?
- 6. GWT 2.1のRequestFactoryを使用してセキュリティ制約を処理するには?
- 7. ロールメンバーシップのない認証されたユーザーのweb.xmlのセキュリティ制約
- 8. Java web.xmlの動的セキュリティ制約の設定
- 9. Tomcat 7 - 複数のセキュリティ制約が機能しない
- 10. Haskellの制約は
- 11. タイプパラメータ制約はクラス
- 12. FK制約は、MySQL
- 13. 制約
- 14. 制約
- 15. 制約
- 16. 制約
- 17. 制約
- 18. UNIQUE制約にHibernate
- 19. データベース設計/モデリングの質問 - 制約または制約なし?
- 20. intカラムスローに対するGrails制約制約java.lang.IllegalArgumentException
- 21. FactoryGirl - ユニーク制約
- 22. ElasticSearch ID制約
- 23. MVCルーティング制約
- 24. パラメータの制約
- 25. Derby - 制約
- 26. Oracleの制約
- 27. 制約のチェック
- 28. PIP制約ファイル
- 29. SQL Server - 制約
- 30. チェック制約
と
ありがとううわー!しかし、ユーザーがログインしているかどうかをチェックするのはどうですか?私は同じフィルターでこれを行う必要がありますか?これを容器から取り除いても大丈夫ですか? –
''はすでにそうしています。あなたはそれを自分で行う必要はありません。唯一のポイントは、転送の代わりにリダイレクトを実行する必要があることです。リダイレクトによって新しい要求が作成され、新しいURLでセキュリティ制約が再度トリガーされます。フォワードの場合、セキュリティ制約は、設定なしで公開されていてアクセス可能な '/'の初期URLに基づいてテストされているため、遅すぎます。 –
BalusC
フィルターに問題があります。 'security-constraint'フィルタが呼び出されていない場合は継ぎ目があります。もし' constraint'がコメントアウトされていれば動作します。おそらく、それらが/ secure/*ページ上で重複しているからでしょうか?サーバー - グラスフィッシュ3.1。時間があるなら、私を助けてください。 –