解決struts2 攔截器修改request的parameters參數(shù)失敗的問題
更新時間:2022年03月07日 11:20:46 作者:胡大炮的妖孽人生
這篇文章主要介紹了解決struts2 攔截器修改request的parameters參數(shù)失敗的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
struts2 攔截器修改request的parameters參數(shù)失敗
為了解決struts2的xss(跨站腳本攻擊)問題,我打算用struts2自帶的攔截器來過濾所有由request傳遞來的參數(shù)。
<?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>
發(fā)現(xiàn)我執(zhí)行過濾的那個類被執(zhí)行了,但是action中注入的值沒有更改
只需要把順序換一下就好了。
修改指定攔截器的參數(shù)(Struts2)
<!-- 修改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"/>
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
解決啟用 Spring-Cloud-OpenFeign 配置可刷新項目無法啟動的問題
這篇文章主要介紹了解決啟用 Spring-Cloud-OpenFeign 配置可刷新項目無法啟動的問題,本文重點給大家介紹Spring-Cloud-OpenFeign的原理及問題解決方法,需要的朋友可以參考下2021-10-10解讀Spring定義Bean的兩種方式:<bean>和@Bean
這篇文章主要介紹了Spring定義Bean的兩種方式:<bean>和@Bean,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-04-04詳解Springboot如何通過注解實現(xiàn)接口防刷
本文主要為大家介紹一種極簡潔、靈活通用接口防刷實現(xiàn)方式、通過在需要防刷的方法加上@Prevent?注解即可實現(xiàn)短信防刷,感興趣的可以了解一下2022-09-09Spring @Transaction 注解執(zhí)行事務的流程
這篇文章主要介紹了Spring @Transaction 注解執(zhí)行事務的流程,Spring 是如何開啟事務的?又是如何進行提交事務和關(guān)閉事務的,本文給大家詳細介紹,需要的朋友可以參考下2021-06-06