Description:

Spring Boot Version: 3.0.5

Spring Cloud Version: 2022.0.1

Kubernetes Service Account-based authentication doesn't work even when all the corresponding properties are specified.

Can some help with this issue? Am I missing anything here?

<properties>
        <java.version>17</java.version>
        <spring-cloud.version>2022.0.1</spring-cloud.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-config-server</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.vault</groupId>
            <artifactId>spring-vault-core</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>${spring-cloud.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

Application.yaml

spring:
  profiles:
    active: composite
  application:
    name: polar-config-server
  cloud:
    config:
      server:
        composite:
        - type: git
          uri: "https://github.com/test/{application}.git"
          search-paths: "config"
          force-pull: true
          clone-on-start: false
          skipSslValidation: true
          refreshRate: 120
          timeout: 30
          username: ${username}
          password: ${password}
        - type: git
           uri: "https://github.com/test/{application}.git"
          search-paths: "test"
          force-pull: true
          clone-on-start: false
          skipSslValidation: true
          refreshRate: 120
          timeout: 30
          username: ${username}
          password: ${password}
        - type: vault
          scheme: https
          host: ${vault.host:localhost}
          port: 443
          authentication: kubernetes
          namespace: namespace
          kv-version: 2
          backend: backend
          kubernetes:
            role: test-role
            kubernetes-path: test-path
            service-account-token-file: /var/run/secrets/kubernetes.io/serviceaccount/token

Exception:



java.lang.IllegalArgumentException: Missing required header in HttpServletRequest: X-Config-Token
--
Mon, May 8 2023 11:28:45 am | at org.springframework.cloud.config.server.environment.HttpRequestConfigTokenProvider.getToken(HttpRequestConfigTokenProvider.java:45) ~[spring-cloud-config-server-4.0.1.jar!/:4.0.1]
Mon, May 8 2023 11:28:45 am | at org.springframework.cloud.config.server.environment.vault.SpringVaultClientConfiguration$ConfigTokenProviderAuthentication.login(SpringVaultClientConfiguration.java:191) ~[spring-cloud-config-server-4.0.1.jar!/:4.0.1]


Comment From: mp911de

Looks like this is an issue for Spring Cloud Config Server. Paging @ryanjbaxter.

Comment From: ryanjbaxter

Duplicates https://github.com/spring-cloud/spring-cloud-config/issues/2264