Add certificate integration tests
This commit is contained in:
@@ -0,0 +1,90 @@
|
||||
/*
|
||||
* Copyright 2016-2017 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.credhub.integration;
|
||||
|
||||
import org.junit.After;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
import org.springframework.credhub.core.CredHubException;
|
||||
import org.springframework.credhub.core.certificate.CredHubCertificateOperations;
|
||||
import org.springframework.credhub.core.credential.CredHubCredentialOperations;
|
||||
import org.springframework.credhub.support.CertificateSummary;
|
||||
import org.springframework.credhub.support.CredentialDetails;
|
||||
import org.springframework.credhub.support.CredentialSummary;
|
||||
import org.springframework.credhub.support.CredentialType;
|
||||
import org.springframework.credhub.support.SimpleCredentialName;
|
||||
import org.springframework.credhub.support.certificate.CertificateCredential;
|
||||
import org.springframework.credhub.support.certificate.CertificateParameters;
|
||||
import org.springframework.credhub.support.certificate.CertificateParametersRequest;
|
||||
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
public class CertificateIntegrationTests extends CredHubIntegrationTests {
|
||||
private static final SimpleCredentialName CREDENTIAL_NAME =
|
||||
new SimpleCredentialName("spring-credhub", "integration-test", "test-certificate");
|
||||
|
||||
private CredHubCredentialOperations credentials;
|
||||
private CredHubCertificateOperations certificates;
|
||||
|
||||
@Before
|
||||
public void setUp() {
|
||||
credentials = operations.credentials();
|
||||
certificates = operations.certificates();
|
||||
|
||||
try {
|
||||
credentials.deleteByName(CREDENTIAL_NAME);
|
||||
} catch (CredHubException e) {
|
||||
// ignore failing deletes on cleanup
|
||||
}
|
||||
}
|
||||
|
||||
@After
|
||||
public void tearDown() {
|
||||
credentials.deleteByName(CREDENTIAL_NAME);
|
||||
|
||||
List<CredentialSummary> afterDelete = credentials.findByName(CREDENTIAL_NAME);
|
||||
assertThat(afterDelete).hasSize(0);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void generateCertificate() {
|
||||
CredentialDetails<CertificateCredential> certificate = credentials.generate(CertificateParametersRequest.builder()
|
||||
.name(CREDENTIAL_NAME)
|
||||
.parameters(CertificateParameters.builder()
|
||||
.commonName("example.com")
|
||||
.selfSign(true)
|
||||
.build())
|
||||
.build());
|
||||
assertThat(certificate.getName().getName()).isEqualTo(CREDENTIAL_NAME.getName());
|
||||
assertThat(certificate.getCredentialType()).isEqualTo(CredentialType.CERTIFICATE);
|
||||
assertThat(certificate.getId()).isNotNull();
|
||||
assertThat(certificate.getValue().getCertificate()).isNotNull();
|
||||
assertThat(certificate.getValue().getCertificateAuthority()).isNotNull();
|
||||
assertThat(certificate.getValue().getPrivateKey()).isNotNull();
|
||||
|
||||
CertificateSummary byName = certificates.getByName(CREDENTIAL_NAME);
|
||||
assertThat(byName.getName()).isEqualTo(CREDENTIAL_NAME.getName());
|
||||
assertThat(byName.getId()).isNotNull();
|
||||
|
||||
List<CertificateSummary> allCertificates = certificates.getAll();
|
||||
assertThat(allCertificates.size()).isGreaterThan(0);
|
||||
assertThat(allCertificates).extracting("name").contains(CREDENTIAL_NAME.getName());
|
||||
}
|
||||
}
|
||||
@@ -16,6 +16,7 @@
|
||||
|
||||
package org.springframework.credhub.integration;
|
||||
|
||||
import org.junit.After;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
import org.springframework.credhub.core.CredHubException;
|
||||
@@ -43,10 +44,19 @@ public class CredentialIntegrationTests extends CredHubIntegrationTests {
|
||||
|
||||
private CredHubCredentialOperations credentials;
|
||||
|
||||
private PasswordParameters.PasswordParametersBuilder passwordParameters;
|
||||
|
||||
@Before
|
||||
public void setUp() {
|
||||
credentials = operations.credentials();
|
||||
|
||||
passwordParameters = PasswordParameters.builder()
|
||||
.length(12)
|
||||
.excludeLower(false)
|
||||
.excludeUpper(false)
|
||||
.excludeNumber(false)
|
||||
.includeSpecial(true);
|
||||
|
||||
try {
|
||||
credentials.deleteByName(CREDENTIAL_NAME);
|
||||
} catch (CredHubException e) {
|
||||
@@ -54,6 +64,14 @@ public class CredentialIntegrationTests extends CredHubIntegrationTests {
|
||||
}
|
||||
}
|
||||
|
||||
@After
|
||||
public void tearDown() {
|
||||
credentials.deleteByName(CREDENTIAL_NAME);
|
||||
|
||||
List<CredentialSummary> afterDelete = credentials.findByName(CREDENTIAL_NAME);
|
||||
assertThat(afterDelete).hasSize(0);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void writeCredential() {
|
||||
CredentialDetails<ValueCredential> written = credentials.write(ValueCredentialRequest.builder()
|
||||
@@ -82,11 +100,6 @@ public class CredentialIntegrationTests extends CredHubIntegrationTests {
|
||||
List<CredentialSummary> foundByPath = credentials.findByPath("/spring-credhub/integration-test");
|
||||
assertThat(foundByPath).hasSize(1);
|
||||
assertThat(foundByPath).extracting("name").extracting("name").containsExactly(CREDENTIAL_NAME.getName());
|
||||
|
||||
credentials.deleteByName(CREDENTIAL_NAME);
|
||||
|
||||
List<CredentialSummary> afterDelete = credentials.findByName(CREDENTIAL_NAME);
|
||||
assertThat(afterDelete).hasSize(0);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -137,13 +150,7 @@ public class CredentialIntegrationTests extends CredHubIntegrationTests {
|
||||
CredentialDetails<UserCredential> generated = credentials.generate(UserParametersRequest.builder()
|
||||
.name(CREDENTIAL_NAME)
|
||||
.username("test-user")
|
||||
.parameters(PasswordParameters.builder()
|
||||
.length(12)
|
||||
.excludeLower(false)
|
||||
.excludeUpper(false)
|
||||
.excludeNumber(false)
|
||||
.includeSpecial(true)
|
||||
.build())
|
||||
.parameters(passwordParameters.build())
|
||||
.build());
|
||||
assertThat(generated.getName().getName()).isEqualTo(CREDENTIAL_NAME.getName());
|
||||
assertThat(generated.getCredentialType()).isEqualTo(CredentialType.USER);
|
||||
@@ -160,10 +167,86 @@ public class CredentialIntegrationTests extends CredHubIntegrationTests {
|
||||
assertThat(regenerated.getValue().getPassword()).matches("^[a-zA-Z0-9\\p{Punct}]{12}$");
|
||||
assertThat(regenerated.getValue().getPassword()).isNotEqualTo(generated.getValue().getPassword());
|
||||
assertThat(regenerated.getValue().getPasswordHash()).isNotEqualTo(generated.getValue().getPasswordHash());
|
||||
}
|
||||
|
||||
credentials.deleteByName(CREDENTIAL_NAME);
|
||||
@Test
|
||||
public void generateNoOverwriteCredential() {
|
||||
CredentialDetails<UserCredential> generated = credentials.generate(UserParametersRequest.builder()
|
||||
.name(CREDENTIAL_NAME)
|
||||
.username("test-user")
|
||||
.parameters(passwordParameters.build())
|
||||
.build());
|
||||
assertThat(generated.getName().getName()).isEqualTo(CREDENTIAL_NAME.getName());
|
||||
assertThat(generated.getValue().getUsername()).isEqualTo("test-user");
|
||||
assertThat(generated.getValue().getPassword()).matches("^[a-zA-Z0-9\\p{Punct}]{12}$");
|
||||
assertThat(generated.getValue().getPasswordHash()).isNotNull();
|
||||
|
||||
List<CredentialSummary> afterDelete = credentials.findByName(CREDENTIAL_NAME);
|
||||
assertThat(afterDelete).hasSize(0);
|
||||
CredentialDetails<UserCredential> noOverwrite = credentials.generate(UserParametersRequest.builder()
|
||||
.name(CREDENTIAL_NAME)
|
||||
.mode(WriteMode.NO_OVERWRITE)
|
||||
.username("test-user")
|
||||
.parameters(passwordParameters.build())
|
||||
.build());
|
||||
assertThat(noOverwrite.getValue().getUsername()).isEqualTo("test-user");
|
||||
assertThat(noOverwrite.getValue().getPassword()).isEqualTo(generated.getValue().getPassword());
|
||||
assertThat(noOverwrite.getValue().getPasswordHash()).isEqualTo(generated.getValue().getPasswordHash());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void generateOverwriteCredential() {
|
||||
CredentialDetails<UserCredential> generated = credentials.generate(UserParametersRequest.builder()
|
||||
.name(CREDENTIAL_NAME)
|
||||
.username("test-user")
|
||||
.parameters(passwordParameters.build())
|
||||
.build());
|
||||
assertThat(generated.getName().getName()).isEqualTo(CREDENTIAL_NAME.getName());
|
||||
assertThat(generated.getValue().getUsername()).isEqualTo("test-user");
|
||||
assertThat(generated.getValue().getPassword()).matches("^[a-zA-Z0-9\\p{Punct}]{12}$");
|
||||
assertThat(generated.getValue().getPasswordHash()).isNotNull();
|
||||
|
||||
CredentialDetails<UserCredential> overwrite = credentials.generate(UserParametersRequest.builder()
|
||||
.name(CREDENTIAL_NAME)
|
||||
.mode(WriteMode.OVERWRITE)
|
||||
.username("test-user")
|
||||
.parameters(passwordParameters.build())
|
||||
.build());
|
||||
assertThat(overwrite.getValue().getUsername()).isEqualTo("test-user");
|
||||
assertThat(overwrite.getValue().getPassword()).isNotEqualTo(generated.getValue().getPassword());
|
||||
assertThat(overwrite.getValue().getPasswordHash()).isNotEqualTo(generated.getValue().getPasswordHash());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void generateConvergeCredential() {
|
||||
CredentialDetails<UserCredential> generated = credentials.generate(UserParametersRequest.builder()
|
||||
.name(CREDENTIAL_NAME)
|
||||
.username("test-user")
|
||||
.parameters(passwordParameters.build())
|
||||
.build());
|
||||
assertThat(generated.getName().getName()).isEqualTo(CREDENTIAL_NAME.getName());
|
||||
assertThat(generated.getValue().getUsername()).isEqualTo("test-user");
|
||||
assertThat(generated.getValue().getPassword()).matches("^[a-zA-Z0-9\\p{Punct}]{12}$");
|
||||
assertThat(generated.getValue().getPasswordHash()).isNotNull();
|
||||
|
||||
CredentialDetails<UserCredential> convergeWithoutChanges = credentials.generate(UserParametersRequest.builder()
|
||||
.name(CREDENTIAL_NAME)
|
||||
.mode(WriteMode.CONVERGE)
|
||||
.username("test-user")
|
||||
.parameters(passwordParameters.build())
|
||||
.build());
|
||||
assertThat(convergeWithoutChanges.getValue().getUsername()).isEqualTo("test-user");
|
||||
assertThat(convergeWithoutChanges.getValue().getPassword()).isEqualTo(generated.getValue().getPassword());
|
||||
assertThat(convergeWithoutChanges.getValue().getPasswordHash()).isEqualTo(generated.getValue().getPasswordHash());
|
||||
|
||||
passwordParameters.includeSpecial(false);
|
||||
|
||||
CredentialDetails<UserCredential> convergeWithChanges = credentials.generate(UserParametersRequest.builder()
|
||||
.name(CREDENTIAL_NAME)
|
||||
.mode(WriteMode.CONVERGE)
|
||||
.username("test-user")
|
||||
.parameters(passwordParameters.build())
|
||||
.build());
|
||||
assertThat(convergeWithChanges.getValue().getUsername()).isEqualTo("test-user");
|
||||
assertThat(convergeWithChanges.getValue().getPassword()).isNotEqualTo(generated.getValue().getPassword());
|
||||
assertThat(convergeWithChanges.getValue().getPasswordHash()).isNotEqualTo(generated.getValue().getPasswordHash());
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user