为客户端应用程序寻求有关 spring.cloud.config 属性组的完整文档

Seeking thorough documentation on the spring.cloud.config properties group for client applications

我正在尝试连接到托管在 Pivotal Cloud Foundry 中的 spring 云配置配置服务器(服务)。

配置服务受 OAuth2 保护,我无法让客户端通过配置服务器进行身份验证。我不断收到 401 未经授权的消息。

我无法在 bootstrap.yml 中找到正确的属性组合。

这是我当前的 bootstrap.yml,您可以看到我尝试了很多不同的配置,我什至已经从等式中删除了 Pivotal Cloud Foundry 并试图实现它在我处理这些安全错误时从我的本地主机。

bootstrap.yml:

#Search for System Property of cloud config server, otherwise use localhost 

config server.
spring:
  cloud:
    config:
      enabled: true
      #uri: ${vcap.services.config-server.credentials.uri:http://localhost:8888}
      uri: https://config-fa3bfbbf-546c-a2c0-b07a-136da18a4fa1.host.domain.com
      authorization: ${security.oauth2.client}
      #username: ${vcap.services.config-server.credentials.client_id}
      #password: ${vcap.services.config-server.credentials.client_secret}
      name: app    
      #token: ${security.oauth2.client.token-name}
security:
  basic:
    enabled: false
  oauth2:
    client:
      #id: ${vcap.services.config-server.credentials.client_id}
      #client-secret: ${vcap.services.config-server.credentials.client_secret}
      #access-token-uri: ${vcap.services.config-server.credentials.access_token_uri}
      id: p-config-server-9281df10-bc67-49a2-863b-48844a1ce724
      client-secret: UIcc1m6lvvHK
      access-token-uri: https://p-spring-cloud-services.uaa.domain.host.com/oauth/token 
      token-name: config-server-token   

欢迎任何见解、提示或指点。

如果我能够在解决此 401 错误方面取得任何进展,我将继续 post 跟进此问题。

关于它的价值的相当非描述性的错误消息:

GET request for "https://config-fa3bfbbf-546c-a2c0-b07a-136da18a4fa1.host.domain.com/app/dev" resulted in 401 (Unauthorized); invoking error handler 
Could not locate PropertySource: 401 Unauthorized 

原来我把问题复杂化了。 我在我的 pom 中缺少一个依赖项,它需要一个简化的 bootstrap.yml.

决赛bootstrap.yml:

spring:
  profiles: cloud
  application:
    name: app

这确保它仅在 运行 在云端时使用(PCF 提供 'cloud' 配置文件),并且在询问配置服务器时使用仅在 bootstrap.yml 中提供的应用程序名称对于属性文件(请参阅此文档:https://cloud.spring.io/spring-cloud-config/spring-cloud-config.html

并且在我的 pom.xml 中添加了这些依赖项:

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-config</artifactId>
    <version>1.2.2.RELEASE</version>
</dependency>
<dependency>
    <groupId>io.pivotal.spring.cloud</groupId>
    <artifactId>spring-cloud-services-starter-config-client</artifactId>
    <version>1.3.1.RELEASE</version>
</dependency>
<dependency>
    <groupId>org.springframework.security.oauth</groupId>
    <artifactId>spring-security-oauth2</artifactId>
</dependency>

我仍然不确定是否需要 oauth2 依赖项,但目前我还没有尝试过没有它。

不向 spring.cloud.config 属性组提供任何额外配置的目的是允许 spring-cloud-services-starter-config 在 [=31= 中获取它需要的任何属性] 并将应用程序绑定到配置服务器并填写访问所述配置服务器所需的所有属性。