场景:
应产品要求,在原有spring cloud构建的微服务基础上,需要依据原有Manager微服务再搭建一个Manager微服务作为管理系统测试系统。因此,同一套微服务中Manager和Test-Manager拥有两套登录机制。
考虑可以使用同一个zuul路由不同的服务名Manager和Test-Manager使用一个微服务实现两套系统。
出现的问题:
1、登录测试系统页面报错,重定向次数太多?
原因:需要在zuul的过滤器中添加新增服务的过滤条件,否侧login请求被过滤会一直重定向。
2、可以进入登录页面,但是访问index时返回302?
原因:查看在zuul过滤器中是否可以收到前端Cookie信息,如果没有,需要检查zuul配置是否将请求头信息滤掉。
默认情况下,Spring Cloud Zuul在请求路由时,会滤掉HTTP请求头信息中的一些敏感信息,防止他们被传递到下游的外部服务器,默认敏感信息通过zuul.sensitiveHeaders参数定义,包括Cookie,Set-Cookie,Autorization三个属性。所以,我们在开发Web项目时常用的Cookie信息在Spring Cloud Zuul网关默认是不会传递的,因此导致我们登录无法鉴权。解决这个问题方法如下:
●通过设置全局参数为空来覆盖默认值:
zuul.sensitiveHeaders="*"
这种方法并不推荐,虽然可以实现Coo