应该在哪里放置JSF 2.2资源:WEB-INF或root

时间:2013-12-13 02:07:46

标签: java jsf jsf-2.2

在JSF 2.2之前,javascript,css和复合组件等资源将放置在/resources文件夹中的Web存档的根目录中。 WEB-INF中的安全约束将伴随此设置阻止直接访问:

<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 />
</security-constraint> 

但是,在JSF 2.2中,您只需将resources文件夹放在WEB-INF:/WEB-INF/resources中即可。这为资源提供了直接访问的隐式保护。

根据{{​​3}}

WEB-INFTomcat documentation将其描述为存储配置文件的文件夹。将{1}}中的非配置资源放入WEB-INF只是为了获得对WEB-INF目录的保护似乎是一种破解。

两种存储资源的方法效果是否相同?这两种方法都有任何具体的缺点吗?

1 个答案:

答案 0 :(得分:0)

您可以安全地将资源放在WEB-INF下,这样可以避免忘记保护它免受直接访问的错误,仅此而已!如果你想保持根保护,效果会是一样的。