問題及原因分析:
之前修復漏洞時,寫了個過濾器配置在web.xml中,但是部署到服務器並重啟后,重新掃描漏洞,還是沒有解決對應問題。在確定了這種修復方案是切實可行之后分析,可能是配置的web.xml未生效,搜索網上對應問題及檢查部署過程發現,部署完后應用目錄WEB-INF下會新增很多文件,其中有個web_merged.xml文件(如下圖)。
該文件包含了web.xml文件中的內容,不過是舊的配置文件的配置內容,可以理解為是web.xml文件的緩存文件,且大部分時候,即使重新部署了web.xml文件后,項目實際使用的還是這個web_merged.xml文件的配置內容。
解決方案:
找到了問題的原因之后一切就好辦了,下面就是解決方案:
- 方案一
- 更新
web.xml
的同時,把改動也更新到web_merged.xml
- 把更新完的兩個文件,復制到配置緩存目錄下(
config\cells\<cell_name>\applications\<ear_name>\deployments\<app_name>\<war_name>\WEB-INF
)。 - 最后,你需要重啟一下WAS服務。
- 更新
- 方案二
使用WAS的web控制台進行更新web.xml文件(登陸控制台,選擇程序后點擊“更新”,選擇“替換或添加單個文件 ”,然后參考下圖)。
WAS會自動把更改同步到web_merged.xml以及緩存目錄下。(相當於WAS幫你進行了方法一的操作)
使用這個方法,你甚至都不需要重啟WAS,也不需要重啟應用。
最后,在解決了該文件的緩存問題使用了最新的web.xml配置之后,漏洞問題也徹底解決了。