首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >安全约束和欢迎文件

安全约束和欢迎文件
EN

Stack Overflow用户
提问于 2011-02-25 07:56:11
回答 2查看 4K关注 0票数 4

在我的web.xml中,我使用了类似这样的东西:

代码语言:javascript
复制
<security-constraint>
  <web-resource-collection>
    <web-resource-name>Block all</web-resource-name>
    <url-pattern>/*</url-pattern>
  </web-resource-collection>
  <auth-constraint />
</security-constraint>

<security-constraint>
  <web-resource-collection>
    <web-resource-name>Allow facelets</web-resource-name>
    <url-pattern>/faces/*</url-pattern>
    <http-method>POST</http-method>
    <http-method>GET</http-method>
  </web-resource-collection>
  <auth-constraint>
    <role-name>*</role-name>
  </auth-constraint>
</security-constraint>

除了那些以/faces/开头的请求之外,所有传入的请求都会被阻塞。我这样做是因为,否则,未经授权的用户可能会访问facelets源文件。

它工作得很好,但它不显示欢迎文件,因为甚至根路径都被阻止。我试图将<url-pattern>/</url-pattern>添加到第二个安全约束中,但没有结果。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-03-05 10:19:06

如果可以,请将FacesServlet映射到后缀模式上。当您还在使用JSF1.x时,将其映射到*.jsf上。然后,您就可以使用该安全约束来阻止对*.xhtml的访问。当您已经使用JSF2.0(您的问题历史记录证实了这一点)时,只需将其映射到*.xhtml即可。与在JSF1.x中相反,FacesServlet不会在无限循环中运行。通过这种方式,您根本不需要任何安全约束。惟一的缺点是,如果不涉及FacesServlet,您将无法提供“普通”的XHTML文件。但是这样做没有任何意义,这样的文件无论如何都必须作为*.html提供。

PS:感谢您提供了/faces/*前缀模式糟糕的另一个原因;)

票数 1
EN

Stack Overflow用户

发布于 2012-05-22 22:51:34

它工作得很好,但它不显示欢迎文件,因为甚至根路径都被阻止了。我尝试添加/添加到第二个安全约束,但没有结果。

在这种情况下,它应该是有效的。我在我的机器上测试过了,第一次就不工作了。直到,我们重新启动应用程序服务器。那么它的行为就像预期的那样。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5112062

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档