您好,登錄后才能下訂單哦!
本文小編為大家詳細介紹“struts2攔截器修改request的parameters參數失敗怎么解決”,內容詳細,步驟清晰,細節處理妥當,希望這篇“struts2攔截器修改request的parameters參數失敗怎么解決”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。
為了解決struts2的xss(跨站腳本攻擊)問題,我打算用struts2自帶的攔截器來過濾所有由request傳遞來的參數。
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd"> <struts> <!-- 配置一系列常量,非必須 --> <constant name="struts.i18n.encoding" value="UTF-8"/> <!-- constant name="struts.devMode" value="true"/ --> <constant name="struts.enable.DynamicMethodInvocation" value="false"/> <constant name="struts.objectFactory.spring.autoWire" value="auto"></constant> <constant name="struts.multipart.saveDir" value="/tmp"/> <package name="default" namespace="/" extends="struts-default, json-default"> <!-- 配置攔截器 --> <interceptors> <!-- 定義xss攔截器 --> <interceptor name="xssInterceptor" class="xx.xx.xx(此處填寫攔截器對應的類)"></interceptor> <!-- 定義一個包含xss攔截的攔截棧 --> <interceptor-stack name="myDefault"> <interceptor-ref name="xssInterceptor"></interceptor-ref> <interceptor-ref name="defaultStack"></interceptor-ref> </interceptor-stack> </interceptors> <!-- 這個必須配置,否則攔截器不生效 --> <default-interceptor-ref name="myDefault"></default-interceptor-ref> </package> </struts>
一開始我配置的攔截棧是這樣的
<interceptor-stack name="myDefault"> <interceptor-ref name="defaultStack"></interceptor-ref> <interceptor-ref name="xssInterceptor"</interceptor-ref> </interceptor-stack>
發現我執行過濾的那個類被執行了,但是action中注入的值沒有更改
只需要把順序換一下就好了。
<!-- 修改prepareInterceptor的alwaysInvokePrepare屬性值為false --> <interceptors> <interceptor-stack name="atzhu">//自定義的攔截器棧名。 <interceptor-ref name="paramsPrepareParamsStack"> <param name="prepare.alwaysInvokePrepare">false</param> </interceptor-ref> </interceptor-stack> </interceptors> <default-interceptor-ref name="atzhu"/>
讀到這里,這篇“struts2攔截器修改request的parameters參數失敗怎么解決”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。