spring cloud 前人踩过的坑

日出东方唯我不败
1.在2017年11月8日晚遇到一个前所未有的问题
在使用spring cloud进行网关路由的时候会默认将request中header的cookie值忽略掉,所以后台无论怎么用request.getCookies();都返回没有数据,原因是zuul对header中的key进行的忽略,一下是忽略的key
List = SECURITY_HEADERS(ZuulProperties.class) +sensitiveHeaders(ZuulProperties.class)
1.Pragma(SECURITY_HEADERS)
2.Cache-Control(SECURITY_HEADERS)
3.X-Frame-Options(SECURITY_HEADERS)
4.X-Content-Type-Options(SECURITY_HEADERS)
5.X-XSS-Protection(SECURITY_HEADERS)
6.Expires(SECURITY_HEADERS)
7.Cookie(sensitiveHeaders)
8.Set-Cookie(sensitiveHeaders)
9.Authorization(sensitiveHeaders)
所以只要重写sensitiveHeaders则可以避免cookie被忽略
解决方案:zuul.sensitiveHeaders=(等于空即可)
2.zuul路由到服务后。如果服务进行重定向则页面显示的地址是服务的地址(个人理解spring cloud的本质是通过zuul对内部的服务统一调用,从而避免内部服务地址暴露,所以这样做是不安全的而且也不一定能访问到)所以解决方案是将zuul的Host头信息添加到路由后的请求中(即修改路由请求中的host信息)
解决方案:zuul.addHostHeader=true(此方案只限于spring-cloud-netflix-core-1.2x版本也就是第三大版本Camden)

ps:版本号是根据英文字符A-Z排列的所以C是的三大版本

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值