Zuul的安全与Header
1.敏感Header的设置
一般来说,可在同一个系统中的服务之间共享Header。不过应尽量防止让一些敏感的
Header外泄。因此,在很多场景下,需要通过为路由指定一系列敏感Header列表。例如:
zuul:
routes:
users:
path: /users/**
sensitive-headers: Cookie,Set-Cookie,Authorization
url:https://downstream
这样就可为microservice-provider-user微服务指定敏感Header了。
也可以用zuul.sensitive-headers全局指定敏感,例如:
zuul:
sensitive-headers:Cookie,Set-Cookie,Authorization
需要注意的是,如果使用zuul.routes.*.sensitive-headers的配置方式,会覆盖掉全局的配置。
2.忽略Header
可使用zuul.ignoredHeaders属性丢弃一些Header,例如:
zuul:
ignored-headers:Header1,Header2
这样设置后。Header1和Header2将不会传播到其他的微服务中。
默认情况下,zuul.ignored-headers是空值,但如果Spring Security
在项目中,那么zuul.ignored-headers的默认值就是Pragma,Cache-Control,
X-Frame-Options,X-Content-Type-Options,X-XXS-Protection,Expries。
所以,当Spring Security在项目的classpath中,同时有需要使用下游微服务的
Spring Security的Header时,可以将zuul.ignored-headers设置为false。
本文大部分内容转载自周立的《Spring Cloud与Docker微服务架构实战》