http請(qǐng)求繞過(guò)Filter的實(shí)現(xiàn)實(shí)例
http請(qǐng)求繞過(guò)Filter的實(shí)現(xiàn)實(shí)例
場(chǎng)景:兩個(gè)web服務(wù)器,A當(dāng)做服務(wù)端,B為客戶端,B通過(guò)Hessian遠(yuǎn)程訪問(wèn)A。A上加了session過(guò)期filter,通過(guò)用戶信息檢查session是否過(guò)期。這種情況下,Hessian會(huì)先發(fā)給filter,filter讀不到用戶信息就會(huì)認(rèn)為過(guò)期了,引起錯(cuò)誤。
解決方案:讓hessian請(qǐng)求繞過(guò)session過(guò)期filter。
filter配置中,不能加exclusion,所以需要用初始化參數(shù)給出不過(guò)濾的請(qǐng)求。本例中不過(guò)濾的格式為>/SarService。
<!--session過(guò)期filter --> <filter> <init-param> <param-name>exclusions</param-name> <param-value>/SarService</param-value> </init-param> <filter-name>loginFilter</filter-name> <filter-class>org.sigsit.vinca.sar.filter.LoginFilter </filter-class> </filter> <filter-mapping> <filter-name>loginFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
Filter類中,在init中讀取exclusions,并在doFilter中判斷。如下:
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { // 由于 session 屬于 HTTP 范疇,故需要向下轉(zhuǎn)型成 HttpServletRequest 類型 HttpServletRequest req = (HttpServletRequest) request; HttpServletResponse res=(HttpServletResponse)response; HttpSession session = req.getSession(); // 取得 session String username = (String) session.getAttribute("username"); StringBuffer fileURL = req.getRequestURL(); if(fileURL.indexOf(this.exclusions)!=-1){ chain.doFilter(request, response); } else{ //原來(lái)的處理代碼 } } public void init(FilterConfig config) throws ServletException { // TODO Auto-generated method stub this.exclusions=config.getInitParameter("exclusions"); }
感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!
- java中Filter過(guò)濾器處理中文亂碼的方法
- java中使用Filter控制用戶登錄權(quán)限具體實(shí)例
- javaweb中Filter(過(guò)濾器)的常見(jiàn)應(yīng)用
- javascipt:filter過(guò)濾介紹及使用
- Java中FilterInputStream和FilterOutputStream的用法詳解
- JavaEE Filter敏感詞過(guò)濾的方法實(shí)例詳解
- java 過(guò)濾器filter防sql注入的實(shí)現(xiàn)代碼
- Java 的 FileFilter文件過(guò)濾與readline讀行操作實(shí)例代碼
相關(guān)文章
Android根據(jù)不同身份配置APP對(duì)應(yīng)的不同模塊方法
今天小編就為大家分享一篇Android根據(jù)不同身份配置APP對(duì)應(yīng)的不同模塊方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-07-07Android開(kāi)發(fā)之ImageSwitcher相冊(cè)功能實(shí)例分析
這篇文章主要介紹了Android開(kāi)發(fā)之ImageSwitcher相冊(cè)功能,結(jié)合實(shí)例形式分析了Android ImageSwitcher相冊(cè)的原理、使用方法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下2019-03-03Android仿即刻首頁(yè)垂直滾動(dòng)圖,炫酷到底!
這篇文章主要為大家詳細(xì)介紹了Android仿即刻首頁(yè)垂直滾動(dòng)圖效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-09-09android onTouchEvent處理機(jī)制總結(jié)(必看)
下面小編就為大家?guī)?lái)一篇android onTouchEvent處理機(jī)制總結(jié)(必看)小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-04-04Android實(shí)現(xiàn)樹(shù)形層級(jí)ListView
這篇文章主要介紹了Android實(shí)現(xiàn)樹(shù)形層級(jí)ListView的相關(guān)資料,需要的朋友可以參考下2016-02-02