4

JSF アプリケーションのセキュリティを処理する Java Web フィルタを作成しました。私はこのようなフィルタのマッピングを持っています:

<filter-mapping>
    <filter-name>authFilter</filter-name>
    <url-pattern>/secure/*</url-pattern>
    <url-pattern>/login.jsf</url-pattern>
    <url-pattern>/*.js.jsf</url-pattern>    <--- invalid pattern
</filter-mapping>

そして今、すべての JavaScript ファイルをフィルタリングするための URL パターンを作成したいと考えています。私は Primefaces を使用しているため、.js ファイルは次のような URL で取得されます。

http://localhost:8080/MyProject/javax.faces.resource/MyJavascriptFile.js.jsf?ln=MyLibrary

javax.faces.resoucesCSSファイルも保持しているため、全体をフィルタリングできません。JavaScript のみに一致する URL パターンを作成する方法はありますか?

4

2 に答える 2

3
<url-pattern>/*.js.jsf</url-pattern>    <--- invalid pattern

これは確かに無効な URL パターンです。ワイルドカード*は、URL パターンの最初または最後にのみ使用できます。/特定のケースでは、プレフィックスはまったく必要ありません。

<url-pattern>*.js.jsf</url-pattern>    <--- valid pattern

この問題はJSF とは何の関係もないことに注意してください。サーブレット フィルタは、基本的なサーブレット API の一部です。

以下も参照してください。

于 2012-12-05T18:00:53.300 に答える
1

* ワイルドカード機能は、JSF では制限されています。これは、* は 1 つしか許可されておらず、「form-view-id」文字列の末尾にある必要があるためです。たとえば、(任意のxml)動作します。

<from-view-id>/customer/*</from-view-id>

決して一致しません…</p>

<from-view-id>/cus*mer/</from-view-id>
<from-view-id>/c*sto*er/*</from-view-id>
<from-view-id>*/customer</from-view-id>

このページをチェックしてください

于 2012-08-29T07:49:05.553 に答える