Spring Cloud Brixton.RELEASE Zuul

4

我是一个新手,正在学习spring cloud。在我的项目中(使用spring boot构建的微服务项目),我使用了spring cloud版本Brixton.RC2,并且它能正常工作。但是当我尝试将其版本升级到Brixton.RELEASE时,项目无法与zuul一起工作(如果我直接访问web微服务,则可以正常工作,但是如果通过zuul访问,则无法正常工作),我没有更改任何配置。maven依赖关系如下:

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>1.3.5.RELEASE</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-parent</artifactId>
            <version>Brixton.RC2</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

有人可以指出我的项目出了什么问题吗?

谢谢,祝一切顺利!


以上代码运行良好,但如果我仅更改版本为Brixton.RELEASE,则无法正常工作。甚至,我尝试根据https://spring.io/blog/2016/05/11/spring-cloud-brixton-release-is-available将artifactId更改为“spring-cloud-dependencies”。 - Colin Zhang
奇怪的是,没有构建错误,也没有控制台中的运行时错误。当我通过Zuul端口访问系统时,登录页面会显示出来,但无论我输入什么,它都会重定向到错误页面,而且我在Web层或Zuul中找不到任何错误,但如果我将版本还原为RC2,则成功了。 - Colin Zhang
如果问题与Zuul有关,那么在BRIXTON版本上下载的spring-cloud-starter-zuul版本是什么?它们是相同的吗?如果它们是相同的,那么就有其他原因导致了这个问题。 - Grinish Nepal
嗨,Grinish,感谢您跟进我的问题。根据我的检查,Zuul版本已更改。当org.springframework.cloud的版本为“Brixton.RC2”时,spring-cloud-starter-zuul的版本为“1.1.0.RC2”,当spring cloud的版本为“Brixton.RELEASE”时,spring-cloud-starter-zuul的版本为“zuul-1.1.0.RELEASE”。 - Colin Zhang
如果问题特定于Zuul,为什么不使用Brixton RELEASE的RC2版本来测试一下,以便缩小问题范围。如果在使用Brixton-Release的Zuul RC2版本后一切正常,那么RELEASE中肯定缺少RC2中的某些内容。 - Grinish Nepal
显示剩余2条评论
1个回答

1
我也遇到了同样的问题。我之前使用的是Brixton.M4版本,然后升级到了Brixton.Release版本。现在的情况是,在登录时,请求会经过网关,并被路由到ouath服务器。但是当zuul路由登录请求时,头部信息缺失了。也就是说,包含clientId:clientSecret 的授权头部信息丢失了。这是因为Spring Cloud Netflix 1.1中引入了Zuul中的敏感头部信息处理机制。请参考https://github.com/spring-cloud/spring-cloud-netflix/blob/master/docs/src/main/asciidoc/spring-cloud-netflix.adoc#cookies-and-sensitive-headers获取更多信息。
添加

zuul.routes.myroute.sensitiveHeaders=''

将其添加到您的application.yml或application.properties中,这将覆盖敏感标头的默认值为空。

将尝试此解决方案,并稍后反馈,非常感谢您的帮助。 - Colin Zhang
非常感谢,我在我的项目中尝试了这个配置,它有效。 - Colin Zhang

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接