重庆分公司,新征程启航

为企业提供网站建设、域名注册、服务器等服务

Filter怎么利用http请求实现绕过

Filter怎么利用http请求实现绕过?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

我们提供的服务有:网站制作、成都网站建设、微信公众号开发、网站优化、网站认证、夷陵ssl等。为超过千家企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的夷陵网站制作公司

http请求绕过Filter的实例

场景:两个web服务器,A当做服务端,B为客户端,B通过Hessian远程访问A。A上加了session过期filter,通过用户信息检查session是否过期。这种情况下,Hessian会先发给filter,filter读不到用户信息就会认为过期了,引起错误。

解决方案:让hessian请求绕过session过期filter。

filter配置中,不能加exclusion,所以需要用初始化参数给出不过滤的请求。本例中不过滤的格式为>/SarService。

 
 
 
  exclusions
  /SarService
 
 loginFilter
 org.sigsit.vinca.sar.filter.LoginFilter
 
 
 
 loginFilter
 /*
 

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");
 }

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注创新互联行业资讯频道,感谢您对创新互联的支持。


文章题目:Filter怎么利用http请求实现绕过
当前网址:http://cqcxhl.com/article/ipgecd.html

其他资讯

在线咨询
服务热线
服务热线:028-86922220
TOP