Polishing.

Add snapshot repository.
This commit is contained in:
Mark Paluch
2022-01-05 10:14:19 +01:00
parent 2c708e8835
commit 5749f1ab3e
20 changed files with 58 additions and 102 deletions

10
pom.xml
View File

@@ -798,4 +798,14 @@
<url>https://repo.spring.io/plugins-release</url>
</pluginRepository>
</pluginRepositories>
<repositories>
<repository>
<id>spring-libs-snapshot</id>
<url>https://repo.spring.io/libs-snapshot</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
</project>

View File

@@ -158,8 +158,7 @@ public class PcfAuthentication implements ClientAuthentication, AuthenticationSt
private static String doSign(byte[] message, String instanceKeyPem) throws CryptoException {
RSAPrivateKeySpec privateKey = PemObject.fromKey(instanceKeyPem)
.getRSAPrivateKeySpec();
RSAPrivateKeySpec privateKey = PemObject.fromKey(instanceKeyPem).getRSAPrivateKeySpec();
PSSSigner signer = new PSSSigner(new RSAEngine(), new SHA256Digest(), SALT_LENGTH);
signer.init(true, new RSAKeyParameters(true, privateKey.getModulus(), privateKey.getPrivateExponent()));

View File

@@ -18,7 +18,6 @@ package org.springframework.vault.client;
import java.net.URI;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import org.springframework.http.HttpHeaders;
import org.springframework.http.client.ClientHttpRequestFactory;
@@ -31,7 +30,6 @@ import org.springframework.lang.Nullable;
import org.springframework.util.Assert;
import org.springframework.web.client.RestTemplate;
import org.springframework.web.util.DefaultUriBuilderFactory;
import org.springframework.web.util.DefaultUriTemplateHandler;
import org.springframework.web.util.UriBuilder;
import org.springframework.web.util.UriBuilderFactory;
import org.springframework.web.util.UriComponents;
@@ -153,50 +151,18 @@ public class VaultClients {
return new PrefixAwareUriBuilderFactory(endpointProvider);
}
public static class PrefixAwareUriTemplateHandler extends DefaultUriTemplateHandler {
@Nullable
private final VaultEndpointProvider endpointProvider;
public PrefixAwareUriTemplateHandler() {
this.endpointProvider = null;
}
public PrefixAwareUriTemplateHandler(VaultEndpointProvider endpointProvider) {
this.endpointProvider = endpointProvider;
}
@Override
protected URI expandInternal(String uriTemplate, Map<String, ?> uriVariables) {
return super.expandInternal(prepareUriTemplate(getBaseUrl(), uriTemplate), uriVariables);
}
@Override
protected URI expandInternal(String uriTemplate, Object... uriVariables) {
return super.expandInternal(prepareUriTemplate(getBaseUrl(), uriTemplate), uriVariables);
}
@Override
public String getBaseUrl() {
if (this.endpointProvider != null) {
VaultEndpoint endpoint = this.endpointProvider.getVaultEndpoint();
return toBaseUri(endpoint);
}
return super.getBaseUrl();
}
}
/**
* @since 2.0
*/
public static class PrefixAwareUriBuilderFactory extends DefaultUriBuilderFactory {
@Nullable
private final VaultEndpointProvider endpointProvider;
public PrefixAwareUriBuilderFactory() {
this.endpointProvider = null;
}
public PrefixAwareUriBuilderFactory(VaultEndpointProvider endpointProvider) {
this.endpointProvider = endpointProvider;
}
@@ -208,13 +174,17 @@ public class VaultClients {
return UriComponentsBuilder.fromUriString(uriTemplate);
}
VaultEndpoint endpoint = this.endpointProvider.getVaultEndpoint();
if (endpointProvider != null) {
VaultEndpoint endpoint = this.endpointProvider.getVaultEndpoint();
String baseUri = toBaseUri(endpoint);
UriComponents uriComponents = UriComponentsBuilder.fromUriString(prepareUriTemplate(baseUri, uriTemplate))
.build();
String baseUri = toBaseUri(endpoint);
UriComponents uriComponents = UriComponentsBuilder
.fromUriString(prepareUriTemplate(baseUri, uriTemplate)).build();
return UriComponentsBuilder.fromUriString(baseUri).uriComponents(uriComponents);
return UriComponentsBuilder.fromUriString(baseUri).uriComponents(uriComponents);
}
return UriComponentsBuilder.fromUriString(uriTemplate.startsWith("/") ? uriTemplate : "/" + uriTemplate);
}
}

View File

