安全约束和欢迎文件

标签 security jsf jakarta-ee facelets web.xml

在我的 web.xml 我使用这样的东西:

<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>到第二个安全约束,但没有。

最佳答案

如果可以,请映射 FacesServlet在后缀模式上。如果您仍在使用 JSF 1.x,请将其映射到 *.jsf .然后你可以阻止访问 *.xhtml具有该安全约束。如果您已经使用 JSF 2.0(您的问题历史证实了这一点),只需将其映射到 *.xhtml .与 JSF 1.x 中的相反,FacesServlet不会在无限循环中运行。这样你根本不需要任何安全约束。唯一的缺点是您将无法在不涉及 FacesServlet 的情况下提供“普通的”XHTML 文件。 .但无论如何这样做没有任何意义,这样的文件必须作为 *.html 提供。反正。

PS:谢谢你提供/faces/*的另一个原因前缀模式很烂;)

关于安全约束和欢迎文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5112062/

相关文章:

security - Cloud Firestore 安全规则使用的语言名称是什么?

security - 文件 URI 链接到 IE7 中的本地文件夹不起作用

java - 使用充气城堡使用中间证书正确创建新证书

css - JSF/PrimeFaces 标签如何解析为默认 CSS 样式?

jsf - 如何让 JSF 使用 Apache Commons FileUpload 上传文件

java - 防止调试器看到变量值

java - 什么 Web UI 框架最适合构建动态页面/表单?

java - Eclipse for Java (EE) Developers 和 Eclipse Classic 有什么区别?

java - 根据分配的角色选择的欢迎文件(Java 网络应用程序)?

java - WebServiceContext 保持为空