通过将它们放置内部/ WEB-INF防止复合部件的直接访问(Prevent direct acces

2019-07-05 04:24发布

我想在我的web应用程序定义一些复合材料部件。 根据我读的教程,我要的XHTML文件放在位于web内容的资源文件夹内。 该解决方案是有问题的,因为它将使可从网址公共访问这些文件。 有没有办法把这个组件的WEB-INF文件夹中,并为那里的文件JSF的外观的方法吗? 如果没有,是否有另一种方式来避免直接访问?

谢谢。

PS:我看着这个答案 ,如果我理解正确的BalusC的回答,我打算做的是可能的。

Answer 1:

“复合材料部件”是不完全一样的问题是“成分” /回答您找到。 的OP显然谈论的组合物如在<ui:include>其包括文件<ui:componsition>内容。

您可以有效地要防止直接访问/resources 。 这可以通过添加以下安全约束项来实现web.xml

<security-constraint>
    <display-name>Restrict direct access to JSF resources</display-name>
    <web-resource-collection>
        <web-resource-name>JSF resources</web-resource-name>
        <url-pattern>/resources/*</url-pattern>
    </web-resource-collection>
    <auth-constraint /><!-- Empty auth constraint! -->
</security-constraint> 

按照即将到来的JSF 2.2,因为它可以让你移动整个这不会是必要再/resources文件夹复制到/WEB-INF在以下配置条目web.xml

<context-param>
    <param-name>javax.faces.WEBAPP_RESOURCES_DIRECTORY</param-name>
    <param-value>WEB-INF/resources</param-value> 
</context-param>


文章来源: Prevent direct access to composite components by placing them inside /WEB-INF