@@ -45,12 +45,13 @@ public class VaultPartTreeQuery extends KeyValuePartTreeQuery {
* @param keyValueOperations must not be {@literal null}.
* @param queryCreator must not be {@literal null}.
*/
@SuppressWarnings({ "unchecked", "rawtypes" })
@SuppressWarnings({ "unchecked", "RedundantCast", "rawtypes" })
public VaultPartTreeQuery(QueryMethod queryMethod, QueryMethodEvaluationContextProvider evaluationContextProvider,
KeyValueOperations keyValueOperations, Class<? extends AbstractQueryCreator<?, ?>> queryCreator) {
super(queryMethod, evaluationContextProvider, keyValueOperations,
new VaultQueryCreatorFactory((MappingContext) keyValueOperations.getMappingContext()));
(QueryCreatorFactory) new VaultQueryCreatorFactory(
(MappingContext) keyValueOperations.getMappingContext()));
}
static class VaultQueryCreatorFactory

View File

@@ -23,7 +23,6 @@ import org.springframework.http.MediaType;
import org.springframework.test.web.client.MockRestServiceServer;
import org.springframework.vault.VaultException;
import org.springframework.vault.client.VaultClients;
import org.springframework.vault.client.VaultClients.PrefixAwareUriTemplateHandler;
import org.springframework.vault.support.VaultToken;
import org.springframework.web.client.RestTemplate;
@@ -50,7 +49,7 @@ class AppIdAuthenticationUnitTests {
void before() {
RestTemplate restTemplate = VaultClients.createRestTemplate();
restTemplate.setUriTemplateHandler(new PrefixAwareUriTemplateHandler());
restTemplate.setUriTemplateHandler(new VaultClients.PrefixAwareUriBuilderFactory());
this.mockRest = MockRestServiceServer.createServer(restTemplate);
this.restTemplate = restTemplate;
}

View File

@@ -28,7 +28,6 @@ import org.springframework.vault.VaultException;
import org.springframework.vault.authentication.AppRoleAuthenticationOptions.RoleId;
import org.springframework.vault.authentication.AppRoleAuthenticationOptions.SecretId;
import org.springframework.vault.client.VaultClients;
import org.springframework.vault.client.VaultClients.PrefixAwareUriTemplateHandler;
import org.springframework.vault.support.ObjectMapperSupplier;
import org.springframework.vault.support.VaultToken;
import org.springframework.web.client.RestTemplate;
@@ -62,7 +61,7 @@ class AppRoleAuthenticationUnitTests {
void before() {
RestTemplate restTemplate = VaultClients.createRestTemplate();
restTemplate.setUriTemplateHandler(new PrefixAwareUriTemplateHandler());
restTemplate.setUriTemplateHandler(new VaultClients.PrefixAwareUriBuilderFactory());
this.mockRest = MockRestServiceServer.createServer(restTemplate);
this.restTemplate = restTemplate;

View File

@@ -29,7 +29,6 @@ import org.springframework.test.web.client.MockRestServiceServer;
import org.springframework.vault.VaultException;
import org.springframework.vault.authentication.AuthenticationSteps.Node;
import org.springframework.vault.client.VaultClients;
import org.springframework.vault.client.VaultClients.PrefixAwareUriTemplateHandler;
import org.springframework.vault.support.VaultResponse;
import org.springframework.vault.support.VaultToken;
import org.springframework.web.client.RestTemplate;
@@ -60,7 +59,7 @@ class AuthenticationStepsExecutorUnitTests {
void before() {
RestTemplate restTemplate = VaultClients.createRestTemplate();
restTemplate.setUriTemplateHandler(new PrefixAwareUriTemplateHandler());
restTemplate.setUriTemplateHandler(new VaultClients.PrefixAwareUriBuilderFactory());
this.mockRest = MockRestServiceServer.createServer(restTemplate);
this.restTemplate = restTemplate;

View File

@@ -28,7 +28,6 @@ import org.springframework.test.web.client.MockRestServiceServer;
import org.springframework.vault.VaultException;
import org.springframework.vault.authentication.AwsEc2AuthenticationOptions.Nonce;
import org.springframework.vault.client.VaultClients;
import org.springframework.vault.client.VaultClients.PrefixAwareUriTemplateHandler;
import org.springframework.vault.support.VaultToken;
import org.springframework.web.client.RestTemplate;
@@ -55,7 +54,7 @@ class AwsEc2AuthenticationUnitTests {
void before() {
RestTemplate restTemplate = VaultClients.createRestTemplate();
restTemplate.setUriTemplateHandler(new PrefixAwareUriTemplateHandler());
restTemplate.setUriTemplateHandler(new VaultClients.PrefixAwareUriBuilderFactory());
this.mockRest = MockRestServiceServer.createServer(restTemplate);
this.restTemplate = restTemplate;

View File

@@ -25,7 +25,6 @@ import org.springframework.http.HttpMethod;
import org.springframework.http.MediaType;
import org.springframework.test.web.client.MockRestServiceServer;
import org.springframework.vault.client.VaultClients;
import org.springframework.vault.client.VaultClients.PrefixAwareUriTemplateHandler;
import org.springframework.vault.support.VaultToken;
import org.springframework.web.client.RestTemplate;
@@ -50,7 +49,7 @@ class AwsIamAuthenticationUnitTests {
void before() {
RestTemplate restTemplate = VaultClients.createRestTemplate();
restTemplate.setUriTemplateHandler(new PrefixAwareUriTemplateHandler());
restTemplate.setUriTemplateHandler(new VaultClients.PrefixAwareUriBuilderFactory());
this.mockRest = MockRestServiceServer.createServer(restTemplate);
this.restTemplate = restTemplate;

View File

@@ -22,7 +22,6 @@ import org.springframework.http.HttpMethod;
import org.springframework.http.MediaType;
import org.springframework.test.web.client.MockRestServiceServer;
import org.springframework.vault.client.VaultClients;
import org.springframework.vault.client.VaultClients.PrefixAwareUriTemplateHandler;
import org.springframework.vault.support.VaultToken;
import org.springframework.web.client.RestTemplate;
@@ -46,7 +45,7 @@ class AzureMsiAuthenticationUnitTests {
void before() {
RestTemplate restTemplate = VaultClients.createRestTemplate();
restTemplate.setUriTemplateHandler(new PrefixAwareUriTemplateHandler());
restTemplate.setUriTemplateHandler(new VaultClients.PrefixAwareUriBuilderFactory());
this.mockRest = MockRestServiceServer.createServer(restTemplate);
this.restTemplate = restTemplate;

View File

@@ -25,7 +25,6 @@ import org.springframework.http.MediaType;
import org.springframework.test.web.client.MockRestServiceServer;
import org.springframework.vault.VaultException;
import org.springframework.vault.client.VaultClients;
import org.springframework.vault.client.VaultClients.PrefixAwareUriTemplateHandler;
import org.springframework.vault.support.VaultToken;
import org.springframework.web.client.RestTemplate;
@@ -51,7 +50,7 @@ class ClientCertificateAuthenticationUnitTests {
void before() {
RestTemplate restTemplate = VaultClients.createRestTemplate();
restTemplate.setUriTemplateHandler(new PrefixAwareUriTemplateHandler());
restTemplate.setUriTemplateHandler(new VaultClients.PrefixAwareUriBuilderFactory());
this.mockRest = MockRestServiceServer.createServer(restTemplate);
this.restTemplate = restTemplate;

View File

@@ -25,7 +25,7 @@ import org.springframework.http.HttpMethod;
import org.springframework.http.MediaType;
import org.springframework.test.web.client.MockRestServiceServer;
import org.springframework.vault.VaultException;
import org.springframework.vault.client.VaultClients.PrefixAwareUriTemplateHandler;
import org.springframework.vault.client.VaultClients;
import org.springframework.vault.client.VaultHttpHeaders;
import org.springframework.vault.support.ObjectMapperSupplier;
import org.springframework.vault.support.VaultToken;
@@ -55,7 +55,7 @@ class CubbyholeAuthenticationUnitTests {
void before() {
RestTemplate restTemplate = new RestTemplate();
restTemplate.setUriTemplateHandler(new PrefixAwareUriTemplateHandler());
restTemplate.setUriTemplateHandler(new VaultClients.PrefixAwareUriBuilderFactory());
this.mockRest = MockRestServiceServer.createServer(restTemplate);
this.restTemplate = restTemplate;

View File

@@ -36,7 +36,7 @@ import org.junit.jupiter.api.Test;
import org.springframework.http.HttpMethod;
import org.springframework.http.MediaType;
import org.springframework.test.web.client.MockRestServiceServer;
import org.springframework.vault.client.VaultClients.PrefixAwareUriTemplateHandler;
import org.springframework.vault.client.VaultClients;
import org.springframework.vault.support.VaultToken;
import org.springframework.web.client.RestTemplate;
@@ -60,7 +60,7 @@ class GcpIamAuthenticationUnitTests {
void before() {
RestTemplate restTemplate = new RestTemplate();
restTemplate.setUriTemplateHandler(new PrefixAwareUriTemplateHandler());
restTemplate.setUriTemplateHandler(new VaultClients.PrefixAwareUriBuilderFactory());
this.mockRest = MockRestServiceServer.createServer(restTemplate);
this.restTemplate = restTemplate;

View File

@@ -36,7 +36,7 @@ import org.junit.jupiter.api.Test;
import org.springframework.http.HttpMethod;
import org.springframework.http.MediaType;
import org.springframework.test.web.client.MockRestServiceServer;
import org.springframework.vault.client.VaultClients.PrefixAwareUriTemplateHandler;
import org.springframework.vault.client.VaultClients;
import org.springframework.vault.support.VaultToken;
import org.springframework.web.client.RestTemplate;
@@ -77,7 +77,7 @@ class GcpIamCredentialsAuthenticationUnitTests {
void before() throws IOException {
RestTemplate restTemplate = new RestTemplate();
restTemplate.setUriTemplateHandler(new PrefixAwareUriTemplateHandler());
restTemplate.setUriTemplateHandler(new VaultClients.PrefixAwareUriBuilderFactory());
this.mockRest = MockRestServiceServer.createServer(restTemplate);
this.restTemplate = restTemplate;

View File

@@ -25,7 +25,6 @@ import org.springframework.http.MediaType;
import org.springframework.test.web.client.MockRestServiceServer;
import org.springframework.vault.VaultException;
import org.springframework.vault.client.VaultClients;
import org.springframework.vault.client.VaultClients.PrefixAwareUriTemplateHandler;
import org.springframework.vault.support.VaultToken;
import org.springframework.web.client.RestTemplate;
@@ -52,7 +51,7 @@ class KubernetesAuthenticationUnitTests {
void before() {
RestTemplate restTemplate = VaultClients.createRestTemplate();
restTemplate.setUriTemplateHandler(new PrefixAwareUriTemplateHandler());
restTemplate.setUriTemplateHandler(new VaultClients.PrefixAwareUriBuilderFactory());
this.mockRest = MockRestServiceServer.createServer(restTemplate);
this.restTemplate = restTemplate;

View File

@@ -21,7 +21,7 @@ import org.junit.jupiter.api.Test;
import org.springframework.http.HttpMethod;
import org.springframework.http.MediaType;
import org.springframework.test.web.client.MockRestServiceServer;
import org.springframework.vault.client.VaultClients.PrefixAwareUriTemplateHandler;
import org.springframework.vault.client.VaultClients;
import org.springframework.vault.client.VaultHttpHeaders;
import org.springframework.vault.support.VaultToken;
import org.springframework.web.client.RestTemplate;
@@ -47,7 +47,7 @@ class LoginTokenAdapterUnitTests {
void before() throws Exception {
RestTemplate restTemplate = new RestTemplate();
restTemplate.setUriTemplateHandler(new PrefixAwareUriTemplateHandler());
restTemplate.setUriTemplateHandler(new VaultClients.PrefixAwareUriBuilderFactory());
this.mockRest = MockRestServiceServer.createServer(restTemplate);
this.restTemplate = restTemplate;

View File

@@ -39,12 +39,10 @@ class LoginTokenUnitTests {
@Test
void toStringShouldPrintFields() {
assertThat(LoginToken.of("token")
.toString()).isEqualTo("LoginToken [renewable=false, leaseDuration=PT0S]");
assertThat(LoginToken.of("token").toString()).isEqualTo("LoginToken [renewable=false, leaseDuration=PT0S]");
assertThat(LoginToken.of("token".toCharArray(), Duration.ofSeconds(1)).toString())
.isEqualTo("LoginToken [renewable=false, leaseDuration=PT1S]");
assertThat(LoginToken.renewable("token".toCharArray(), Duration.ofSeconds(1))
.toString())
assertThat(LoginToken.renewable("token".toCharArray(), Duration.ofSeconds(1)).toString())
.isEqualTo("LoginToken [renewable=true, leaseDuration=PT1S]");
}

View File

@@ -26,7 +26,7 @@ import org.springframework.http.HttpMethod;
import org.springframework.http.MediaType;
import org.springframework.test.web.client.MockRestServiceServer;
import org.springframework.vault.client.VaultClients;
import org.springframework.vault.client.VaultClients.PrefixAwareUriTemplateHandler;
import org.springframework.vault.client.VaultEndpoint;
import org.springframework.vault.support.VaultToken;
import org.springframework.web.client.RestTemplate;
@@ -80,7 +80,7 @@ class PcfAuthenticationUnitTests {
void before() {
RestTemplate restTemplate = VaultClients.createRestTemplate();
restTemplate.setUriTemplateHandler(new PrefixAwareUriTemplateHandler());
restTemplate.setUriTemplateHandler(new VaultClients.PrefixAwareUriBuilderFactory());
this.mockRest = MockRestServiceServer.createServer(restTemplate);
this.restTemplate = restTemplate;

View File

@@ -46,7 +46,7 @@ class UsernamePasswordAuthenticationUnitTests {
void before() {
RestTemplate restTemplate = VaultClients.createRestTemplate();
restTemplate.setUriTemplateHandler(new VaultClients.PrefixAwareUriTemplateHandler());
restTemplate.setUriTemplateHandler(new VaultClients.PrefixAwareUriBuilderFactory());
this.mockRest = MockRestServiceServer.createServer(restTemplate);
this.restTemplate = restTemplate;

View File

@@ -24,14 +24,11 @@ import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpMethod;
import org.springframework.test.web.client.MockRestServiceServer;
import org.springframework.vault.client.VaultClients.PrefixAwareUriBuilderFactory;
import org.springframework.vault.client.VaultClients.PrefixAwareUriTemplateHandler;
import org.springframework.web.client.RestTemplate;
import static org.assertj.core.api.Assertions.assertThat;
import static org.springframework.test.web.client.match.MockRestRequestMatchers.header;
import static org.springframework.test.web.client.match.MockRestRequestMatchers.method;
import static org.springframework.test.web.client.match.MockRestRequestMatchers.requestTo;
import static org.springframework.test.web.client.response.MockRestResponseCreators.withSuccess;
import static org.assertj.core.api.Assertions.*;
import static org.springframework.test.web.client.match.MockRestRequestMatchers.*;
import static org.springframework.test.web.client.response.MockRestResponseCreators.*;
/**
* Unit tests for {@link org.springframework.vault.client.VaultClients}.
@@ -40,11 +37,12 @@ import static org.springframework.test.web.client.response.MockRestResponseCreat
*/
class VaultClientsUnitTests {
VaultEndpoint localhost = VaultEndpoint.create("localhost", 8200);
@Test
void uriHandlerShouldPrefixRelativeUrl() {
VaultEndpoint localhost = VaultEndpoint.create("localhost", 8200);
PrefixAwareUriTemplateHandler handler = new PrefixAwareUriTemplateHandler(() -> localhost);
PrefixAwareUriBuilderFactory handler = new PrefixAwareUriBuilderFactory(() -> localhost);
URI uri = handler.expand("/path/{bar}", "bar");
@@ -55,7 +53,7 @@ class VaultClientsUnitTests {
void uriHandlerShouldNotPrefixAbsoluteUrl() {
VaultEndpoint localhost = VaultEndpoint.create("localhost", 8200);
PrefixAwareUriTemplateHandler handler = new PrefixAwareUriTemplateHandler(() -> localhost);
PrefixAwareUriBuilderFactory handler = new PrefixAwareUriBuilderFactory(() -> localhost);
URI uri = handler.expand("https://foo/path/{bar}", "bar");
@@ -89,7 +87,7 @@ class VaultClientsUnitTests {
RestTemplate restTemplate = VaultClients.createRestTemplate();
restTemplate.getInterceptors().add(VaultClients.createNamespaceInterceptor("foo/bar"));
restTemplate.setUriTemplateHandler(new PrefixAwareUriTemplateHandler());
restTemplate.setUriTemplateHandler(new PrefixAwareUriBuilderFactory());
MockRestServiceServer mockRest = MockRestServiceServer.createServer(restTemplate);
@@ -104,7 +102,7 @@ class VaultClientsUnitTests {
RestTemplate restTemplate = VaultClients.createRestTemplate();
restTemplate.getInterceptors().add(VaultClients.createNamespaceInterceptor("foo/bar"));
restTemplate.setUriTemplateHandler(new PrefixAwareUriTemplateHandler());
restTemplate.setUriTemplateHandler(new PrefixAwareUriBuilderFactory());
MockRestServiceServer mockRest = MockRestServiceServer.createServer(restTemplate);
@@ -117,16 +115,4 @@ class VaultClientsUnitTests {
restTemplate.exchange("/auth/foo", HttpMethod.GET, new HttpEntity<>(headers), String.class);
}
@Test
void shouldApplyBasepath() {
VaultEndpoint localhost = VaultEndpoint.create("localhost", 8200);
localhost.setPath("foo/v1");
PrefixAwareUriTemplateHandler handler = new PrefixAwareUriTemplateHandler(() -> localhost);
URI uri = handler.expand("/path/{bar}", "bar");
assertThat(uri).hasHost("localhost").hasPort(8200).hasPath("/foo/v1/path/bar");
}
}