zuul过滤器中转发请求头的解决方案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
zuul过滤器中转发请求头的解决⽅案
zuul过滤器中转发请求头
Zuul⽹关过滤的时候,如果不在⽹关过滤时转发请求头,经过⽹关时请求头就会丢失。
⽹关过滤转发请求头代码如下
@Override
public Object run() throws ZuulException {
RequestContext currentContext = RequestContext.getCurrentContext();
HttpServletRequest request = currentContext.getRequest();
Enumeration<String> headerNames = request.getHeaderNames();
if (headerNames != null) {
while (headerNames.hasMoreElements()) {
String name = headerNames.nextElement();
String values = request.getHeader(name);
currentContext.addZuulRequestHeader(name, values);
}
}
return null;
}
但我⽤ addZuulRequestHeader转发请求头却不起作⽤。原来是敏感请求头Authorization,Cookie,Set-Cookie默认不转发的。解决⽅法⼀:使⽤别的单词,如 token、myAuthorizaion等
解决⽅法⼆:配置application.yml
zuul:
routes:
api-seller:
path: /api/seller/**
serviceId: mobileshop-api-seller-feign
sensitive-headers:
- Cookie,Set-Cookie,Authorization
zuul路由转发header丢失问题
定义⼀个前置过滤器,获取原⽣request的请求头,塞到zuul转发request请求头中。
以上为个⼈经验,希望能给⼤家⼀个参考,也希望⼤家多多⽀持。