我想使用OAuth2客户端凭据流在两个资源服务器之间进行服务间通信。一切正常,只是我无法在对远程资源服务器的OAuth2RestTemplate调用中使用服务名称(功能区负载均衡器功能)而不是主机名。
我的一个资源服务器(调用另一个资源服务器)具有以下配置:
Spring Boot 1.5.13
Spring Cloud Edgware.SR3
build.gradle 包含尤里卡和功能区的条目
compile('org.springframework.cloud:spring-cloud-starter-ribbon')
compile('org.springframework.cloud:spring-cloud-starter-eureka')
@Configuration
class RestTemplateConfig {
@Bean
@ConfigurationProperties("security.oauth2.client")
public ClientCredentialsResourceDetails oauth2ClientCredentialsResourceDetails() {
return new ClientCredentialsResourceDetails();
}
@LoadBalanced
@Bean(name = "oauthRestTemplate")
public OAuth2RestOperations oAuthRestTemplate(ClientCredentialsResourceDetails oauth2ClientCredentialsResourceDetails) {
return new OAuth2RestTemplate(oauth2ClientCredentialsResourceDetails);
}
}
使用此OAuth2RestTemplate的服务
@Service
class TestService {
@Autowired
@Qualifier("oauthRestTemplate")
private OAuth2RestOperations oAuth2RestOperations;
public void notifyOrderStatus(long orderId, OrderStatus newStatus) {
oAuth2RestOperations.exchange("http://notification-service/api/order/{id}/status/{status}", HttpMethod.POST, null, Void.class, orderId, newStatus.name());
}
}
使用服务名(即< code > http://notification-service )而不是远程资源服务器的实际主机名和端口调用远程服务时出现异常。如果我使用实际的主机名端口,那么一切正常,但是我不希望我的一个资源知道另一个资源服务器的主机/post。
例外:
Caused by: java.net.UnknownHostException: notification-service
我有几个问题:
@LoadBalanced
当我们使用 RestTemplate自定义器
自定义新创建的 OAuth2Rest 模板时,RestTemplate 可以正常工作,如下面的代码所示:
@Bean(name = "MyOAuthRestTemplate")
@LoadBalanced
public OAuth2RestOperations restTemplate(RestTemplateCustomizer customizer, ClientCredentialsResourceDetails oauth2ClientCredentialsResourceDetails) {
OAuth2RestTemplate restTemplate = new OAuth2RestTemplate(oauth2ClientCredentialsResourceDetails);
customizer.customize(restTemplate);
return restTemplate;
}
使用此RestTemplate时,使用服务名而不是实际主机名可以很好地工作。
问题内容: 我无法让spring-data-elasticsearch适用于Elasticsearch 2.0+版本。 关于使用以下POM 并添加自定义的ElasticsearchConfiguration 在 Application.java* 下面 * 在有效的POM中,我仍然收到elasticsearch 1.5.2(以及附加的2.0.1.RELEASE版本)作为依赖项。 在运行应用程序时收
我目前正在将IntelliJ IDE用于复杂的GWT项目。我想在GWT的开发模式中利用JRebel,所以最近我为IntelliJ安装了JRebel插件,但在使其工作时遇到了麻烦。 基本上IntelliJ不具备在更改时自动编译应用程序的能力,所以每当您对代码进行更改时,我都必须进行编译- 信息:使用JavaC1.7.0_21编译java源代码信息:15个错误信息:0个警告信息:编译完成,9分钟5秒内
问题内容: 当我插入和拔出电源时,系统看到有东西插入: AVRISP MKII应该依靠cdc-acm: 因此它应该能够很好地看到它,但是我无法写它。 退货 问题答案: 事实证明,Ubuntu会承认对象存在,但在修复某些udev规则之前,它并不能很好地发挥作用。多亏了http://steve.kargs.net/bacnet/avr- isp-mkii-on-ubuntu-hardy/ ,该文件提供
我最近安装了Xcode8测试版5。在我的MAC 10.11.6上的Appium 1.6.0测试版现在,在阅读了所有的论坛并使Appium启动并启动我的应用程序后,我无法找到如何用这个Appium 1.6.0测试版启动我的inspector和在我的应用程序中找到元素。如何使用appium 1.6.0测试版启动inspector?如果不能,我们如何找到xpath或找到元素??
IntelliJ IDEA 2018.2.3(终极版) 楼#IU-182.4323.46,建于2018年9月3日 jre:1.8.0_152-release-1248-b8 amd64 JVM:OpenJDK 64位服务器VM by JetBrains s.r.o Windows 10 10.0 插件:VisualVM启动器(1.10.138.2210) 当我单击Run选项卡中的launcher图
我们将Java版本从8升级到11,但我在使用Lombok的Getter和Setter注释实现POJO类时遇到了Getter/Setter方法的编译错误。 有没有一种方法可以使用Lombok的注释,该注释提供getter和setter而不在Java11中实现它们? 找不到getStoreName() 其中被声明为类中的全局变量,并在类上方使用@data Lombok注释。