Zuul的安全与Header

一 敏感Header的设置
一般来说,可在同一系统中的服务之间共享Header.不过应尽量防止让一些敏感的Header外泄。因此,在很多场景下,需要通过为路由指定一系列敏感Header列表。例如:
zuul:
  routes:
    users:
      path: /myusers/**
      sensitiveHeaders: Cookie,Set-Cookie,Authorization
      url: https://downstream
这样就可为users微服务指定敏感Header了。
也可用zuul.sensitiveHeaders全局指定敏感Header,例如:
zuul
  sensitiveHeaders: Cookie,Set-Cookie,Authorization  #默认是Cookie,Set-Cookie,Authorization
需要注意的是,如果使用zuul.routes.*.sensitiveHeaders的配置方式,会覆盖掉全局的配置。

二 忽略Header
可使用zuul.ignoredHeaders属性丢弃一些Header,例如:
zuul
  ignoredHeaders: Header1,Header2
这样设置后,Header1和Header2将不会传播到其他微服务中。
默认情况下,zuul.ignoredHeaders是空值,但如果Spring Security在项目的classpath中,那么zuul.ignoredHeaders的默认值就是Pragma,Cache-Control,X-Frame-Options,X-Content-Type-Options,X-XSS-Protection,Expires。所以,当Spring Security在项目classpath中,同时又需要使用下游微服务的Spring Security的Header时,可以将zuul.ignoreSecurityHeaders设置为false。

三 参考
http://cloud.spring.io/spring-cloud-static/Camden.SR2/#_zuul_http_client
https://github.com/spring-cloud/spring-cloud-netflix/issues/1487

你可能感兴趣的:(微服务)