Skip to content

Commit c96ee3f

Browse files
committed
Move off deprecated AWS API.
Refine also deprecation warnings. See gh-925
1 parent 4008c59 commit c96ee3f

File tree

5 files changed

+21
-32
lines changed

5 files changed

+21
-32
lines changed

spring-vault-core/src/main/java/org/springframework/vault/authentication/AwsIamAuthentication.java

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -28,10 +28,12 @@
2828
import software.amazon.awssdk.auth.credentials.AwsCredentials;
2929
import software.amazon.awssdk.auth.signer.Aws4Signer;
3030
import software.amazon.awssdk.auth.signer.params.Aws4SignerParams;
31+
import software.amazon.awssdk.http.ContentStreamProvider;
3132
import software.amazon.awssdk.http.SdkHttpFullRequest;
3233
import software.amazon.awssdk.http.SdkHttpMethod;
34+
import software.amazon.awssdk.http.auth.aws.signer.AwsV4HttpSigner;
35+
import software.amazon.awssdk.http.auth.spi.signer.SignedRequest;
3336
import software.amazon.awssdk.regions.Region;
34-
import tools.jackson.databind.ObjectMapper;
3537

3638
import org.springframework.http.HttpHeaders;
3739
import org.springframework.http.MediaType;
@@ -212,24 +214,25 @@ private static String getSignedHeaders(AwsIamAuthenticationOptions options, AwsC
212214

213215
Map<String, List<String>> headers = createIamRequestHeaders(options);
214216

217+
ContentStreamProvider contentStreamProvider = () -> new ByteArrayInputStream(REQUEST_BODY.getBytes());
215218
SdkHttpFullRequest.Builder builder = SdkHttpFullRequest.builder()
216-
.contentStreamProvider(() -> new ByteArrayInputStream(REQUEST_BODY.getBytes()))
219+
.contentStreamProvider(contentStreamProvider)
217220
.headers(headers)
218221
.method(SdkHttpMethod.POST)
219222
.uri(options.getEndpointUri());
223+
220224
SdkHttpFullRequest request = builder.build();
225+
AwsV4HttpSigner signer = AwsV4HttpSigner.create();
221226

222-
Aws4Signer signer = Aws4Signer.create();
223-
Aws4SignerParams signerParams = Aws4SignerParams.builder()
224-
.awsCredentials(credentials)
225-
.signingName("sts")
226-
.signingRegion(region)
227-
.build();
228-
SdkHttpFullRequest signedRequest = signer.sign(request, signerParams);
227+
SignedRequest signedRequest = signer.sign(r -> r.identity(credentials)
228+
.request(request)
229+
.payload(contentStreamProvider)
230+
.putProperty(AwsV4HttpSigner.SERVICE_SIGNING_NAME, "sts")
231+
.putProperty(AwsV4HttpSigner.REGION_NAME, region.id()));
229232

230233
return JacksonCompat.instance()
231234
.getObjectMapperAccessor()
232-
.writeValueAsString(new LinkedHashMap<>(signedRequest.headers()));
235+
.writeValueAsString(new LinkedHashMap<>(signedRequest.request().headers()));
233236
}
234237

