我需要知道当用户尝试访问资源文件夹而不是文件本身(例如通过在webshere 8.5上键入http://domain/appname/resources/js
)时,如何禁用从浏览器检索js / css文件列表的能力。
根据IBM Knowledge Center文档Web Container,directoryBrowsingEnabled
的默认值为false
,这表明我无需在<enable-directory-browsing value="false"/>
上定义:ibm-web-ext.xml
第一名。
在我的案例中,WebSphere使用content:
生成ibm-web-ext.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-ext xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://websphere.ibm.com/xml/ns/javaee"
xsi:schemaLocation="http://websphere.ibm.com/xml/ns/javaee http://websphere.ibm.com/xml/ns/javaee/ibm-web-ext_1_0.xsd" version="1.0">
<jsp-attribute name="reloadEnabled" value="true"/>
<jsp-attribute name="reloadInterval" value="5"/>
</web-ext>
如果我修改并用内容替换ibm-web-ext.xml
:
<?xml version="1.0" encoding="UTF-8"?>
<web-ext xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://websphere.ibm.com/xml/ns/javaee"
xsi:schemaLocation="http://websphere.ibm.com/xml/ns/javaee http://websphere.ibm.com/xml/ns/javaee/ibm-web-ext_1_0.xsd" version="1.0">
<jsp-attribute name="reloadEnabled" value="true"/>
<jsp-attribute name="reloadInterval" value="5"/>
<enable-directory-browsing value="false"/>
</web-ext>
应用程序重启后似乎没有任何改变。
为什么即使directoryBrowsingEnabled
标志设置为false
,也可以从浏览器访问CSS / JS资源文件列表?仅仅directoryBrowsingEnabled
似乎还不够。我错过了什么?
答案 0 :(得分:0)
如果要在Web应用程序级别禁用静态文件浏览,请设置&#34; fileServingEnabled&#34;属性为FALSE以及ibm-web-ext.xml文件。
fileServingEnabled="false"
如果要全局禁用它(应用程序服务器中的所有应用程序),请使用com.ibm.ws.webcontainer.disallowAllFileServing
自定义属性
答案 1 :(得分:0)
简短回答:默认情况下,WAS的目录浏览已被禁用。
请注意,当用户可以通过向上/向下单击文件夹来浏览目录时,“目录浏览”意味着是FTP样式目录浏览。
我的案例浏览器通过在用户点击http://domain/appname/resources/js
时将文件夹下载为纯文本文件来响应200个代码。所以以前没有提到“FTP”风格的浏览案例。
除了其他静态资源配置外,还有spring mvc资源标记。
<mvc:resources mapping="/**" location="/resources/" />
我认为单独使用标签不是导致此问题的原因。但是,通过删除它的资源目录URL不再导致200状态代码。
答案 2 :(得分:0)
顺便删除
应用程序也无法检索某些资源进行显示。