我正在使用带有Google App Engine插件的Eclipse IDE和Guice。在Dev Server上运行,我在web.xml
和guice MyServletModule extends ServletModule
中尝试了这两个:
<url-pattern>/user/*</url-pattern>
和
filter("/user/*").through(LoginFilter.class);
两者似乎都适用于
http://www.domain.com/user/
但......似乎都不适合:
http://www.domain.com/user/myaccount.html
知道为什么吗?根据文档,/user/*
应该适用于两者,对吗?
...我怀疑它与文件itaself有关,因为我似乎无法过滤"*.html"
。
编辑:已解决。叹息......我在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."
答案 0 :(得分:2)
我在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.
即使所有Java Servlet文档都说你可以做到,但你不能在GAE / J中这样做。
答案 1 :(得分: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>
..所以,如果你指定一个文件,它可能会被过滤掉!