Zuul的Header设置
敏感Header设置
同一个系统中各个服务之间通过Headers来共享信息是没啥问题的,但是如果不想Headers中的一些敏感信息随着HTTP转发泄露出去话,需要在路由配置中指定一个忽略Header的清单。
默认情况下,Zuul在请求路由时,会过滤HTTP请求头信息中的一些敏感信息,默认的敏感头信息通过zuul.sensitiveHeaders
定义,包括Cookie
、Set-Cookie
、Authorization
。配置的sensitiveHeaders
可以用逗号分割。
设置全局:
zuul.sensitiveHeaders=[这里设置要过滤的敏感头]
对指定路由的可以用下面进行配置:
# 对指定路由开启自定义敏感头
zuul.routes.[route].customSensitiveHeaders=true
zuul.routes.[route].sensitiveHeaders=[这里设置要过滤的敏感头]
注意:指定路由的敏感头配置会覆盖掉全局设置
忽略Header设置
zuul:
ignored-headers: Header1,Header2
这样设置后,Header1和Header2将不会传播到其他的微服务中
默认情况下zuul.ignored-headers是空值,如果Spring Security在项目的classpath中,那么zuul.ignored-headers的默认值就是Pragma,Cache-Control,X-Frame-Options,X-Content-Type-Options,X-XSS-Protection,Expires,所以,当Spring Security在项目的classpath中,同时又需要使用下游微服务的Spring Security的Header时,可以将zuul.ignoreSecurity-Headers设置为false。
注意:经测试,sensitive-headers与ignored-header的效果是一样的。