【问题标题】:Hide .xhtml source - facelets/icefaces?隐藏 .xhtml 源代码 - facelets/icefaces?
【发布时间】:2009-03-19 15:54:04
【问题描述】:

我是 Icefaces 和 Facelets 的新手,但我正在一个新项目中使用它们。我已经配置好了一切工作正常。但是,当我访问 mywebapp/file.xhtml 时,整个 facelets 模板源会出现在我的浏览器中。我该如何隐藏它以防止用户查看我的服务器端模板?

【问题讨论】:

    标签: jakarta-ee facelets icefaces


    【解决方案1】:

    将所有模板放入WEB-INF/someDirectory/templates。

    然后根据 facelets 文档将它放在你的 web.xml 中,用于所有其他 xhtml 文件:

    <security-constraint>
        <display-name>Restrict XHTML Documents</display-name>
        <web-resource-collection>
            <web-resource-name>XHTML</web-resource-name>
            <url-pattern>*.xhtml</url-pattern>
        </web-resource-collection>
        <auth-constraint>
            <description>Only Let 'developer's access XHTML pages</description>
            <role-name>someone</role-name>
        </auth-constraint>
    </security-constraint>
    

    【讨论】:

      【解决方案2】:

      在 web.xml 中应该有一个条目,可以让您配置 xhtml 模板的行为(显示/隐藏..)

      如果您将.jsp 文件移动到WEB-INF 文件夹(您必须为JSF 重新配置jsp 路径),您将无法通过URL 访问它们。我认识的每一个 J2EE-Server/Webcontainer 都是这样操作的。

      另一种方法是自己编写的 servlet 过滤器等。

      但是,您为什么要隐藏您的模板?

      【讨论】:

      • 我很惊讶模板默认没有隐藏。模板会暴露应用程序的内部结构,泄露它们可能会带来安全隐患。
      • 我不问为什么要隐藏模板,而是问为什么要公开它们?为什么要向全世界展示我们网站的模板布局?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-10-30
      • 2016-11-20
      • 2016-11-14
      • 1970-01-01
      • 2010-10-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多