diff --git a/.github/dependabot.yml b/.github/dependabot.yml
index f85cb0d9..6d10e226 100644
--- a/.github/dependabot.yml
+++ b/.github/dependabot.yml
@@ -10,6 +10,11 @@ updates:
target-branch: "4.2.x"
schedule:
interval: "weekly"
+ - package-ecosystem: "github-actions"
+ directory: "/"
+ target-branch: "4.3.x"
+ schedule:
+ interval: "weekly"
- package-ecosystem: "github-actions"
directory: "/"
target-branch: "main"
@@ -41,12 +46,18 @@ updates:
directory: /
schedule:
interval: daily
- target-branch: main
+ target-branch: 4.3.x
ignore:
- # only upgrade by minor or patch
+ # only upgrade patch versions for maintenance branch
- dependency-name: "*"
update-types:
- version-update:semver-major
+ - version-update:semver-minor
+ - package-ecosystem: maven
+ directory: /
+ schedule:
+ interval: daily
+ target-branch: main
- package-ecosystem: npm
target-branch: docs-build
directory: /
@@ -67,3 +78,8 @@ updates:
directory: /docs
schedule:
interval: weekly
+ - package-ecosystem: npm
+ target-branch: 4.3.x
+ directory: /docs
+ schedule:
+ interval: weekly
diff --git a/.github/workflows/maven.yaml b/.github/workflows/maven.yaml
index b71eb0ba..48671a22 100644
--- a/.github/workflows/maven.yaml
+++ b/.github/workflows/maven.yaml
@@ -5,9 +5,9 @@ name: Build
on:
push:
- branches: [ main, 4.2.x, 4.1.x, 4.0.x, 3.1.x ]
+ branches: [ main, 4.3.x, 4.2.x, 4.1.x, 4.0.x, 3.1.x ]
pull_request:
- branches: [ main, 4.2.x, 4.1.x, 4.0.x, 3.1.x ]
+ branches: [ main, 4.3.x, 4.2.x, 4.1.x, 4.0.x, 3.1.x ]
jobs:
build:
diff --git a/docs/pom.xml b/docs/pom.xml
index 1f527e6b..bd4ba4d4 100644
--- a/docs/pom.xml
+++ b/docs/pom.xml
@@ -8,7 +8,7 @@
org.springframework.cloud
spring-cloud-config
- 4.3.1-SNAPSHOT
+ 5.0.0-SNAPSHOT
..
jar
diff --git a/pom.xml b/pom.xml
index bb89d887..42404f26 100644
--- a/pom.xml
+++ b/pom.xml
@@ -5,7 +5,7 @@
4.0.0
org.springframework.cloud
spring-cloud-config
- 4.3.1-SNAPSHOT
+ 5.0.0-SNAPSHOT
pom
Spring Cloud Config
Spring Cloud Config
@@ -13,7 +13,7 @@
org.springframework.cloud
spring-cloud-build
- 4.3.1-SNAPSHOT
+ 5.0.0-SNAPSHOT
@@ -27,9 +27,10 @@
config
- 4.3.1-SNAPSHOT
+ 5.0.0-SNAPSHOT
2.31.58
v1-rev20201112-1.30.10
+ 2.60.0
2.35.2
3.3.1
true
@@ -82,6 +83,11 @@
google-api-services-iam
${google-api-services-iam.version}
+
+ com.google.cloud
+ google-cloud-iamcredentials
+ ${google-cloud-iamcredentials.version}
+
com.google.auth
google-auth-library-oauth2-http
diff --git a/spring-cloud-config-client-tls-tests/pom.xml b/spring-cloud-config-client-tls-tests/pom.xml
index c3f83877..e693d432 100644
--- a/spring-cloud-config-client-tls-tests/pom.xml
+++ b/spring-cloud-config-client-tls-tests/pom.xml
@@ -9,7 +9,7 @@
org.springframework.cloud
spring-cloud-config
- 4.3.1-SNAPSHOT
+ 5.0.0-SNAPSHOT
..
@@ -99,7 +99,7 @@
org.bouncycastle
bcpkix-jdk18on
- 1.80
+ 1.81
test
diff --git a/spring-cloud-config-client/pom.xml b/spring-cloud-config-client/pom.xml
index eba19761..53897c56 100644
--- a/spring-cloud-config-client/pom.xml
+++ b/spring-cloud-config-client/pom.xml
@@ -10,7 +10,7 @@
org.springframework.cloud
spring-cloud-config
- 4.3.1-SNAPSHOT
+ 5.0.0-SNAPSHOT
..
diff --git a/spring-cloud-config-client/src/main/java/org/springframework/cloud/config/client/ConfigServerConfigDataResource.java b/spring-cloud-config-client/src/main/java/org/springframework/cloud/config/client/ConfigServerConfigDataResource.java
index 46ca540d..5249bdc6 100644
--- a/spring-cloud-config-client/src/main/java/org/springframework/cloud/config/client/ConfigServerConfigDataResource.java
+++ b/spring-cloud-config-client/src/main/java/org/springframework/cloud/config/client/ConfigServerConfigDataResource.java
@@ -124,8 +124,8 @@ public class ConfigServerConfigDataResource extends ConfigDataResource {
private boolean uriEqual(String thisUriString, String thatUriString) {
try {
- UriComponents thisUri = UriComponentsBuilder.fromHttpUrl(thisUriString).build();
- UriComponents thatUri = UriComponentsBuilder.fromHttpUrl(thatUriString).build();
+ UriComponents thisUri = UriComponentsBuilder.fromUriString(thisUriString).build();
+ UriComponents thatUri = UriComponentsBuilder.fromUriString(thatUriString).build();
return Objects.equals(thisUri.getHost(), thatUri.getHost())
&& Objects.equals(thisUri.getPort(), thatUri.getPort())
&& Objects.equals(thisUri.getPath(), thatUri.getPath());
@@ -138,7 +138,7 @@ public class ConfigServerConfigDataResource extends ConfigDataResource {
private int urisHashCode(String[] uris) {
return Arrays.stream(uris).mapToInt(uriString -> {
try {
- UriComponents uriComponents = UriComponentsBuilder.fromHttpUrl(uriString).build();
+ UriComponents uriComponents = UriComponentsBuilder.fromUriString(uriString).build();
return Objects.hash(uriComponents.getHost(), uriComponents.getPath(), uriComponents.getPort());
}
catch (Exception e) {
diff --git a/spring-cloud-config-client/src/test/java/org/springframework/cloud/config/client/ConfigServerConfigDataLoaderTests.java b/spring-cloud-config-client/src/test/java/org/springframework/cloud/config/client/ConfigServerConfigDataLoaderTests.java
index f6b8012d..a773efa7 100644
--- a/spring-cloud-config-client/src/test/java/org/springframework/cloud/config/client/ConfigServerConfigDataLoaderTests.java
+++ b/spring-cloud-config-client/src/test/java/org/springframework/cloud/config/client/ConfigServerConfigDataLoaderTests.java
@@ -263,7 +263,7 @@ public class ConfigServerConfigDataLoaderTests {
String username = "user";
String password = "pass";
factory(properties).addAuthorizationToken(headers, username, password);
- assertThat(headers).hasSize(1);
+ assertThat(headers.size()).isEqualTo(1);
}
@Test
@@ -272,7 +272,7 @@ public class ConfigServerConfigDataLoaderTests {
properties.getHeaders().put(AUTHORIZATION, "Basic dXNlcm5hbWU6cGFzc3dvcmQNCg==");
String username = "user";
factory(properties).addAuthorizationToken(headers, username, null);
- assertThat(headers).hasSize(1);
+ assertThat(headers.size()).isEqualTo(1);
}
@Test
diff --git a/spring-cloud-config-client/src/test/java/org/springframework/cloud/config/client/ConfigServerConfigDataLocationResolverTests.java b/spring-cloud-config-client/src/test/java/org/springframework/cloud/config/client/ConfigServerConfigDataLocationResolverTests.java
index 9f2040ee..918684c9 100644
--- a/spring-cloud-config-client/src/test/java/org/springframework/cloud/config/client/ConfigServerConfigDataLocationResolverTests.java
+++ b/spring-cloud-config-client/src/test/java/org/springframework/cloud/config/client/ConfigServerConfigDataLocationResolverTests.java
@@ -23,7 +23,6 @@ import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.mockito.ArgumentCaptor;
-import org.springframework.beans.factory.support.InstanceSupplier;
import org.springframework.boot.BootstrapRegistry;
import org.springframework.boot.ConfigurableBootstrapContext;
import org.springframework.boot.context.config.ConfigDataLocation;
diff --git a/spring-cloud-config-client/src/test/java/org/springframework/cloud/config/client/ConfigServicePropertySourceLocatorTests.java b/spring-cloud-config-client/src/test/java/org/springframework/cloud/config/client/ConfigServicePropertySourceLocatorTests.java
index 28401a04..9fc1d382 100644
--- a/spring-cloud-config-client/src/test/java/org/springframework/cloud/config/client/ConfigServicePropertySourceLocatorTests.java
+++ b/spring-cloud-config-client/src/test/java/org/springframework/cloud/config/client/ConfigServicePropertySourceLocatorTests.java
@@ -254,7 +254,7 @@ public class ConfigServicePropertySourceLocatorTests {
String username = "user";
String password = "pass";
factory(defaults).addAuthorizationToken(headers, username, password);
- assertThat(headers).hasSize(1);
+ assertThat(headers.size()).isEqualTo(1);
}
@Test
@@ -265,7 +265,7 @@ public class ConfigServicePropertySourceLocatorTests {
String username = "user";
String password = null;
factory(defaults).addAuthorizationToken(headers, username, password);
- assertThat(headers).hasSize(1);
+ assertThat(headers.size()).isEqualTo(1);
}
@Test
diff --git a/spring-cloud-config-dependencies/pom.xml b/spring-cloud-config-dependencies/pom.xml
index 890b3633..6f64179c 100644
--- a/spring-cloud-config-dependencies/pom.xml
+++ b/spring-cloud-config-dependencies/pom.xml
@@ -6,17 +6,17 @@
spring-cloud-dependencies-parent
org.springframework.cloud
- 4.3.1-SNAPSHOT
+ 5.0.0-SNAPSHOT
spring-cloud-config-dependencies
- 4.3.1-SNAPSHOT
+ 5.0.0-SNAPSHOT
pom
spring-cloud-config-dependencies
Spring Cloud Config Dependencies
6.10.1.202505221210-r
- 3.2.0
+ 4.0.0-SNAPSHOT
2.1.1.RELEASE
2.0.10
diff --git a/spring-cloud-config-monitor/pom.xml b/spring-cloud-config-monitor/pom.xml
index b4f45649..694c5a9a 100644
--- a/spring-cloud-config-monitor/pom.xml
+++ b/spring-cloud-config-monitor/pom.xml
@@ -6,7 +6,7 @@
org.springframework.cloud
spring-cloud-config
- 4.3.1-SNAPSHOT
+ 5.0.0-SNAPSHOT
..
spring-cloud-config-monitor
@@ -14,7 +14,7 @@
Spring Cloud Config Monitor
${basedir}/../..
- 4.3.1-SNAPSHOT
+ 5.0.0-SNAPSHOT
diff --git a/spring-cloud-config-monitor/src/main/java/org/springframework/cloud/config/monitor/BasePropertyPathNotificationExtractor.java b/spring-cloud-config-monitor/src/main/java/org/springframework/cloud/config/monitor/BasePropertyPathNotificationExtractor.java
index 8a6c547b..264a8047 100755
--- a/spring-cloud-config-monitor/src/main/java/org/springframework/cloud/config/monitor/BasePropertyPathNotificationExtractor.java
+++ b/spring-cloud-config-monitor/src/main/java/org/springframework/cloud/config/monitor/BasePropertyPathNotificationExtractor.java
@@ -21,7 +21,7 @@ import java.util.LinkedHashSet;
import java.util.Map;
import java.util.Set;
-import org.springframework.util.MultiValueMap;
+import org.springframework.http.HttpHeaders;
/**
* @author Dave Syer
@@ -30,7 +30,7 @@ import org.springframework.util.MultiValueMap;
public abstract class BasePropertyPathNotificationExtractor implements PropertyPathNotificationExtractor {
@Override
- public PropertyPathNotification extract(MultiValueMap headers, Map request) {
+ public PropertyPathNotification extract(HttpHeaders headers, Map request) {
if (requestBelongsToGitRepoManager(headers)) {
if (request.get("commits") instanceof Collection) {
Set paths = new LinkedHashSet<>();
@@ -61,6 +61,6 @@ public abstract class BasePropertyPathNotificationExtractor implements PropertyP
}
}
- protected abstract boolean requestBelongsToGitRepoManager(MultiValueMap headers);
+ protected abstract boolean requestBelongsToGitRepoManager(HttpHeaders headers);
}
diff --git a/spring-cloud-config-monitor/src/main/java/org/springframework/cloud/config/monitor/BitbucketPropertyPathNotificationExtractor.java b/spring-cloud-config-monitor/src/main/java/org/springframework/cloud/config/monitor/BitbucketPropertyPathNotificationExtractor.java
index eb1e618c..862d60c6 100644
--- a/spring-cloud-config-monitor/src/main/java/org/springframework/cloud/config/monitor/BitbucketPropertyPathNotificationExtractor.java
+++ b/spring-cloud-config-monitor/src/main/java/org/springframework/cloud/config/monitor/BitbucketPropertyPathNotificationExtractor.java
@@ -21,7 +21,7 @@ import java.util.Map;
import org.springframework.core.Ordered;
import org.springframework.core.annotation.Order;
-import org.springframework.util.MultiValueMap;
+import org.springframework.http.HttpHeaders;
import org.springframework.util.StringUtils;
/**
@@ -34,7 +34,7 @@ import org.springframework.util.StringUtils;
public class BitbucketPropertyPathNotificationExtractor implements PropertyPathNotificationExtractor {
@Override
- public PropertyPathNotification extract(MultiValueMap headers, Map request) {
+ public PropertyPathNotification extract(HttpHeaders headers, Map request) {
if (("repo:push".equals(headers.getFirst("X-Event-Key"))
|| "pullrequest:fulfilled".equals(headers.getFirst("X-Event-Key")))
&& StringUtils.hasText(headers.getFirst("X-Hook-UUID"))) {
diff --git a/spring-cloud-config-monitor/src/main/java/org/springframework/cloud/config/monitor/CompositePropertyPathNotificationExtractor.java b/spring-cloud-config-monitor/src/main/java/org/springframework/cloud/config/monitor/CompositePropertyPathNotificationExtractor.java
index f311c49e..fac7de3c 100644
--- a/spring-cloud-config-monitor/src/main/java/org/springframework/cloud/config/monitor/CompositePropertyPathNotificationExtractor.java
+++ b/spring-cloud-config-monitor/src/main/java/org/springframework/cloud/config/monitor/CompositePropertyPathNotificationExtractor.java
@@ -24,7 +24,7 @@ import java.util.Map;
import org.springframework.core.Ordered;
import org.springframework.core.annotation.AnnotationAwareOrderComparator;
import org.springframework.core.annotation.Order;
-import org.springframework.util.MultiValueMap;
+import org.springframework.http.HttpHeaders;
/**
* A {@link PropertyPathNotificationExtractor} that cycles through a set of (ordered)
@@ -47,7 +47,7 @@ public class CompositePropertyPathNotificationExtractor implements PropertyPathN
}
@Override
- public PropertyPathNotification extract(MultiValueMap headers, Map request) {
+ public PropertyPathNotification extract(HttpHeaders headers, Map request) {
for (PropertyPathNotificationExtractor extractor : this.extractors) {
PropertyPathNotification result = extractor.extract(headers, request);
if (result != null) {
@@ -61,7 +61,7 @@ public class CompositePropertyPathNotificationExtractor implements PropertyPathN
private static class SimplePropertyPathNotificationExtractor implements PropertyPathNotificationExtractor {
@Override
- public PropertyPathNotification extract(MultiValueMap headers, Map request) {
+ public PropertyPathNotification extract(HttpHeaders headers, Map request) {
Object object = request.get("path");
if (object instanceof String) {
return new PropertyPathNotification((String) object);
diff --git a/spring-cloud-config-monitor/src/main/java/org/springframework/cloud/config/monitor/GiteaPropertyPathNotificationExtractor.java b/spring-cloud-config-monitor/src/main/java/org/springframework/cloud/config/monitor/GiteaPropertyPathNotificationExtractor.java
index 64046951..9a5ca1c3 100755
--- a/spring-cloud-config-monitor/src/main/java/org/springframework/cloud/config/monitor/GiteaPropertyPathNotificationExtractor.java
+++ b/spring-cloud-config-monitor/src/main/java/org/springframework/cloud/config/monitor/GiteaPropertyPathNotificationExtractor.java
@@ -22,7 +22,7 @@ import java.util.Set;
import org.springframework.core.Ordered;
import org.springframework.core.annotation.Order;
-import org.springframework.util.MultiValueMap;
+import org.springframework.http.HttpHeaders;
/**
* @author Juan Pablo Santos RodrÃguez
@@ -46,7 +46,7 @@ public class GiteaPropertyPathNotificationExtractor extends BasePropertyPathNoti
}
@Override
- protected boolean requestBelongsToGitRepoManager(MultiValueMap headers) {
+ protected boolean requestBelongsToGitRepoManager(HttpHeaders headers) {
return HEADERS_VALUE.equals(headers.getFirst(HEADERS_KEY));
}
diff --git a/spring-cloud-config-monitor/src/main/java/org/springframework/cloud/config/monitor/GiteePropertyPathNotificationExtractor.java b/spring-cloud-config-monitor/src/main/java/org/springframework/cloud/config/monitor/GiteePropertyPathNotificationExtractor.java
index cf4bfdaf..7165f5aa 100644
--- a/spring-cloud-config-monitor/src/main/java/org/springframework/cloud/config/monitor/GiteePropertyPathNotificationExtractor.java
+++ b/spring-cloud-config-monitor/src/main/java/org/springframework/cloud/config/monitor/GiteePropertyPathNotificationExtractor.java
@@ -18,7 +18,7 @@ package org.springframework.cloud.config.monitor;
import org.springframework.core.Ordered;
import org.springframework.core.annotation.Order;
-import org.springframework.util.MultiValueMap;
+import org.springframework.http.HttpHeaders;
/**
* @author lly 835
@@ -32,7 +32,7 @@ public class GiteePropertyPathNotificationExtractor extends BasePropertyPathNoti
private static final String HEADERS_VALUE = "Push Hook";
@Override
- protected boolean requestBelongsToGitRepoManager(MultiValueMap headers) {
+ protected boolean requestBelongsToGitRepoManager(HttpHeaders headers) {
return HEADERS_VALUE.equals(headers.getFirst(HEADERS_KEY));
}
diff --git a/spring-cloud-config-monitor/src/main/java/org/springframework/cloud/config/monitor/GithubPropertyPathNotificationExtractor.java b/spring-cloud-config-monitor/src/main/java/org/springframework/cloud/config/monitor/GithubPropertyPathNotificationExtractor.java
index 7fae9b0a..4de7881b 100644
--- a/spring-cloud-config-monitor/src/main/java/org/springframework/cloud/config/monitor/GithubPropertyPathNotificationExtractor.java
+++ b/spring-cloud-config-monitor/src/main/java/org/springframework/cloud/config/monitor/GithubPropertyPathNotificationExtractor.java
@@ -18,7 +18,7 @@ package org.springframework.cloud.config.monitor;
import org.springframework.core.Ordered;
import org.springframework.core.annotation.Order;
-import org.springframework.util.MultiValueMap;
+import org.springframework.http.HttpHeaders;
/**
* @author Dave Syer
@@ -28,7 +28,7 @@ import org.springframework.util.MultiValueMap;
public class GithubPropertyPathNotificationExtractor extends BasePropertyPathNotificationExtractor {
@Override
- protected boolean requestBelongsToGitRepoManager(MultiValueMap headers) {
+ protected boolean requestBelongsToGitRepoManager(HttpHeaders headers) {
return "push".equals(headers.getFirst("X-Github-Event"));
}
diff --git a/spring-cloud-config-monitor/src/main/java/org/springframework/cloud/config/monitor/GitlabPropertyPathNotificationExtractor.java b/spring-cloud-config-monitor/src/main/java/org/springframework/cloud/config/monitor/GitlabPropertyPathNotificationExtractor.java
index 4d67c9ce..5709f825 100644
--- a/spring-cloud-config-monitor/src/main/java/org/springframework/cloud/config/monitor/GitlabPropertyPathNotificationExtractor.java
+++ b/spring-cloud-config-monitor/src/main/java/org/springframework/cloud/config/monitor/GitlabPropertyPathNotificationExtractor.java
@@ -18,7 +18,7 @@ package org.springframework.cloud.config.monitor;
import org.springframework.core.Ordered;
import org.springframework.core.annotation.Order;
-import org.springframework.util.MultiValueMap;
+import org.springframework.http.HttpHeaders;
/**
* @author Dave Syer
@@ -28,7 +28,7 @@ import org.springframework.util.MultiValueMap;
public class GitlabPropertyPathNotificationExtractor extends BasePropertyPathNotificationExtractor {
@Override
- protected boolean requestBelongsToGitRepoManager(MultiValueMap headers) {
+ protected boolean requestBelongsToGitRepoManager(HttpHeaders headers) {
return "Push Hook".equals(headers.getFirst("X-Gitlab-Event"));
}
diff --git a/spring-cloud-config-monitor/src/main/java/org/springframework/cloud/config/monitor/GogsPropertyPathNotificationExtractor.java b/spring-cloud-config-monitor/src/main/java/org/springframework/cloud/config/monitor/GogsPropertyPathNotificationExtractor.java
index dce918ec..4359a329 100755
--- a/spring-cloud-config-monitor/src/main/java/org/springframework/cloud/config/monitor/GogsPropertyPathNotificationExtractor.java
+++ b/spring-cloud-config-monitor/src/main/java/org/springframework/cloud/config/monitor/GogsPropertyPathNotificationExtractor.java
@@ -18,7 +18,7 @@ package org.springframework.cloud.config.monitor;
import org.springframework.core.Ordered;
import org.springframework.core.annotation.Order;
-import org.springframework.util.MultiValueMap;
+import org.springframework.http.HttpHeaders;
/**
* @author lly 835
@@ -32,7 +32,7 @@ public class GogsPropertyPathNotificationExtractor extends BasePropertyPathNotif
private static final String HEADERS_VALUE = "push";
@Override
- protected boolean requestBelongsToGitRepoManager(MultiValueMap headers) {
+ protected boolean requestBelongsToGitRepoManager(HttpHeaders headers) {
return HEADERS_VALUE.equals(headers.getFirst(HEADERS_KEY));
}
diff --git a/spring-cloud-config-monitor/src/main/java/org/springframework/cloud/config/monitor/PropertyPathNotificationExtractor.java b/spring-cloud-config-monitor/src/main/java/org/springframework/cloud/config/monitor/PropertyPathNotificationExtractor.java
index 0152967e..29ebc431 100644
--- a/spring-cloud-config-monitor/src/main/java/org/springframework/cloud/config/monitor/PropertyPathNotificationExtractor.java
+++ b/spring-cloud-config-monitor/src/main/java/org/springframework/cloud/config/monitor/PropertyPathNotificationExtractor.java
@@ -18,6 +18,7 @@ package org.springframework.cloud.config.monitor;
import java.util.Map;
+import org.springframework.http.HttpHeaders;
import org.springframework.util.MultiValueMap;
/**
@@ -30,6 +31,10 @@ import org.springframework.util.MultiValueMap;
*/
public interface PropertyPathNotificationExtractor {
- PropertyPathNotification extract(MultiValueMap headers, Map payload);
+ default PropertyPathNotification extract(MultiValueMap headers, Map payload) {
+ return extract(new HttpHeaders(headers), payload);
+ }
+
+ PropertyPathNotification extract(HttpHeaders headers, Map payload);
}
diff --git a/spring-cloud-config-sample/pom.xml b/spring-cloud-config-sample/pom.xml
index 86604875..2391492b 100644
--- a/spring-cloud-config-sample/pom.xml
+++ b/spring-cloud-config-sample/pom.xml
@@ -13,7 +13,7 @@
org.springframework.cloud
spring-cloud-config
- 4.3.1-SNAPSHOT
+ 5.0.0-SNAPSHOT
..
diff --git a/spring-cloud-config-server/pom.xml b/spring-cloud-config-server/pom.xml
index bcf302b1..dca59dbf 100644
--- a/spring-cloud-config-server/pom.xml
+++ b/spring-cloud-config-server/pom.xml
@@ -13,7 +13,7 @@
org.springframework.cloud
spring-cloud-config
- 4.3.1-SNAPSHOT
+ 5.0.0-SNAPSHOT
..
@@ -137,6 +137,11 @@
google-cloud-secretmanager
true
+
+ com.google.cloud
+ google-cloud-iamcredentials
+ true
+
com.google.apis
google-api-services-cloudresourcemanager
diff --git a/spring-cloud-config-server/src/main/java/org/springframework/cloud/config/server/environment/vault/authentication/GcpIamClientAuthenticationProvider.java b/spring-cloud-config-server/src/main/java/org/springframework/cloud/config/server/environment/vault/authentication/GcpIamClientAuthenticationProvider.java
index 9d1b0a38..c9816737 100644
--- a/spring-cloud-config-server/src/main/java/org/springframework/cloud/config/server/environment/vault/authentication/GcpIamClientAuthenticationProvider.java
+++ b/spring-cloud-config-server/src/main/java/org/springframework/cloud/config/server/environment/vault/authentication/GcpIamClientAuthenticationProvider.java
@@ -17,9 +17,10 @@
package org.springframework.cloud.config.server.environment.vault.authentication;
import java.io.ByteArrayInputStream;
+import java.io.IOException;
import java.util.Base64;
-import com.google.api.client.googleapis.auth.oauth2.GoogleCredential;
+import com.google.auth.oauth2.GoogleCredentials;
import org.springframework.cloud.config.server.environment.VaultEnvironmentProperties;
import org.springframework.cloud.config.server.environment.VaultEnvironmentProperties.AuthenticationMethod;
@@ -27,9 +28,8 @@ import org.springframework.cloud.config.server.environment.vault.SpringVaultClie
import org.springframework.util.Assert;
import org.springframework.util.StringUtils;
import org.springframework.vault.authentication.ClientAuthentication;
-import org.springframework.vault.authentication.GcpCredentialSupplier;
-import org.springframework.vault.authentication.GcpIamAuthentication;
-import org.springframework.vault.authentication.GcpIamAuthenticationOptions;
+import org.springframework.vault.authentication.GcpIamCredentialsAuthentication;
+import org.springframework.vault.authentication.GcpIamCredentialsAuthenticationOptions;
import org.springframework.web.client.RestOperations;
public class GcpIamClientAuthenticationProvider extends SpringVaultClientAuthenticationProvider {
@@ -49,45 +49,48 @@ public class GcpIamClientAuthenticationProvider extends SpringVaultClientAuthent
Assert.hasText(gcp.getRole(), missingPropertyForAuthMethod("gcp-iam.role", AuthenticationMethod.GCP_IAM));
- GcpIamAuthenticationOptions.GcpIamAuthenticationOptionsBuilder builder = GcpIamAuthenticationOptions.builder()
+ GcpIamCredentialsAuthenticationOptions.GcpIamCredentialsAuthenticationOptionsBuilder builder = GcpIamCredentialsAuthenticationOptions
+ .builder()
.path(gcp.getGcpPath())
.role(gcp.getRole())
.jwtValidity(gcp.getJwtValidity());
if (StringUtils.hasText(gcp.getProjectId())) {
- builder.projectId(gcp.getProjectId());
+ builder.serviceAccountId(gcp.getProjectId());
}
if (StringUtils.hasText(gcp.getServiceAccountId())) {
builder.serviceAccountId(gcp.getServiceAccountId());
}
- GcpCredentialSupplier supplier = GcpCredentialProvider.getGoogleCredential(gcp);
- builder.credential(supplier.get());
+ builder.credentials(GcpCredentialProvider.getGoogleCredential(gcp));
- GcpIamAuthenticationOptions options = builder.build();
+ GcpIamCredentialsAuthenticationOptions options = builder.build();
- return new GcpIamAuthentication(options, vaultRestOperations);
+ return new GcpIamCredentialsAuthentication(options, vaultRestOperations);
}
@SuppressWarnings("deprecation")
private static class GcpCredentialProvider {
- public static GcpCredentialSupplier getGoogleCredential(VaultEnvironmentProperties.GcpIamProperties gcp) {
- return () -> {
-
+ public static GoogleCredentials getGoogleCredential(VaultEnvironmentProperties.GcpIamProperties gcp) {
+ try {
VaultEnvironmentProperties.GcpCredentials credentialProperties = gcp.getCredentials();
if (credentialProperties.getLocation() != null) {
- return GoogleCredential.fromStream(credentialProperties.getLocation().getInputStream());
+ return GoogleCredentials.fromStream(credentialProperties.getLocation().getInputStream());
}
if (StringUtils.hasText(credentialProperties.getEncodedKey())) {
- return GoogleCredential.fromStream(
+ return GoogleCredentials.fromStream(
new ByteArrayInputStream(Base64.getDecoder().decode(credentialProperties.getEncodedKey())));
}
- return GoogleCredential.getApplicationDefault();
- };
+ return GoogleCredentials.getApplicationDefault();
+ }
+ catch (IOException e) {
+ // TODO log
+ return GoogleCredentials.newBuilder().build();
+ }
}
}
diff --git a/spring-cloud-config-server/src/test/java/org/springframework/cloud/config/server/VanillaConfigServerIntegrationTests.java b/spring-cloud-config-server/src/test/java/org/springframework/cloud/config/server/VanillaConfigServerIntegrationTests.java
index 11edc671..0614a6ef 100644
--- a/spring-cloud-config-server/src/test/java/org/springframework/cloud/config/server/VanillaConfigServerIntegrationTests.java
+++ b/spring-cloud-config-server/src/test/java/org/springframework/cloud/config/server/VanillaConfigServerIntegrationTests.java
@@ -94,7 +94,7 @@ public class VanillaConfigServerIntegrationTests {
ResponseEntity response = new TestRestTemplate().exchange(
"http://localhost:" + this.port + "/invalid/default", HttpMethod.GET, getV2AcceptEntity(),
Environment.class);
- assertThat(response.getStatusCodeValue()).isEqualTo(500);
+ assertThat(response.getStatusCode().value()).isEqualTo(500);
}
}
diff --git a/spring-cloud-config-server/src/test/java/org/springframework/cloud/config/server/environment/VaultEnvironmentRepositoryTests.java b/spring-cloud-config-server/src/test/java/org/springframework/cloud/config/server/environment/VaultEnvironmentRepositoryTests.java
index a68f2211..1cda53f4 100644
--- a/spring-cloud-config-server/src/test/java/org/springframework/cloud/config/server/environment/VaultEnvironmentRepositoryTests.java
+++ b/spring-cloud-config-server/src/test/java/org/springframework/cloud/config/server/environment/VaultEnvironmentRepositoryTests.java
@@ -71,7 +71,8 @@ public class VaultEnvironmentRepositoryTests {
assertThat(e.getPropertySources().get(1).getName()).isEqualTo("vault:application");
assertThat(e.getPropertySources().get(1).getSource()).isEqualTo(Map.of("def-foo", "def-bar"));
- assertThat(requestHeaderCaptor.getValue().getHeaders()).containsEntry("X-Vault-Token", List.of("token"));
+ assertThat(requestHeaderCaptor.getValue().getHeaders().containsHeader("X-Vault-Token")).isTrue();
+ assertThat(requestHeaderCaptor.getValue().getHeaders().get("X-Vault-Token")).isEqualTo(List.of("token"));
}
@Test
@@ -244,7 +245,8 @@ public class VaultEnvironmentRepositoryTests {
assertThat(e.getPropertySources().get(1).getName()).isEqualTo("vault:application");
assertThat(e.getPropertySources().get(1).getSource()).isEqualTo(Map.of("def-foo", "def-bar"));
- assertThat(requestHeaderCaptor.getValue().getHeaders()).containsEntry("X-Vault-Token", List.of("token"));
+ assertThat(requestHeaderCaptor.getValue().getHeaders().containsHeader("X-Vault-Token")).isTrue();
+ assertThat(requestHeaderCaptor.getValue().getHeaders().get("X-Vault-Token")).isEqualTo(List.of("token"));
}
@Test
@@ -277,9 +279,11 @@ public class VaultEnvironmentRepositoryTests {
vaultEnvironmentRepository(properties).findOne("myapp", null, "lbl");
- assertThat(requestHeaderCaptor.getValue().getHeaders()).containsEntry("X-Vault-Namespace",
- List.of("mynamespace"));
- assertThat(requestHeaderCaptor.getValue().getHeaders()).containsEntry("X-Vault-Token", List.of("token"));
+ assertThat(requestHeaderCaptor.getValue().getHeaders().containsHeader("X-Vault-Namespace")).isTrue();
+ assertThat(requestHeaderCaptor.getValue().getHeaders().get("X-Vault-Namespace"))
+ .isEqualTo(List.of("mynamespace"));
+ assertThat(requestHeaderCaptor.getValue().getHeaders().containsHeader("X-Vault-Token")).isTrue();
+ assertThat(requestHeaderCaptor.getValue().getHeaders().get("X-Vault-Token")).isEqualTo(List.of("token"));
}
@Test
diff --git a/spring-cloud-config-server/src/test/java/org/springframework/cloud/config/server/environment/vault/SpringVaultClientConfigurationTests.java b/spring-cloud-config-server/src/test/java/org/springframework/cloud/config/server/environment/vault/SpringVaultClientConfigurationTests.java
index caa7baa8..f918f683 100644
--- a/spring-cloud-config-server/src/test/java/org/springframework/cloud/config/server/environment/vault/SpringVaultClientConfigurationTests.java
+++ b/spring-cloud-config-server/src/test/java/org/springframework/cloud/config/server/environment/vault/SpringVaultClientConfigurationTests.java
@@ -63,7 +63,7 @@ import org.springframework.vault.authentication.ClientAuthentication;
import org.springframework.vault.authentication.ClientCertificateAuthentication;
import org.springframework.vault.authentication.CubbyholeAuthentication;
import org.springframework.vault.authentication.GcpComputeAuthentication;
-import org.springframework.vault.authentication.GcpIamAuthentication;
+import org.springframework.vault.authentication.GcpIamCredentialsAuthentication;
import org.springframework.vault.authentication.KubernetesAuthentication;
import org.springframework.vault.authentication.PcfAuthentication;
import org.springframework.vault.authentication.TokenAuthentication;
@@ -231,7 +231,7 @@ class SpringVaultClientConfigurationTests {
properties.getGcpIam().setServiceAccountId("service-account");
properties.getGcpIam().getCredentials().setEncodedKey(base64(GCE_JSON));
- assertClientAuthenticationOfType(properties, GcpIamAuthentication.class);
+ assertClientAuthenticationOfType(properties, GcpIamCredentialsAuthentication.class);
}
@Test
diff --git a/spring-cloud-starter-config/pom.xml b/spring-cloud-starter-config/pom.xml
index f411ef1e..ca4647f7 100644
--- a/spring-cloud-starter-config/pom.xml
+++ b/spring-cloud-starter-config/pom.xml
@@ -6,10 +6,10 @@
org.springframework.cloud
spring-cloud-config
- 4.3.1-SNAPSHOT
+ 5.0.0-SNAPSHOT
spring-cloud-starter-config
- 4.3.1-SNAPSHOT
+ 5.0.0-SNAPSHOT
spring-cloud-starter-config
Spring Cloud Starter
https://projects.spring.io/spring-cloud