您当前的位置: 首页 > 

java持续实践

暂无认证

  • 2浏览

    0关注

    746博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

黑马十次方项目day08-06 前台web请求头网关转发

java持续实践 发布时间:2019-02-23 15:18:29 ,浏览量:2

文章目录
      • 一. 前台web请求头网关转发
      • 二.请求头信息转发的测试

一. 前台web请求头网关转发

由于web前台项目,对权限要求不高, 因此对于需要的请求头信息,只需做转发就行了. 在tensquare_web模块中, 添加filer. 路径如下com.tensquare.web.filter.WebFilter Filter的内容如下. 主要的思路为在经过网关的过滤器时, 获取头信息,并调用addZuulRequestHeader方法,把头信息进行转发即可.

import com.netflix.zuul.ZuulFilter;
import com.netflix.zuul.context.RequestContext;
import com.netflix.zuul.exception.ZuulException;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Component;

import javax.servlet.http.HttpServletRequest;

/**
* 类名称:WebFilter
* 类描述: 前台项目的网关转发的filter
*
* @author: taohongchao
* 创建时间:2019/2/23 14:55
* Version 1.0
*/
@Component
public class WebFilter extends ZuulFilter {
   @Override
   public String filterType() {
       return "pre";
   }

   @Override
   public int filterOrder() {
       return 0;
   }

   @Override
   public boolean shouldFilter() {
       return true;
   }

   @Override
   public Object run() throws ZuulException {
       //得到Reuest的上下文
       RequestContext currentContext = RequestContext.getCurrentContext();
       // 获取request 域
       HttpServletRequest request = currentContext.getRequest();

       //得到头信息
       String header = request.getHeader("Authorization");

       //判断是否有头信息
       if (StringUtils.isNotBlank(header)) {
           //如果获取到的头信息不为空,那么就把头信息传递给下去
           currentContext.addZuulRequestHeader("Authorization",header);
       }
       return null;
   }
}

二.请求头信息转发的测试

开启tensquare_eureka,tensquare_base,tensquare_web的服务 发送如下的get请求 http://localhost:9012/base/label 在tensquare_base的控制台中,可以看到接收到了请求头信息,代表在网关的过滤器中,成功进行了请求头信息的转发.

关注
打赏
1658054974
查看更多评论
立即登录/注册

微信扫码登录

0.0410s