[解決済み] サーブレットフィルタに複数のURLパターンを与える
質問
JSFアプリケーションでサーブレットフィルタを使用しています。 アプリケーションに3つのグループのWebページがあり、Servlet FilterでこれらのページのAuthenticationをチェックしたいのですが、可能でしょうか?
私のフォルダ
/Admin/ *.xhtml
/Supervisor/*.xhtml
/Employee/*.xhtml
と書いているところ
web.xml
のように
<filter>
<filter-name>LoginFilter</filter-name>
<filter-class>com.ems.admin.servlet.LoginFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>LoginFilter</filter-name>
<url-pattern>/Employee/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>LoginFilter</filter-name>
<url-pattern>/Admin/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>LoginFilter</filter-name>
<url-pattern>/Supervisor/*</url-pattern>
</filter-mapping>
のようなリクエストもありますが
http://localhost:8080/EMS2/faces/Html/Admin/Upload.xhtml
はFilterに入りません。
この3つのフォルダにセキュリティをかけなければなりません。
この問題を解決するにはどうしたらよいでしょうか。
どのように解決するのですか?
URL パターンが
/
で始まる場合、それはコンテキストのルートからの相対パスです。そのため
/Admin/*
のページのみにマッチします。
http://localhost:8080/EMS2/Admin/*
(にあるページのみにマッチします(仮に
/EMS2
がコンテキストのパスであると仮定して)、実際にはそれらを
http://localhost:8080/EMS2/faces/Html/Admin/*
にあるため、URL パターンは決して一致しません。
URL パターンの前に
/faces/Html
を付ける必要があります。
<url-pattern>/faces/Html/Admin/*</url-pattern>
また、ウェブプロジェクトの構成や設定を変更して
/faces/Html
のパスを削除して、ページを開くことができるようにすることもできます。
http://localhost:8080/EMS2/Admin/Upload.xhtml
.
フィルターマッピングの構文はすべて問題ありません。しかし、複数の URL パターンを指定するためのより簡単な方法は、ただひとつの
<filter-mapping>
と複数の
<url-pattern>
のエントリーがあります。
<filter-mapping>
<filter-name>LoginFilter</filter-name>
<url-pattern>/faces/Html/Employee/*</url-pattern>
<url-pattern>/faces/Html/Admin/*</url-pattern>
<url-pattern>/faces/Html/Supervisor/*</url-pattern>
</filter-mapping>
関連
-
[解決済み] [Solved] java.lang.IllegalStateException: レスポンスがコミットされた後では(forward | sendRedirect | create session)できません。
-
[解決済み] HTTPServletRequest getParameterMap() と getParameterNames の比較
-
[解決済み] HTTPステータス 405 - HTTPメソッドGETは、このURLではサポートされていません [重複].
-
[解決済み】JSF、Servlet、JSPの違いは何ですか?
-
[解決済み】サーブレットベースのアプリケーションで、設定リソースファイルをどこに置き、どのように読み込むか?
-
[解決済み] サーブレットマッピングのurlパターンにおける/と/*の違いについて
-
[解決済み] WARでアノテーションを使用してサーブレットフィルタの実行順序を定義する方法
-
[解決済み] Google Recaptcha v3 のサンプルデモ
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] [Solved] java.lang.IllegalStateException: レスポンスがコミットされた後では(forward | sendRedirect | create session)できません。
-
[解決済み] HTTPServletRequest getParameterMap() と getParameterNames の比較
-
[解決済み] HTTPステータス 405 - HTTPメソッドGETは、このURLではサポートされていません [重複].
-
[解決済み】サーブレットベースのアプリケーションで、設定リソースファイルをどこに置き、どのように読み込むか?
-
[解決済み] サーブレットマッピングのurlパターンにおける/と/*の違いについて
-
[解決済み] WARでアノテーションを使用してサーブレットフィルタの実行順序を定義する方法
-
[解決済み] Google Recaptcha v3 のサンプルデモ