国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

http請求繞過Filter的實現實例

2019-12-12 02:39:09
字體:
來源:轉載
供稿:網友

http請求繞過Filter的實現實例

場景:兩個web服務器,A當做服務端,B為客戶端,B通過Hessian遠程訪問A。A上加了session過期filter,通過用戶信息檢查session是否過期。這種情況下,Hessian會先發給filter,filter讀不到用戶信息就會認為過期了,引起錯誤。

解決方案:讓hessian請求繞過session過期filter。

filter配置中,不能加exclusion,所以需要用初始化參數給出不過濾的請求。本例中不過濾的格式為>/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 范疇,故需要向下轉型成 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"); }

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 喜德县| 阿拉善左旗| 贵南县| 静乐县| 周至县| 沙洋县| 龙江县| 象州县| 伊春市| 博白县| 龙口市| 都匀市| 固始县| 电白县| 保德县| 团风县| 左权县| 怀集县| 财经| 区。| 齐河县| 马边| 清水河县| 即墨市| 遂宁市| 永康市| 全州县| 革吉县| 尉犁县| 吉木乃县| 新晃| 綦江县| 杭锦后旗| 永安市| 平山县| 华容县| 垣曲县| 泰来县| 海兴县| 肥乡县| 都江堰市|