1. 程式人生 > >Zuul丟失Cookie的解決方案 轉

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 
版權宣告:本文為博主原創文章,轉載請附上博文連結!