【发布时间】:2011-04-18 20:41:20
【问题描述】:
我有一个 Spring 应用程序,我想知道提供静态内容的最佳方式。我尝试了以下方法:
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>/static/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>app</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
这是可行的,但 DefaultServlet 的行为意味着任何形式为 /static/PATH 的请求都会为来自 webapp/PATH 的文件提供服务。这暴露了一个巨大的漏洞,允许使用 URL 显示敏感信息,例如:http://localhost/app/static/META-INF/context.xml
常见的解决方案是什么?我应该移动敏感文件吗?编写我自己的 DefaultServlet?还是有更好的方式来提供静态内容?
【问题讨论】:
-
你的
context没有问题吗,比如docBase?
标签: java spring tomcat servlets