W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
您可以在同一系統(tǒng)中的服務之間共享標頭,但您可能不希望敏感標頭泄漏到下游到外部服務器中。您可以在路由配置中指定忽略的標頭列表。Cookies發(fā)揮著特殊的作用,因為它們在瀏覽器中具有定義明確的語義,并且始終將它們視為敏感內(nèi)容。如果代理的使用者是瀏覽器,那么下游服務的cookie也會給用戶帶來麻煩,因為它們都混雜在一起(所有下游服務看起來都來自同一位置)。
如果您對服務的設計很謹慎(例如,如果只有一個下游服務設置cookie),則可以讓它們從后端一直流到調(diào)用者。另外,如果您的代理設置了cookie,并且您的所有后端服務都在同一系統(tǒng)中,則很自然地簡單地共享它們(例如,使用Spring Session將它們鏈接到某些共享狀態(tài))。除此之外,由下游服務設置的任何cookie可能對調(diào)用者都無用,因此建議您將(至少)Set-Cookie
和Cookie
設置為敏感的標頭,用于那些沒有使用的路由您網(wǎng)域的一部分。即使對于屬于您網(wǎng)域的路由,在讓Cookie在它們和代理之間流動之前,也應仔細考慮其含義。
可以將敏感頭配置為每個路由的逗號分隔列表,如以下示例所示:
application.yml。
zuul: routes: users: path: /myusers/** sensitiveHeaders: Cookie,Set-Cookie,Authorization url: https://downstream
這是
sensitiveHeaders
的默認值,因此除非您希望其與眾不同,否則無需進行設置。這是Spring Cloud Netflix 1.1中的新功能(在1.0中,用戶無法控制標題,并且所有cookie都雙向流動)。
sensitiveHeaders
是黑名單,默認值不為空。因此,要使Zuul發(fā)送所有標頭(ignored
除外),必須將其顯式設置為空列表。如果要將Cookie或授權標頭傳遞到后端,則必須這樣做。以下示例顯示如何使用sensitiveHeaders
:
application.yml。
zuul: routes: users: path: /myusers/** sensitiveHeaders: url: https://downstream
您還可以通過設置zuul.sensitiveHeaders
來設置敏感標題。如果在路由上設置了sensitiveHeaders
,它將覆蓋全局sensitiveHeaders
設置。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: