查找有关客户端应用程序的spring.cloud.config属性组的详尽文档

时间:2016-12-23 16:53:06

标签: spring-boot spring-security spring-security-oauth2 pivotal-cloud-foundry spring-cloud-config

我正在尝试连接到关键云代工厂托管的spring cloud配置配置服务器(服务)。

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

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

这是我当前的bootstrap.yml,你可以看到我尝试了很多不同的配置,我甚至已经从等式中删除了Pivotal Cloud Foundry并且我试图从我的localhost中获取它我处理这些安全错误。

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错误方面取得任何进展,我将继续发布此问题的后续行动。

相当缺乏描述性的错误消息:

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 

1 个答案:

答案 0 :(得分:0)

原来我的问题太复杂了。 我错过了我的pom中的依赖项,它需要一个简化的bootstrap.yml。

final bootstrap.yml:

spring:
  profiles: cloud
  application:
    name: app

这确保它仅在云上运行时使用(PCF提供'云'配置文件),并且在向配置服务器询问属性文件时使用仅在bootstrap.yml中提供的应用程序名称(请参阅此文档:{{ 3}})

在我的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在vcap.services中获取所需的任何属性,并将应用程序绑定到配置服务器并填写访问所述配置服务器所需的所有属性。