gpt4 book ai didi

security - 通过将复合组件放置在/WEB-INF 中来防止直接访问复合组件

转载 作者:行者123 更新时间:2023-12-02 20:14:26 25 4
gpt4 key购买 nike

我正在尝试在我的 Web 应用程序中定义一些复合组件。根据我阅读的教程,我必须将 xhtml 文件放置在位于 webcontent 的资源文件夹中。这个解决方案是有问题的,因为它会使这些文件可供公众通过 URL 访问。有没有办法将此组件放入 web-inf 文件夹中,并使 jsf 查找那里的文件?如果没有,是否有其他方法可以避免直接访问?

谢谢。

PS:我已经调查过this answer ,如果我正确理解了 BalusC 的答案,我打算做的事情是可能的。

最佳答案

“复合组件”与您找到的问题/答案中的“组合”并不完全相同。 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>

关于security - 通过将复合组件放置在/WEB-INF 中来防止直接访问复合组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13861612/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com