手動對HttpServletRequest 對象中的入?yún)⑿薷?/h1>

思路:通過過濾器針對某一類接口鏈接進行攔截氮块,并調(diào)用HttpServletRequestWrapper 修改入?yún)?shù)。具體如下


1.第一步驟自定義過濾器對具體方法過濾


2.第二步驟? 自定義ChannelRequest 類?

重寫??getParameterNames 方法添加需要增加的參數(shù) 荣挨,重寫getParameterNames 方法 對增加的參數(shù)初始化賦值

/**

* 動態(tài)添加渠道信息

* @author songfz

* @date 2019/7/9 10:34

*/

public class ChannelRequest? extends HttpServletRequestWrapper {

private static final LoggerLOG = LoggerFactory.getLogger(ChannelRequest.class);

private Stringtoken ;

private StringchannelId;

private final ConsulPropsconsulProps = ApplicationContextHolder.getBean(ConsulProps.class);

public ChannelRequest(HttpServletRequest request) {

super(request);

token = request.getHeader(consulProps.getHeaderToken());

channelId = request.getParameter("channelId");

}

/**

* 重寫 getParameterNames 添加需要的變量名稱

? ? * @return

? ? */

? ? @Override

? ? public Enumeration getParameterNames() {

????????????Enumeration parameterNames =super.getParameterNames();

????????????ArrayList list = Collections.list(parameterNames);

????????????list.add("channelId");

????????????return Collections.enumeration(list);

????}

/**

* 重寫 getParameterValues 對添加的變量賦值

? ? * @param name

? ? * @return

? ? */

? ? @Override

? ? public String[] getParameterValues(String name) {

//? ? ? ? 判斷當(dāng)前用戶管理員還是渠道用戶

? ? ? ? if("channelId".equalsIgnoreCase(name) && StringUtils.isEmpty(channelId)){

????????ManagerTypeDto managerTypeDto = ????????ApplicationContextHolder.getBean(AuthService.class).getManagerChannelIdByToken(token);

????????if(managerTypeDto.getType().equals(Manager.ManagerType.CHANNEL.name())){

????????????????channelId = managerTypeDto.getCode();

????????????????LOG.info("獲取的渠道值:"+channelId);

? ??????????????return new String[]{channelId};

????????}

????}

????return super.getParameterValues(name);

????}

}

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者

  • 序言:七十年代末容贝,一起剝皮案震驚了整個濱河市杉畜,隨后出現(xiàn)的幾起案子眨层,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,270評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件贝咙,死亡現(xiàn)場離奇詭異,居然都是意外死亡披蕉,警方通過查閱死者的電腦和手機颈畸,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,489評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來没讲,“玉大人眯娱,你說我怎么就攤上這事∨来眨” “怎么了徙缴?”我有些...
    開封第一講書人閱讀 165,630評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長嘁信。 經(jīng)常有香客問我于样,道長,這世上最難降的妖魔是什么潘靖? 我笑而不...
    開封第一講書人閱讀 58,906評論 1 295
  • 正文 為了忘掉前任穿剖,我火速辦了婚禮,結(jié)果婚禮上卦溢,老公的妹妹穿的比我還像新娘糊余。我一直安慰自己,他們只是感情好单寂,可當(dāng)我...
    茶點故事閱讀 67,928評論 6 392
  • 文/花漫 我一把揭開白布贬芥。 她就那樣靜靜地躺著,像睡著了一般宣决。 火紅的嫁衣襯著肌膚如雪蘸劈。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,718評論 1 305
  • 那天尊沸,我揣著相機與錄音威沫,去河邊找鬼贤惯。 笑死,一個胖子當(dāng)著我的面吹牛壹甥,可吹牛的內(nèi)容都是我干的救巷。 我是一名探鬼主播,決...
    沈念sama閱讀 40,442評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼句柠,長吁一口氣:“原來是場噩夢啊……” “哼浦译!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起溯职,我...
    開封第一講書人閱讀 39,345評論 0 276
  • 序言:老撾萬榮一對情侶失蹤精盅,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后谜酒,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體叹俏,經(jīng)...
    沈念sama閱讀 45,802評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,984評論 3 337
  • 正文 我和宋清朗相戀三年僻族,在試婚紗的時候發(fā)現(xiàn)自己被綠了粘驰。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,117評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡述么,死狀恐怖蝌数,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情度秘,我是刑警寧澤顶伞,帶...
    沈念sama閱讀 35,810評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站剑梳,受9級特大地震影響唆貌,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜垢乙,卻給世界環(huán)境...
    茶點故事閱讀 41,462評論 3 331
  • 文/蒙蒙 一锨咙、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧追逮,春花似錦蓖租、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,011評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽齐婴。三九已至油猫,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間柠偶,已是汗流浹背情妖。 一陣腳步聲響...
    開封第一講書人閱讀 33,139評論 1 272
  • 我被黑心中介騙來泰國打工睬关, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人毡证。 一個月前我還...
    沈念sama閱讀 48,377評論 3 373
  • 正文 我出身青樓电爹,卻偏偏與公主長得像,于是被迫代替她去往敵國和親料睛。 傳聞我的和親對象是個殘疾皇子丐箩,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,060評論 2 355