解決struts2 攔截器修改request的parameters參數(shù)失敗的問(wèn)題
struts2 攔截器修改request的parameters參數(shù)失敗
為了解決struts2的xss(跨站腳本攻擊)問(wèn)題,我打算用struts2自帶的攔截器來(lái)過(guò)濾所有由request傳遞來(lái)的參數(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(此處填寫(xiě)攔截器對(duì)應(yīng)的類(lèi))"></interceptor> ? ? ? ? ? ? <!-- 定義一個(gè)包含xss攔截的攔截棧 --> ? ? ? ? ? ? <interceptor-stack name="myDefault"> ? ? ? ? ? ? ? ? <interceptor-ref name="xssInterceptor"></interceptor-ref> ? ? ? ? ? ? ? ? <interceptor-ref name="defaultStack"></interceptor-ref> ? ? ? ? ? ? </interceptor-stack> ? ? ? ? </interceptors> ? ? ? ? <!-- 這個(gè)必須配置,否則攔截器不生效 --> ? ? ? ? <default-interceptor-ref name="myDefault"></default-interceptor-ref> ? ? </package> </struts> ? ?
一開(kāi)始我配置的攔截棧是這樣的
<interceptor-stack name="myDefault"> ? ? ? ? <interceptor-ref name="defaultStack"></interceptor-ref> ? ? ? ? <interceptor-ref name="xssInterceptor"</interceptor-ref> </interceptor-stack>
發(fā)現(xiàn)我執(zhí)行過(guò)濾的那個(gè)類(lèi)被執(zhí)行了,但是action中注入的值沒(méi)有更改
只需要把順序換一下就好了。
修改指定攔截器的參數(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"/>
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
SpringBoot實(shí)現(xiàn)redis緩存菜單列表
本文主要介紹了SpringBoot實(shí)現(xiàn)redis緩存菜單列表,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-01-01解決啟用 Spring-Cloud-OpenFeign 配置可刷新項(xiàng)目無(wú)法啟動(dòng)的問(wèn)題
這篇文章主要介紹了解決啟用 Spring-Cloud-OpenFeign 配置可刷新項(xiàng)目無(wú)法啟動(dòng)的問(wèn)題,本文重點(diǎn)給大家介紹Spring-Cloud-OpenFeign的原理及問(wèn)題解決方法,需要的朋友可以參考下2021-10-10解讀Spring定義Bean的兩種方式:<bean>和@Bean
這篇文章主要介紹了Spring定義Bean的兩種方式:<bean>和@Bean,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-04-04Java 邏輯運(yùn)算符中&&與&,||與|的區(qū)別
這篇文章主要介紹了Java中&&與&,||與|的區(qū)別的相關(guān)資料,需要的朋友可以參考下2017-05-05Java圖形界面開(kāi)發(fā)之簡(jiǎn)易記事本
這篇文章主要為大家詳細(xì)介紹了Java圖形界面開(kāi)發(fā)之簡(jiǎn)易記事本的制作方法,,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-10-10詳解Springboot如何通過(guò)注解實(shí)現(xiàn)接口防刷
本文主要為大家介紹一種極簡(jiǎn)潔、靈活通用接口防刷實(shí)現(xiàn)方式、通過(guò)在需要防刷的方法加上@Prevent?注解即可實(shí)現(xiàn)短信防刷,感興趣的可以了解一下2022-09-09java操作solr實(shí)現(xiàn)查詢(xún)功能的實(shí)例
下面小編就為大家分享一篇java操作solr實(shí)現(xiàn)查詢(xún)功能的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2017-11-11Spring @Transaction 注解執(zhí)行事務(wù)的流程
這篇文章主要介紹了Spring @Transaction 注解執(zhí)行事務(wù)的流程,Spring 是如何開(kāi)啟事務(wù)的?又是如何進(jìn)行提交事務(wù)和關(guān)閉事務(wù)的,本文給大家詳細(xì)介紹,需要的朋友可以參考下2021-06-06Spring security自定義用戶(hù)認(rèn)證流程詳解
這篇文章主要介紹了Spring security自定義用戶(hù)認(rèn)證流程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-03-03