文章目录
一. 前台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的控制台中,可以看到接收到了请求头信息,代表在网关的过滤器中,成功进行了请求头信息的转发.