首先是背景——
我在 Tomcat 中有一个正在运行的 JSF 1.1.14 Web 项目。
Tomcat 在 HTTPS 上托管相同(SSL 已配置并运行良好)
为了实现上面的 2.,我们在 web-app 的 web.xml 中有以下配置 -
<!-- ======= TRANSPORT GUARANTEE CONSTRAINT Starts ======= -->
<security-constraint>
<web-resource-collection>
<web-resource-name>URL reserved for Acquisition application</web-resource-name>
<url-pattern>/*</url-pattern>
<http-method>POST</http-method>
<http-method>GET</http-method>
</web-resource-collection>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
<!-- ======= TRANSPORT GUARANTEE CONSTRAINT Ends ======== -->
以上,我相信是 Tomcat 的行业标准方法。
问题是我们需要通过网络应用禁用 *.xhtml 访问,并继续对整个网络应用使用 HTTPS。
在理想的环境中,这很容易使用下面的代码片段来实现……再次在 web.xml 文件中 -
<!-- ======= Direct .xhtml access constraint - Starts ======= -->
<security-constraint>
<display-name>Restrict direct access to XHTML files</display-name>
<web-resource-collection>
<web-resource-name>XHTML files</web-resource-name>
<url-pattern>*.xhtml</url-pattern>
</web-resource-collection>
<auth-constraint />
</security-constraint>
<!-- ======= Direct .xhtml access constraint - Ends ======= -->
问题是,即使在使用上述内容后,我也能够使用 web-app URL 查看 *.xhtml 文件的来源。
当 HTTPS 安全约束被移除时,情况就完美了。我的直觉是 HTTPS 安全约束压倒了文件访问约束。
我已经搜索了高低,但还没有找到任何与这两者一起工作的东西。
请帮助找到可以在 HTTPS Web 应用程序上禁用文件访问的方法。
谢谢。
丘拉纳