package org.onap.oom.certservice.client.configuration.factory;
+import static org.onap.oom.certservice.client.configuration.validation.BasicValidationFunctions.isSpecialCharPresent;
+
+import java.util.Arrays;
import org.onap.oom.certservice.client.configuration.CsrConfigurationEnvs;
import org.onap.oom.certservice.client.configuration.EnvsForCsr;
import org.onap.oom.certservice.client.configuration.exception.CsrConfigurationException;
import org.onap.oom.certservice.client.configuration.model.CsrConfiguration;
+import org.onap.oom.certservice.client.configuration.validation.BasicValidationFunctions;
+import org.onap.oom.certservice.client.configuration.validation.ValidatorsFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-public class CsrConfigurationFactory extends AbstractConfigurationFactory<CsrConfiguration> {
+public class CsrConfigurationFactory implements ConfigurationFactory<CsrConfiguration> {
private static final Logger LOGGER = LoggerFactory.getLogger(CsrConfigurationFactory.class);
+ private static final String SANS_DELIMITER = ":";
+
private final EnvsForCsr envsForCsr;
+ private final ValidatorsFactory validatorsFactory;
- public CsrConfigurationFactory(EnvsForCsr envsForCsr) {
+ public CsrConfigurationFactory(EnvsForCsr envsForCsr, ValidatorsFactory validatorsFactory) {
this.envsForCsr = envsForCsr;
+ this.validatorsFactory = validatorsFactory;
}
@Override
CsrConfiguration configuration = new CsrConfiguration();
envsForCsr.getCommonName()
- .filter(this::isCommonNameValid)
+ .filter(validatorsFactory.commonNameValidator())
.map(configuration::setCommonName)
.orElseThrow(() -> new CsrConfigurationException(CsrConfigurationEnvs.COMMON_NAME + " is invalid."));
envsForCsr.getOrganization()
- .filter(org -> !isSpecialCharsPresent(org))
+ .filter(org -> !isSpecialCharPresent(org))
.map(configuration::setOrganization)
.orElseThrow(() -> new CsrConfigurationException(CsrConfigurationEnvs.ORGANIZATION + " is invalid."));
.orElseThrow(() -> new CsrConfigurationException(CsrConfigurationEnvs.STATE + " is invalid."));
envsForCsr.getCountry()
- .filter(this::isCountryValid)
+ .filter(BasicValidationFunctions::isCountryValid)
.map(configuration::setCountry)
.orElseThrow(() -> new CsrConfigurationException(CsrConfigurationEnvs.COUNTRY + " is invalid."));
.map(configuration::setLocation);
envsForCsr.getSubjectAlternativesName()
+ .map(sans -> Arrays.asList(sans.split(SANS_DELIMITER)))
.map(configuration::setSubjectAlternativeNames);
LOGGER.info("Successful validation of CSR configuration. Configuration data: {}", configuration.toString());
return configuration;
}
+
}