Jakarta ee 隐藏.xhtml源代码-facelets/icefaces?

Jakarta ee 隐藏.xhtml源代码-facelets/icefaces?,jakarta-ee,facelets,icefaces,Jakarta Ee,Facelets,Icefaces,我对Icefaces和Facelets都不熟悉,但我正在一个新项目中使用它们。我已经把所有的东西都配置好了,工作得很好。但是,当我访问mywebapp/file.xhtml时,整个facelets模板源都会出现在我的浏览器中。如何隐藏此项以防止用户查看我的服务器端模板?在web.xml中应该有一个条目,用于配置xhtml模板的行为(显示/隐藏..) 如果将.jsp文件移动到WEB-INF文件夹(必须为JSF重新配置jsp路径),则无法通过URL访问它们。我认识的每个J2EE服务器/网络容器都是这

我对Icefaces和Facelets都不熟悉,但我正在一个新项目中使用它们。我已经把所有的东西都配置好了,工作得很好。但是,当我访问mywebapp/file.xhtml时,整个facelets模板源都会出现在我的浏览器中。如何隐藏此项以防止用户查看我的服务器端模板?

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

如果将.jsp文件移动到WEB-INF文件夹(必须为JSF重新配置jsp路径),则无法通过URL访问它们。我认识的每个J2EE服务器/网络容器都是这样工作的

另一种方法是自行编写servlet过滤器等


但是,为什么要隐藏模板

将所有模板放入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>

限制XHTML文档
XHTML
*.xhtml
仅允许开发人员访问XHTML页面
某人

我很惊讶默认情况下没有隐藏模板。模板暴露应用程序的内部结构,泄漏它们可能会带来安全隐患。与其问为什么要隐藏模板,不如问为什么要暴露它们?为什么我们要向世界展示我们网站的模板布局?