5

我正在从 Web 应用程序外部的文件夹中提供图像。我将图像存储在 C:\source\Pictures 中。我在 spring 的 servlet 上下文文件中将此资源配置为静态资源:

<resources location="file:///C:/source/Pictures/" mapping="/img_resources/**"/>

我使用显示存储在该文件夹中的图像

<img src="<spring:url value='/img_resources/guinnes_choc_cake.jpg/'/>"></img>

它对我很有效。但是,我有安全方面的顾虑。我不想向公众公开我的服务器中的目录。1

有没有办法在 Spring 中围绕这个文件夹建立安全性?

4

2 回答 2

7

如果您使用的是 Spring Security,您可以在 Spring 上下文文件中添加类似这样的内容:

<sec:intercept-url pattern="/img_resources/**" access="isAuthenticated()" />
于 2012-12-25T00:16:12.713 回答
1

没有特别的理由限制对静态资源的访问。

鉴于目录结构定义明确并且文件排序是语义化的(即img_resources文件夹将仅包含图像),您应该允许访问此类资源,甚至完全绕过过滤器以避免通过过滤器链的开销,例如:

<sec:intercept-url pattern="/img_resources" filters="none" />

来自Spring Security 教程

我们完全不希望 Spring Security 的过滤器处理静态资源。为此,您可以添加 <http>仅适用于特定模式的附加块。这必须在现有块之前,因为它适用于特定模式。如果未提供模式属性,则该块适用于任何请求。

于 2012-12-26T21:18:04.950 回答