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博主「凌霄羽」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/lindan1984/article/details/79308396


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM