summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--certServiceClient/src/main/java/org/onap/aaf/certservice/client/certification/conversion/ArtifactsCreatorProvider.java19
-rw-r--r--certServiceClient/src/main/java/org/onap/aaf/certservice/client/configuration/factory/AbstractConfigurationFactory.java8
-rw-r--r--certServiceClient/src/main/java/org/onap/aaf/certservice/client/configuration/factory/ClientConfigurationFactory.java12
-rw-r--r--certServiceClient/src/test/java/org/onap/aaf/certservice/client/configuration/factory/AbstractConfigurationFactoryTest.java14
-rw-r--r--certServiceClient/src/test/java/org/onap/aaf/certservice/client/configuration/factory/ClientConfigurationFactoryTest.java (renamed from certServiceClient/src/test/java/org/onap/aaf/certservice/client/configuration/model/ClientConfigurationFactoryTest.java)34
-rw-r--r--certServiceClient/src/test/java/org/onap/aaf/certservice/client/configuration/factory/CsrConfigurationFactoryTest.java (renamed from certServiceClient/src/test/java/org/onap/aaf/certservice/client/configuration/model/CsrConfigurationFactoryTest.java)4
6 files changed, 77 insertions, 14 deletions
diff --git a/certServiceClient/src/main/java/org/onap/aaf/certservice/client/certification/conversion/ArtifactsCreatorProvider.java b/certServiceClient/src/main/java/org/onap/aaf/certservice/client/certification/conversion/ArtifactsCreatorProvider.java
index ac1eda1a..4ed86a4d 100644
--- a/certServiceClient/src/main/java/org/onap/aaf/certservice/client/certification/conversion/ArtifactsCreatorProvider.java
+++ b/certServiceClient/src/main/java/org/onap/aaf/certservice/client/certification/conversion/ArtifactsCreatorProvider.java
@@ -19,8 +19,7 @@
package org.onap.aaf.certservice.client.certification.conversion;
public enum ArtifactsCreatorProvider {
-
- P12 {
+ P12("P12") {
@Override
ArtifactsCreator create(String outputPath) {
return new PKCS12ArtifactsCreator(
@@ -29,21 +28,31 @@ public enum ArtifactsCreatorProvider {
new PemToPKCS12Converter());
}
},
- JKS {
+ JKS("JKS") {
@Override
ArtifactsCreator create(String outputPath) {
return null;
}
},
- PEM {
+ PEM("PEM") {
@Override
ArtifactsCreator create(String outputPath) {
return null;
}
};
+ private final String name;
+
+ ArtifactsCreatorProvider(String name) {
+ this.name = name;
+ }
+
public static ArtifactsCreator getCreator(String outputType, String outputPath) {
- return valueOf(outputType).create(outputPath);
+ return valueOf(outputType).create(outputPath);
+ }
+
+ public String getName() {
+ return name;
}
abstract ArtifactsCreator create(String outputPath);
diff --git a/certServiceClient/src/main/java/org/onap/aaf/certservice/client/configuration/factory/AbstractConfigurationFactory.java b/certServiceClient/src/main/java/org/onap/aaf/certservice/client/configuration/factory/AbstractConfigurationFactory.java
index b72ef7a1..70faa6b4 100644
--- a/certServiceClient/src/main/java/org/onap/aaf/certservice/client/configuration/factory/AbstractConfigurationFactory.java
+++ b/certServiceClient/src/main/java/org/onap/aaf/certservice/client/configuration/factory/AbstractConfigurationFactory.java
@@ -20,6 +20,8 @@
package org.onap.aaf.certservice.client.configuration.factory;
+
+import org.onap.aaf.certservice.client.certification.conversion.ArtifactsCreatorProvider;
import org.onap.aaf.certservice.client.configuration.exception.ClientConfigurationException;
import org.onap.aaf.certservice.client.configuration.exception.CsrConfigurationException;
import org.onap.aaf.certservice.client.configuration.model.ConfigurationModel;
@@ -55,6 +57,12 @@ public abstract class AbstractConfigurationFactory<T extends ConfigurationModel>
return Arrays.asList(Locale.getISOCountries()).contains(country);
}
+ public boolean isOutputTypeValid(String outputType) {
+ return Arrays.stream(ArtifactsCreatorProvider.values())
+ .map(ArtifactsCreatorProvider::getName)
+ .anyMatch(name -> name.equals(outputType));
+ }
+
private boolean isPortNumberPresent(String stringToCheck) {
return Pattern.compile(":[0-9]{1,5}").matcher(stringToCheck).find();
}
diff --git a/certServiceClient/src/main/java/org/onap/aaf/certservice/client/configuration/factory/ClientConfigurationFactory.java b/certServiceClient/src/main/java/org/onap/aaf/certservice/client/configuration/factory/ClientConfigurationFactory.java
index 793799e2..d8498d84 100644
--- a/certServiceClient/src/main/java/org/onap/aaf/certservice/client/configuration/factory/ClientConfigurationFactory.java
+++ b/certServiceClient/src/main/java/org/onap/aaf/certservice/client/configuration/factory/ClientConfigurationFactory.java
@@ -27,6 +27,8 @@ import org.onap.aaf.certservice.client.configuration.model.ClientConfiguration;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import java.util.Optional;
+
public class ClientConfigurationFactory extends AbstractConfigurationFactory<ClientConfiguration> {
private static final Logger LOGGER = LoggerFactory.getLogger(ClientConfigurationFactory.class);
@@ -41,6 +43,7 @@ public class ClientConfigurationFactory extends AbstractConfigurationFactory<Cli
ClientConfiguration configuration = new ClientConfiguration();
+
envsForClient.getUrlToCertService()
.map(configuration::setUrlToCertService);
@@ -57,8 +60,13 @@ public class ClientConfigurationFactory extends AbstractConfigurationFactory<Cli
.map(configuration::setCaName)
.orElseThrow(() -> new ClientConfigurationException(ClientConfigurationEnvs.CA_NAME + " is invalid."));
- envsForClient.getOutputType()
- .map(configuration::setOutputType);
+ Optional<String> outputType = envsForClient.getOutputType();
+
+ if (outputType.isPresent()) {
+ outputType.filter(this::isOutputTypeValid)
+ .map(configuration::setOutputType)
+ .orElseThrow(() -> new ClientConfigurationException(ClientConfigurationEnvs.OUTPUT_TYPE + " is invalid."));
+ }
LOGGER.info("Successful validation of Client configuration. Configuration data: {}", configuration.toString());
diff --git a/certServiceClient/src/test/java/org/onap/aaf/certservice/client/configuration/factory/AbstractConfigurationFactoryTest.java b/certServiceClient/src/test/java/org/onap/aaf/certservice/client/configuration/factory/AbstractConfigurationFactoryTest.java
index c5955555..6273e2a6 100644
--- a/certServiceClient/src/test/java/org/onap/aaf/certservice/client/configuration/factory/AbstractConfigurationFactoryTest.java
+++ b/certServiceClient/src/test/java/org/onap/aaf/certservice/client/configuration/factory/AbstractConfigurationFactoryTest.java
@@ -28,7 +28,7 @@ import static org.mockito.Mockito.mock;
public class AbstractConfigurationFactoryTest {
- private AbstractConfigurationFactory cut = mock(AbstractConfigurationFactory.class, Mockito.CALLS_REAL_METHODS);
+ private final AbstractConfigurationFactory cut = mock(AbstractConfigurationFactory.class, Mockito.CALLS_REAL_METHODS);
@ParameterizedTest
@ValueSource(strings = {"/var/log", "/", "/var/log/", "/second_var", "/second-var"})
@@ -77,4 +77,16 @@ public class AbstractConfigurationFactoryTest {
public void shouldRejectInvalidCommonName(String commonName) {
assertThat(cut.isCommonNameValid(commonName)).isFalse();
}
+
+ @ParameterizedTest
+ @ValueSource(strings = {"JKS", "P12", "PEM"})
+ public void shouldAcceptValidOutputType(String outputType) {
+ assertThat(cut.isOutputTypeValid(outputType)).isTrue();
+ }
+
+ @ParameterizedTest
+ @ValueSource(strings = {"jks", "p12", "pem", "", "pass", "!@$#pp"})
+ public void shouldRejectInvalidOutputType(String outputType) {
+ assertThat(cut.isOutputTypeValid(outputType)).isFalse();
+ }
}
diff --git a/certServiceClient/src/test/java/org/onap/aaf/certservice/client/configuration/model/ClientConfigurationFactoryTest.java b/certServiceClient/src/test/java/org/onap/aaf/certservice/client/configuration/factory/ClientConfigurationFactoryTest.java
index f4f92495..7239b21a 100644
--- a/certServiceClient/src/test/java/org/onap/aaf/certservice/client/configuration/model/ClientConfigurationFactoryTest.java
+++ b/certServiceClient/src/test/java/org/onap/aaf/certservice/client/configuration/factory/ClientConfigurationFactoryTest.java
@@ -18,13 +18,13 @@
* ============LICENSE_END=========================================================
*/
-package org.onap.aaf.certservice.client.configuration.model;
+package org.onap.aaf.certservice.client.configuration.factory;
import org.junit.jupiter.api.Test;
import org.onap.aaf.certservice.client.configuration.ClientConfigurationEnvs;
import org.onap.aaf.certservice.client.configuration.EnvsForClient;
import org.onap.aaf.certservice.client.configuration.exception.ClientConfigurationException;
-import org.onap.aaf.certservice.client.configuration.factory.ClientConfigurationFactory;
+import org.onap.aaf.certservice.client.configuration.model.ClientConfiguration;
import java.util.Optional;
@@ -42,9 +42,13 @@ public class ClientConfigurationFactoryTest {
private final String URL_TO_CERT_SERVICE_DEFAULT = "https://aaf-cert-service:8443/v1/certificate/";
private final String CA_NAME_INVALID = "caaaftest2#$";
private final String OUTPUT_PATH_INVALID = "/opt//app/osaaf";
+ private final String OUTPUT_TYPE_VALID = "JKS";
+ private final String OUTPUT_TYPE_INVALID = "JKSS";
+ private final String OUTPUT_TYPE_DEFAULT = "P12";
private EnvsForClient envsForClient = mock(EnvsForClient.class);
+
@Test
void create_shouldReturnSuccessWhenAllVariablesAreSetAndValid() throws ClientConfigurationException {
// given
@@ -52,15 +56,18 @@ public class ClientConfigurationFactoryTest {
when(envsForClient.getOutputPath()).thenReturn(Optional.of(OUTPUT_PATH_VALID));
when(envsForClient.getRequestTimeOut()).thenReturn(Optional.of(TIME_OUT_VALID));
when(envsForClient.getUrlToCertService()).thenReturn(Optional.of(URL_TO_CERT_SERVICE_VALID));
+ when(envsForClient.getOutputType()).thenReturn(Optional.of(OUTPUT_TYPE_VALID));
// when
ClientConfiguration configuration = new ClientConfigurationFactory(envsForClient).create();
+ System.out.println(configuration.toString());
// then
assertThat(configuration.getCaName()).isEqualTo(CA_NAME_VALID);
assertThat(configuration.getRequestTimeout()).isEqualTo(Integer.valueOf(TIME_OUT_VALID));
assertThat(configuration.getCertsOutputPath()).isEqualTo(OUTPUT_PATH_VALID);
assertThat(configuration.getUrlToCertService()).isEqualTo(URL_TO_CERT_SERVICE_VALID);
+ assertThat(configuration.getOutputType()).isEqualTo(OUTPUT_TYPE_VALID);
}
@Test
@@ -77,6 +84,7 @@ public class ClientConfigurationFactoryTest {
assertThat(configuration.getRequestTimeout()).isEqualTo(Integer.valueOf(TIME_OUT_VALID));
assertThat(configuration.getCertsOutputPath()).isEqualTo(OUTPUT_PATH_VALID);
assertThat(configuration.getUrlToCertService()).isEqualTo(URL_TO_CERT_SERVICE_DEFAULT);
+ assertThat(configuration.getOutputType()).isEqualTo(OUTPUT_TYPE_DEFAULT);
}
@Test
@@ -87,7 +95,7 @@ public class ClientConfigurationFactoryTest {
// when
ClientConfigurationFactory configurationFactory = new ClientConfigurationFactory(envsForClient);
- // when/then
+ // then
assertThatExceptionOfType(ClientConfigurationException.class)
.isThrownBy(configurationFactory::create)
.withMessageContaining(ClientConfigurationEnvs.CA_NAME + " is invalid.");
@@ -121,9 +129,27 @@ public class ClientConfigurationFactoryTest {
// when
ClientConfigurationFactory configurationFactory = new ClientConfigurationFactory(envsForClient);
- // when/then
+ //then
assertThatExceptionOfType(ClientConfigurationException.class)
.isThrownBy(configurationFactory::create)
.withMessageContaining(ClientConfigurationEnvs.OUTPUT_PATH + " is invalid.");
}
+
+ @Test
+ void create_shouldReturnClientExceptionWhenOutputTypeIsInvalid() {
+ // given
+ when(envsForClient.getCaName()).thenReturn(Optional.of(CA_NAME_VALID));
+ when(envsForClient.getOutputPath()).thenReturn(Optional.of(OUTPUT_PATH_VALID));
+ when(envsForClient.getRequestTimeOut()).thenReturn(Optional.of(TIME_OUT_VALID));
+ when(envsForClient.getUrlToCertService()).thenReturn(Optional.of(URL_TO_CERT_SERVICE_VALID));
+ when(envsForClient.getOutputType()).thenReturn(Optional.of(OUTPUT_TYPE_INVALID));
+
+ // when
+ ClientConfigurationFactory configurationFactory = new ClientConfigurationFactory(envsForClient);
+
+ //then
+ assertThatExceptionOfType(ClientConfigurationException.class)
+ .isThrownBy(configurationFactory::create)
+ .withMessageContaining(ClientConfigurationEnvs.OUTPUT_TYPE + " is invalid.");
+ }
}
diff --git a/certServiceClient/src/test/java/org/onap/aaf/certservice/client/configuration/model/CsrConfigurationFactoryTest.java b/certServiceClient/src/test/java/org/onap/aaf/certservice/client/configuration/factory/CsrConfigurationFactoryTest.java
index 6ab1bffc..2edff2f1 100644
--- a/certServiceClient/src/test/java/org/onap/aaf/certservice/client/configuration/model/CsrConfigurationFactoryTest.java
+++ b/certServiceClient/src/test/java/org/onap/aaf/certservice/client/configuration/factory/CsrConfigurationFactoryTest.java
@@ -18,7 +18,7 @@
* ============LICENSE_END=========================================================
*/
-package org.onap.aaf.certservice.client.configuration.model;
+package org.onap.aaf.certservice.client.configuration.factory;
import org.assertj.core.api.Condition;
import org.junit.jupiter.api.BeforeEach;
@@ -26,7 +26,7 @@ import org.junit.jupiter.api.Test;
import org.onap.aaf.certservice.client.configuration.CsrConfigurationEnvs;
import org.onap.aaf.certservice.client.configuration.EnvsForCsr;
import org.onap.aaf.certservice.client.configuration.exception.CsrConfigurationException;
-import org.onap.aaf.certservice.client.configuration.factory.CsrConfigurationFactory;
+import org.onap.aaf.certservice.client.configuration.model.CsrConfiguration;
import java.util.Optional;