Struct2.1.*升級到2.5.13文檔

Struct2.1-Struct2.5.10版本存在重要的安全漏洞,因此咱們須要升級到2.5.13版本,html

升級方法以下:java

 

1.須要刪除的jar包web

2.須要增長的jar包apache

 

3.替換structs.xmljson

位置:config/structs.xml安全

修改內容:spa

a.  頭部改成(這個是用來指定文件中容許使用那些標籤orm

b. 關鍵地方 struts2.5 爲了提高安全性,添加了 allomethod 標籤xml

c.因爲新版本的Struts默認不能修改action的訪問後綴,不能使用通配的方式調用action裏的方法,因此添加htm

使得<constant name="struts.action.extension" value="do" />能夠生效

d. 

 注意這裏添加了:strict-method-invocation="false"( action標籤method屬性開啓)

 

4.替換web.xml

位置:WebContent/WEB-INFO/web.xml

修改內容:

<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>修改爲

<filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class>」

 

緣由:新版本的filter包前面沒有ng包

 

 

5.在config目錄下添加log4j2.xml

緣由:

log4j 2.x版本再也不支持像1.x中的.properties後綴的文件配置方式,2.x版本配置文件後綴名只能爲".xml",".json"或者".jsn".因此咱們把以前log4j.properties配置信息遷移到新的log4j2.xml中。

詳細配置文件節點解析說明請參考:https://www.cnblogs.com/hafiz/p/6170702.html

6.在src\ICT\framework\web.struts2包下替換XssInterceptor.java

緣由: 
Apache官方修改了invocation.getInvocationContext().getParameters();接口的實現,原來返回的是一個java.util.Map,如今返回了一個org.apache.struts2.dispatcher.HttpParameters類型的對象

 

 

 

注:頁面提交表單的時候不要用struts自帶的<s:form>和<s:form>的namespace屬性,最好也別用$("#").submit()提交,會出現action不管返回success仍是其它的,頁面就是不不變,也不是404和500,頁面就是不動。解決辦法捨棄用<s:form>,直接用普通的<form></form>表單

相關文章
相關標籤/搜索