235238
private static Map<String, List<String>> createIamRequestHeaders(AwsIamAuthenticationOptions options) {

spring-vault-core/src/main/java/org/springframework/vault/client/ClientHttpRequestFactoryFactory.java

Lines changed: 5 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -15,21 +15,9 @@
1515
*/
1616
package org.springframework.vault.client;
1717

18-
import javax.net.ssl.KeyManager;
19-
import javax.net.ssl.KeyManagerFactory;
20-
import javax.net.ssl.KeyManagerFactorySpi;
21-
import javax.net.ssl.ManagerFactoryParameters;
22-
import javax.net.ssl.SSLContext;
23-
import javax.net.ssl.SSLEngine;
24-
import javax.net.ssl.TrustManager;
25-
import javax.net.ssl.TrustManagerFactory;
26-
import javax.net.ssl.X509ExtendedKeyManager;
27-
import javax.net.ssl.X509TrustManager;
28-
2918
import java.io.IOException;
3019
import java.net.ProxySelector;
3120
import java.security.GeneralSecurityException;
32-
import java.security.KeyStore;
3321

3422
import javax.net.ssl.SSLContext;
3523

@@ -40,9 +28,10 @@
4028
import org.apache.hc.client5.http.impl.classic.HttpClients;
4129
import org.apache.hc.client5.http.impl.io.PoolingHttpClientConnectionManagerBuilder;
4230
import org.apache.hc.client5.http.impl.routing.SystemDefaultRoutePlanner;
31+
import org.apache.hc.client5.http.ssl.DefaultClientTlsStrategy;
4332
import org.apache.hc.client5.http.ssl.HttpsSupport;
44-
import org.apache.hc.client5.http.ssl.SSLConnectionSocketFactory;
4533
import org.apache.hc.core5.http.io.SocketConfig;
34+
import org.apache.hc.core5.reactor.ssl.SSLBufferMode;
4635
import org.apache.hc.core5.util.Timeout;
4736

4837
import org.springframework.http.client.ClientHttpRequestFactory;
@@ -54,12 +43,8 @@
5443
import org.springframework.http.client.reactive.JettyClientHttpConnector;
5544
import org.springframework.util.Assert;
5645
import org.springframework.util.ClassUtils;
57-
import org.springframework.util.StringUtils;
5846
import org.springframework.vault.support.ClientOptions;
5947
import org.springframework.vault.support.SslConfiguration;
60-
import org.springframework.vault.support.SslConfiguration.KeyConfiguration;
61-
62-
import static org.springframework.vault.client.ClientConfiguration.*;
6348

6449
/**
6550
* Factory for {@link ClientHttpRequestFactory} that supports Apache HTTP Components,
@@ -210,9 +195,9 @@ public static HttpClientBuilder getHttpClientBuilder(ClientOptions options, SslC
210195
enabledCipherSuites = sslConfiguration.getEnabledCipherSuites().toArray(new String[0]);
211196
}
212197

213-
SSLConnectionSocketFactory sslSocketFactory = new SSLConnectionSocketFactory(sslContext,
214-
enabledProtocols, enabledCipherSuites, HttpsSupport.getDefaultHostnameVerifier());
215-
connectionManagerBuilder.setSSLSocketFactory(sslSocketFactory);
198+
DefaultClientTlsStrategy tlsStrategy = new DefaultClientTlsStrategy(sslContext, enabledProtocols,
199+
enabledCipherSuites, SSLBufferMode.STATIC, HttpsSupport.getDefaultHostnameVerifier());
200+
connectionManagerBuilder.setTlsSocketStrategy(tlsStrategy);
216201
}
217202

218203
httpClientBuilder.setDefaultRequestConfig(requestConfig);

spring-vault-core/src/main/java/org/springframework/vault/core/ReactiveVaultVersionedKeyValueTemplate.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,7 @@ public <T> Mono<Versioned<T>> get(String path, Version version, Class<T> respons
8585
return doRead(path, version, responseType);
8686
}
8787

88+
@SuppressWarnings("removal")
8889
private <T> Mono<Versioned<T>> doRead(String path, Version version, Class<T> responseType) {
8990

9091
String secretPath = version.isVersioned()

spring-vault-core/src/main/java/org/springframework/vault/core/VaultVersionedKeyValueTemplate.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ public <T> Versioned<T> get(String path, Version version, Class<T> responseType)
8686
}
8787

8888
@Nullable
89-
@SuppressWarnings("NullAway")
89+
@SuppressWarnings({ "NullAway", "removal" })
9090
private <T> Versioned<T> doRead(String path, Version version, Class<T> responseType) {
9191

9292
String secretPath = version.isVersioned()

spring-vault-core/src/main/java/org/springframework/vault/support/PolicyJackson2.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ public Policy deserialize(JsonParser p, DeserializationContext ctxt) throws IOEx
8585

8686
while (p.currentToken() == JsonToken.FIELD_NAME) {
8787

88-
String path = p.getCurrentName();
88+
String path = p.currentName();
8989
p.nextToken();
9090

9191
Assert.isTrue(p.getCurrentToken() == JsonToken.START_OBJECT,

0 commit comments

Comments
 (0)