http請(qǐng)求繞過Filter的實(shí)現(xiàn)實(shí)例
http請(qǐng)求繞過Filter的實(shí)現(xiàn)實(shí)例
場(chǎng)景:兩個(gè)web服務(wù)器,A當(dāng)做服務(wù)端,B為客戶端,B通過Hessian遠(yuǎn)程訪問A。A上加了session過期filter,通過用戶信息檢查session是否過期。這種情況下,Hessian會(huì)先發(fā)給filter,filter讀不到用戶信息就會(huì)認(rèn)為過期了,引起錯(cuò)誤。
解決方案:讓hessian請(qǐng)求繞過session過期filter。
filter配置中,不能加exclusion,所以需要用初始化參數(shù)給出不過濾的請(qǐng)求。本例中不過濾的格式為>/SarService。
<!--session過期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{
//原來的處理代碼
}
}
public void init(FilterConfig config) throws ServletException {
// TODO Auto-generated method stub
this.exclusions=config.getInitParameter("exclusions");
}
感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!
相關(guān)文章
Android項(xiàng)目實(shí)戰(zhàn)手把手教你畫圓形水波紋loadingview
這篇文章主要為大家詳細(xì)介紹了Android項(xiàng)目實(shí)戰(zhàn)手把手教你畫圓形水波紋loadingview,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-01-01
Android實(shí)現(xiàn)二級(jí)列表購(gòu)物車功能
這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)二級(jí)列表購(gòu)物車功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-10-10
UiOS開發(fā)中ITextView回收或關(guān)閉鍵盤使用方法總結(jié)
iOS開發(fā)中,發(fā)現(xiàn)UITextView沒有像UITextField中textFieldShouldReturn:這樣的方法,那么要實(shí)現(xiàn)UITextView關(guān)閉鍵盤,必須使用其他的方法,下面是可以使用的幾種方法,需要的朋友參考下吧2016-11-11
Android 自定義View實(shí)現(xiàn)任意布局的RadioGroup效果
這篇文章主要介紹了Android 自定義View實(shí)現(xiàn)任意布局的RadioGroup,需要的朋友可以參考下2018-11-11
loadavg數(shù)據(jù)異常引發(fā)問題起源分析
這篇文章主要為大家介紹了loadavg數(shù)據(jù)異常引發(fā)問題起源分析詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-11-11
Android中再按一次退出提醒實(shí)現(xiàn)的兩種方法
今天小編就為大家分享一篇關(guān)于Android中再按一次退出提醒實(shí)現(xiàn)的兩種方法,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧2019-04-04

