2012-02-27 18 views
2

私は、Google App EngineプラグインとGuiceでEclipse IDEを使用しています。 Devのサーバー上で実行されている、私はweb.xmlでこれらの両方を試したし、GuiceのMyServletModule extends ServletModule奇妙なJavaサーブレットフィルタマッピング動作

<url-pattern>/user/*</url-pattern> 

filter("/user/*").through(LoginFilter.class); 

http://www.domain.com/user/ 

のために働くように見えるが、両方の..どちらもうまくいかない:

http://www.domain.com/user/myaccount.html 

理由は何ですか?ドキュメントによれば、/user/*はどちらの場合でも正しく動作するはずです。

...それは私が"*.html"でフィルタリングするように見えないので、それはファイルitaselfと関係があると思われます。

編集解決済みです。ため息をつく...私はGAE/Jのドキュメントで、このちらほら見つかりました: "Note: Filters are not invoked on static assets, even if the path matches a filter-mapping pattern. Static files are served directly to the browser."

答えて

2

私はGAE/Jのドキュメントで、このちらほらが見つかりました:すべてのJavaサーブレットのドキュメントは、あなたが行うことができると言うにもかかわらず

Note: Filters are not invoked on static assets, even if the path matches a filter-mapping pattern. Static files are served directly to the browser. 

それはGAE/Jではできません。

1

私は、このパターンが機能することがわかった:

<security-constraint> 
    <web-resource-collection> 
     <url-pattern>/myFile.html</url-pattern> 
    </web-resource-collection> 
    <auth-constraint> 
     <role-name>*</role-name> 
    </auth-constraint> 
</security-constraint> 

..あなたはおそらく、ファイルを指定する場合には、それがフィルタリングされますので!

+0

ありがとうございました。はい、それらのネイティブのGAEの制約はうまくいきますが、私は制約が私に与えなかったフィルタに保存されたセッションデータのカスタムチェックを追加する必要がありました。私は静的な* .htmlを* .jspに変えてしまいました。 – DougA