如何在Spring中保护对静态资源的访问

zfr*_*cus 5 spring spring-mvc spring-security

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

<resources location="file:///C:/source/Pictures/" mapping="/img_resources/**"/>
Run Code Online (Sandbox Code Playgroud)

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

<img src="<spring:url value='/img_resources/guinnes_choc_cake.jpg/'/>"></img>
Run Code Online (Sandbox Code Playgroud)

它对我很有用.但是,我有安全问题.我不想将我的服务器中的目录暴露给公众.1

有没有办法在Spring中围绕此文件夹构建安全性?

izi*_*tti 7

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

<sec:intercept-url pattern="/img_resources/**" access="isAuthenticated()" />
Run Code Online (Sandbox Code Playgroud)

  • 实际上isAuthenticated()是可用的表达式之一,显然在你的情况下你必须使用"permitAll".在这里,您可以找到Spring Security支持的所有表达式:[基于表达式的访问控制](http://static.springsource.org/spring-security/site/docs/3.0.x/reference/el-access.html). (2认同)