问题标签 [spring-cloud-netflix]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
398 浏览

spring-security - 如何为 OAuth2 配置 Active Directory 授权提供程序?

我实际上是在这里找到了 Dave Syer 的优秀 Oauth2 示例服务器:https ://github.com/dsyer/sparklr-boot和 spring-security-Oauth 的参考文档:http ://projects.spring.io/spring -security-oauth/docs/oauth2.html

我了解 OAuth2 授权服务器的概念,但实际上我希望将其插入我们的 Active Directory。在使用 OAuth2 之前,我使用ActiveDirectoryLdapAuthenticationProvider没有问题。

我找不到任何ClientDetailsService可插入 Active Directory 的实现。

我错过了什么还是我必须编写自己的 LDAP/AD 实现ClientDetailsService

0 投票
0 回答
1561 浏览

spring - Zuul 没有将 Content-Type 传递给服务

我将 Zuul 作为 API 网关,因此它具有所有服务的所有映射。我们在所有不同的服务中都有用于异常处理的自定义错误消息。

我遇到的问题是,如果我有上面的 Content-Type 假设是错误的,它会命中 API,我会收到我必须处理该场景的自定义消息。

但是当我有上面的内容类型时,即没有“/”。Zuul 实际上会拦截它并抛出它自己的错误,如下所示。我已经添加了它抛出的邮递员的错误。

我怎样才能让 Zuul 忽略这一点,然后点击服务,这样我就可以得到我的自定义错误消息。

在此处输入图像描述

我在 Zuul 中也有这个 CorsFilter 来处理跨域问题:-

来自 Zuul 的日志:-

0 投票
1 回答
723 浏览

spring-cloud - Spring Cloud Sidecar 负载均衡不重试失败

