Zuul丟失Cookie的解決方案 轉
我們是使用spring cloud zuul作為api-gateway實踐中,發現預設zuul會過濾掉cookie等header資訊,有些業務場景需要傳遞這些資訊該怎麼處理呢?
處理方式 在api-gateway的application.properties檔案中新增 zuul.sensitive-headers=
問題原因
負責根據ServiceId來路由的RibbonRoutingFilter在route之前會呼叫ProxyRequestHelper的buildZuulRequestHeaders(request)來重新組裝一個新的Header。
在buildZuulRequestHeaders方法中會對RequsetHeader中的每一項呼叫isIncludedHeader(name)來判斷當前項是否應該留在新的Header中,如下圖,如果當前項在IGNORED_HEADERS(需要忽略的資訊)中,就不會在新header中保留。
PreDecorationFilter過濾器會呼叫ProxyRequestHelper的addIgnoredHeaders方法把敏感資訊(ZuulProperties的sensitiveHeaders屬性)新增到請求上下文的IGNORED_HEADERS中
sensitiveHeaders的預設值初始值是"Cookie", "Set-Cookie", "Authorization"這三項,可以看到Cookie被列為了敏感資訊,所以不會放到新header中
---------------------
作者:凌霄羽
來源:CSDN
原文:https://blog.csdn.net/lindan1984/article/details/79308396
版權宣告:本文為博主原創文章,轉載請附上博文連結!