我有以下设置:

  • Spring Cloud Eureka Server(带有 Spring Boot 应用程序@EnableEurekaServer
  • Spring Cloud Sidecar(运行:8080
  • 同一个 Spring Boot 应用程序的 2 个实例在 Eureka ( @EnableEurekaClient) 上正确注册并公开一个GET /configurations端点(在:8081and上运行:8082

所有这些都在 Java 8 + Spring Cloud 1.1.0.M5 上运行。

通过 Sidecar 调用 REST 端点:8080工作正常,请求负载平衡正确,客户端响应正确。如果我关闭 2 个应用程序实例之一并再次调用端点,客户端会收到此错误:

Sidecar 日志显示以下内容:

有趣的是,似乎检测到连接被拒绝错误(Stale connection detected)并且完成了对另一个实例的调用(我确实看到了传入的请求),但结果仍然是错误。我希望重试调用的响应返回给客户端。

这是一个里程碑错误还是我缺少一些配置来使其工作?

0 投票
2 回答
3229 浏览

java - 使用 eureka 和 Ribbon 的测试服务

我正在使用带有 netflix 堆栈和 Spring Boot 的微服务构建应用程序。让我烦恼的一件事是我还没有集成测试,我可以在其中模拟周围的服务。

所以,我有服务 A,它是一个带有功能区的尤里卡客户端,用于在通话期间将尤里卡名称解析为注册服务 B 的 URL。

所以理想情况下我想用spring boot的集成测试注释启动应用程序,使用wiremock模拟服务B然后调用服务A的方法,这应该使用服务的符号名称调用我的模拟服务B。

有人已经解决了这个问题吗?我已经搜索了已经这样做的人的博客条目等,但找不到任何...

我知道 SO 文章Mock an Eureka Feign Client for Unittesting但据我所知,这只是防止发现客户端抱怨。

0 投票
1 回答
1439 浏览

spring-cloud - 注释 @RibbonClient 不能与 RestTemplate 一起使用

我正在尝试使用基于书签服务示例的 RestTemplate 进行功能区配置,但没有运气,这是我的代码:

错误页面如下:

但是如果我删除注释@RibbonClient,一切都会好起来的,

这是 SampleRibbonConfiguration 实现:

是因为 RibbonClient 不能和 RestTemplate 一起工作吗?

另一个问题是,是否可以通过 application.yml 配置文件配置像负载均衡规则这样的 Ribbon 配置?从Ribbon wiki看来,我们可以在属性文件中配置 NFLoadBalancerClassName、NFLoadBalancerRuleClassName 等 Ribbon 参数,Spring Cloud 是否也支持这个?

0 投票
1 回答
4689 浏览

spring-mvc - Spring Cloud Netflix Feign - 不支持错误 405 请求方法“POST”

我正在尝试使用 Feign 为我的网络服务构建一个 REST 客户端。Web 服务是使用 Spring 4 构建的,具有 xml beans 配置。

该项目使用 Maven 构建并使用子模块进行结构化

为了启用 Feign 客户端,我创建了一个在 Spring xml 配置上启用的带注释的类。

春天.xml

FeignConfiguration.java

然后我创建了一个 Feign 客户端并使用注解进行配置

FooClient.java

API控制器实现Feign客户端如下

FooController.java

foo-api-client 模块 jar 被外部客户端用作依赖项来联系 foo-api-service REST 服务。为了让这些客户端能够轻松使用 api,我们创建了一个工厂类来生成 FooClient 的实例。

FooClientFactory.java

问题 当外部客户端使用 FooClientFactory 对 foo web-service 执行请求时,fooClientFactory.build().get("id");会返回 405 错误。这是客户端控制台上的响应日志:

我在 stackoverflow 和其他博客上搜索了此类问题,但我无法理解整个设置有什么问题。

任何想法?

谢谢,安德里亚

0 投票
1 回答
6321 浏览

spring - 具有基于 DNS 配置的 spring-cloud-netflix 上的 Eureka,所有实例都显示为不可用

我正在尝试使用基于 DNS 的 EIP 配置在 aws 上设置 eureka 集群,如https://github.com/Netflix/eureka/wiki/Configuring-Eureka-in-AWS-Cloud中所述

一切似乎都正常,但尤里卡仪表板坚持认为尤里卡实例不可用。我现在想知道这是否只是一个 ui 问题(我认为是这样),或者我是否遗漏了一些东西。

据我了解仪表板中的“不可用副本”逻辑,这是因为 eureka 正在比较注册主机名和副本主机名。实例在发现客户端使用其内部 VPC ip 注册,但在寻找副本对等点时使用其 EIP 注册(很奇怪,在尤里卡日志中,我可以在内部看到它们也在使用内部 VPC ip)。

问题是:这只是一些我不应该担心的装饰性 ui 问题,还是因为配置错误而等待介入的更大问题?如果它只是一个 ui 的东西:我能以某种方式“修复”它吗?

在此处输入图像描述

编辑:

也许相关https://github.com/spring-cloud/spring-cloud-netflix/issues/102#issuecomment-74446709

0 投票
1 回答
369 浏览

spring-cloud-netflix - 如何让功能区使用 IP 而不是主机名

我使用“@EnableZuulProxy”注释创建了一个 Zuul 服务器。所以我正在使用 Spring Cloud。

我可以看到它从 Eureka 获取信息,并且正在使用 Ribbon 执行请求。到目前为止,一切都很好。

但它使用的是 Eureka 数据中的主机名,而不是 IP 地址。这对我来说是个问题,因为并非我的所有主机都在 DNS 中具有它们的名称。

我尝试使用 'ribbon.useIPAddrForServer=true' 但我没有看到行为发生变化。

我目前正在使用 1.0.3.RELEASE。

关于我能做些什么来解决这个问题的任何想法?

谢谢。

亨利

0 投票
2 回答
14702 浏览

java - 以 Brixton.RC1 开头的 ZuulProxy 未传递授权标头

在从 Spring Cloud 切换Brixton.M5Brixton.RC1我的 ZuulProxy 时,不再将Authorization标头下游传递给我的代理服务。

在我的设置中有各种参与者在起作用,但大多数都相当简单: - AuthorizationServer:单独运行;将 JWT 分发给客户端 - 客户端:从 OAuth 服务器获取 JWT;每个人都可以访问资源的子集。- ResourceServers:使用 JWT 进行访问决策 - MyZuulProxy:代理各种资源服务器;应该中继 JWT。

需要注意的是 MyZuulProxy 没有任何安全依赖;它将接收到的标头传递Authorization: Bearer {JWT}给 ResourceServers,pre-RC1。MyZuulProxy 本身明确不是客户端,目前不使用@EnableOAuth2SSO或类似。

使用 Spring Cloud Brixton.RC1 时,我该怎么做才能让 MyZuulProxy 再次将 JWT 中继到 ResourceServers?

要发布的代码很少:它只是@EnableZuulProxy,@EnableAuthorizationServer并且@EnableResourceServer在三个不同的 jar 中。我的客户不是 Spring 应用程序。

0 投票
1 回答
5356 浏览

spring-boot - spring-boot Autowired DiscoveryClient RestTemplate UnknownHostException

我正在使用弹簧靴 1.3.3

编辑

我将 Brixton.RC1 用于我的 Spring Cloud 依赖项

我的应用程序设置有这些注释:

我有一个带有服务的休息控制器:

在我的服务中,我正在尝试使用自动装配的休息模板来调用另一个 eureka 注册服务。

我很困惑,因为我在另一个项目中工作。这里也是输出:

所以我可以看到这两个服务都在 Eureka 上注册了。MyService 能够:

  • 在尤里卡注册
  • 在 Eureka 中查询“myotherservice”
  • 使用正确的主机和端口获得有效响应

但是自动装配的 RestTemplate 正在抛出 UnknownHostException。