Revision: 16ee99603586
Branch: default
Author:
Elizab...@esacinc.com
Date: Wed May 7 21:01:36 2014 UTC
Log: - Supports DCDT-224, DCDT-225, DCDT-223 (Hosting and Discovery
testcase bug fixes
- Fixed bug where domain-bound sender certificates are not discovered
during the certificate verification step upon a Discovery testcase execution
- Fixed bug where certificates hosted in LDAP are referred to by a
userCertificate;binary entry
- Moved D8_invD to an LDAP server where it can be discovered
http://code.google.com/p/direct-certificate-discovery-tool/source/detail?r=16ee99603586
Modified:
/dcdt-core/src/main/java/gov/hhs/onc/dcdt/discovery/CertificateDiscoveryService.java
/dcdt-core/src/main/java/gov/hhs/onc/dcdt/discovery/impl/CertificateDiscoveryServiceImpl.java
/dcdt-core/src/main/java/gov/hhs/onc/dcdt/discovery/steps/impl/CertificateValidationStepImpl.java
/dcdt-core/src/main/java/gov/hhs/onc/dcdt/discovery/steps/ldap/impl/LdapCertificateLookupStepImpl.java
/dcdt-core/src/main/java/gov/hhs/onc/dcdt/ldap/ToolCoreSchemaConstants.java
/dcdt-core/src/main/java/gov/hhs/onc/dcdt/testcases/hosting/HostingTestcase.java
/dcdt-core/src/main/java/gov/hhs/onc/dcdt/testcases/hosting/impl/HostingTestcaseProcessorImpl.java
/dcdt-core/src/main/resources/META-INF/spring/spring-core-testcases-discovery.xml
/dcdt-core/src/test/java/gov/hhs/onc/dcdt/testcases/hosting/HostingTestcaseProcessorFunctionalTests.java
/dcdt-core/src/test/resources/META-INF/core/core-test.properties
=======================================
---
/dcdt-core/src/main/java/gov/hhs/onc/dcdt/discovery/CertificateDiscoveryService.java
Fri Apr 18 03:30:00 2014 UTC
+++
/dcdt-core/src/main/java/gov/hhs/onc/dcdt/discovery/CertificateDiscoveryService.java
Wed May 7 21:01:36 2014 UTC
@@ -8,5 +8,5 @@
public interface CertificateDiscoveryService extends ToolBean {
public List<CertificateDiscoveryStep> discoverCertificates(MailAddress
directAddr);
- public List<CertificateDiscoveryStep>
discoverCertificates(List<CertificateDiscoveryStep> steps, MailAddress
directAddr);
+ public List<CertificateDiscoveryStep>
discoverCertificates(List<CertificateDiscoveryStep> steps, MailAddress
directAddr, boolean processAllSteps);
}
=======================================
---
/dcdt-core/src/main/java/gov/hhs/onc/dcdt/discovery/impl/CertificateDiscoveryServiceImpl.java
Sat Apr 19 16:40:23 2014 UTC
+++
/dcdt-core/src/main/java/gov/hhs/onc/dcdt/discovery/impl/CertificateDiscoveryServiceImpl.java
Wed May 7 21:01:36 2014 UTC
@@ -23,11 +23,11 @@
@Override
public List<CertificateDiscoveryStep> discoverCertificates(MailAddress
directAddr) {
- return this.discoverCertificates(this.defaultSteps, directAddr);
+ return this.discoverCertificates(this.defaultSteps, directAddr,
true);
}
@Override
- public List<CertificateDiscoveryStep>
discoverCertificates(List<CertificateDiscoveryStep> steps, MailAddress
directAddr) {
+ public List<CertificateDiscoveryStep>
discoverCertificates(List<CertificateDiscoveryStep> steps, MailAddress
directAddr, boolean processAllSteps) {
Map<BindingType, MailAddress> directAddrBoundMap = new
EnumMap<>(BindingType.class);
MailAddress directAddrBound;
Class<? extends CertificateDiscoveryStep> stepClass;
@@ -58,13 +58,13 @@
}
}
- if (!skipStep && !processedStep.execute(processedSteps,
directAddrBoundMap.get(stepBindingType))) {
+ boolean isCertLookupStep =
ToolClassUtils.isAssignable(stepClass, CertificateLookupStep.class);
+
+ if (!skipStep && !processedStep.execute(processedSteps,
directAddrBoundMap.get(stepBindingType)) && (!processAllSteps |
| !isCertLookupStep)) {
break;
}
- certDiscovered =
- (!skipStep && ToolClassUtils.isAssignable(stepClass,
CertificateLookupStep.class) && ((CertificateLookupStep<?, ?, ?, ?>)
processedStep)
- .hasCertificateInfos());
+ certDiscovered = (!skipStep && isCertLookupStep &&
((CertificateLookupStep<?, ?, ?, ?>) processedStep).hasCertificateInfos());
}
return processedSteps;
=======================================
---
/dcdt-core/src/main/java/gov/hhs/onc/dcdt/discovery/steps/impl/CertificateValidationStepImpl.java
Tue Apr 29 16:33:30 2014 UTC
+++
/dcdt-core/src/main/java/gov/hhs/onc/dcdt/discovery/steps/impl/CertificateValidationStepImpl.java
Wed May 7 21:01:36 2014 UTC
@@ -28,21 +28,21 @@
@Override
public boolean execute(List<CertificateDiscoveryStep> prevSteps,
MailAddress directAddr) {
- CertificateLookupStep<?, ?, ?, ?> certLookupStep =
ToolCollectionUtils.findAssignable(CertificateLookupStep.class, prevSteps);
+ for (CertificateLookupStep<?, ?, ?, ?> certLookupStep :
CollectionUtils.collect(prevSteps, new
ToolCollectionUtils.AssignableTransformer<>(
+ CertificateLookupStep.class))) {
+ if (certLookupStep != null && certLookupStep.isSuccess() &&
certLookupStep.hasCertificateInfos()) {
+ Pair<Boolean, List<String>> certInfoValidationResultPair;
+ this.invalidCertInfos = new ArrayList<>();
- // noinspection ConstantConditions
- if (certLookupStep.isSuccess() &&
certLookupStep.hasCertificateInfos()) {
- Pair<Boolean, List<String>> certInfoValidationResultPair;
- this.invalidCertInfos = new ArrayList<>();
-
- // noinspection ConstantConditions
- for (CertificateInfo certInfo :
certLookupStep.getCertificateInfos()) {
- this.execMsgs.addAll((certInfoValidationResultPair =
this.certInfoValidator.validate(directAddr, certInfo)).getRight());
+ // noinspection ConstantConditions
+ for (CertificateInfo certInfo :
certLookupStep.getCertificateInfos()) {
+ this.execMsgs.addAll((certInfoValidationResultPair =
this.certInfoValidator.validate(directAddr, certInfo)).getRight());
- if (certInfoValidationResultPair.getLeft()) {
- this.validCertInfo = certInfo;
- } else {
- this.invalidCertInfos.add(certInfo);
+ if (certInfoValidationResultPair.getLeft()) {
+ this.validCertInfo = certInfo;
+ } else {
+ this.invalidCertInfos.add(certInfo);
+ }
}
}
}
=======================================
---
/dcdt-core/src/main/java/gov/hhs/onc/dcdt/discovery/steps/ldap/impl/LdapCertificateLookupStepImpl.java
Sat Apr 19 16:40:23 2014 UTC
+++
/dcdt-core/src/main/java/gov/hhs/onc/dcdt/discovery/steps/ldap/impl/LdapCertificateLookupStepImpl.java
Wed May 7 21:01:36 2014 UTC
@@ -21,6 +21,7 @@
import java.util.List;
import javax.annotation.Nullable;
import org.apache.commons.collections4.CollectionUtils;
+import org.apache.directory.api.ldap.model.entry.Attribute;
import org.apache.directory.api.ldap.model.entry.Entry;
import org.apache.directory.api.ldap.model.entry.StringValue;
import
org.apache.directory.api.ldap.model.exception.LdapInvalidAttributeValueException;
@@ -60,14 +61,25 @@
if ((lookupResult =
this.lookupService.lookupEntries(baseDnConnConfig, baseDn,
lookupFilter)).isSuccess() && lookupResult.hasItems()) {
for (Entry entry : lookupResult) {
try {
- this.certInfos.add((certInfo =
- new
CertificateInfoImpl(CertificateUtils.readCertificate(
-
entry.get(ToolCoreSchemaConstants.ATTR_TYPE_NAME_USER_CERT).getBytes(),
CertificateType.X509, DataEncoding.DER))));
+ Attribute attr =
entry.get(ToolCoreSchemaConstants.ATTR_TYPE_NAME_USER_CERT);
- this.execMsgs.add(String.format(
- "LDAP lookup (host=%s, port=%d,
filter={%s}) entry certificate (subj={%s}, serialNum=%s, issuer={%s})
processed.",
- baseDnConnConfig.getLdapHost(),
baseDnConnConfig.getLdapPort(),
ToolLdapFilterUtils.writeFilter(lookupFilter),
- certInfo.getSubjectName(),
certInfo.getSerialNumber(), certInfo.getIssuerName()));
+ if (attr == null) {
+ attr =
entry.get(ToolCoreSchemaConstants.ATTR_TYPE_NAME_USER_CERT_BINARY);
+ }
+
+ if (attr != null) {
+ this.certInfos.add(certInfo =
+ new
CertificateInfoImpl(CertificateUtils.readCertificate(attr.getBytes(),
CertificateType.X509, DataEncoding.DER)));
+ this.execMsgs.add(String.format(
+ "LDAP lookup (host=%s, port=%d,
filter={%s}) entry certificate (subj={%s}, serialNum=%s, issuer={%s})
processed.",
+ baseDnConnConfig.getLdapHost(),
baseDnConnConfig.getLdapPort(),
ToolLdapFilterUtils.writeFilter(lookupFilter),
+ certInfo.getSubjectName(),
certInfo.getSerialNumber(), certInfo.getIssuerName()));
+ } else {
+ this.execMsgs.add(String.format("LDAP
lookup (host=%s, port=%d, filter={%s}) entry does not contain an %s or
an %s attribute.",
+ baseDnConnConfig.getLdapHost(),
baseDnConnConfig.getLdapPort(),
ToolLdapFilterUtils.writeFilter(lookupFilter),
+
ToolCoreSchemaConstants.ATTR_TYPE_NAME_USER_CERT,
ToolCoreSchemaConstants.ATTR_TYPE_NAME_USER_CERT_BINARY));
+ this.execSuccess = false;
+ }
} catch (CryptographyException |
LdapInvalidAttributeValueException e) {
this.execMsgs.add(String.format("LDAP lookup
(host=%s, port=%d, filter={%s}) entry certificate processing failed: %s",
baseDnConnConfig.getLdapHost(),
baseDnConnConfig.getLdapPort(),
ToolLdapFilterUtils.writeFilter(lookupFilter), e.getMessage()));
=======================================
---
/dcdt-core/src/main/java/gov/hhs/onc/dcdt/ldap/ToolCoreSchemaConstants.java
Sat Apr 19 16:40:23 2014 UTC
+++
/dcdt-core/src/main/java/gov/hhs/onc/dcdt/ldap/ToolCoreSchemaConstants.java
Wed May 7 21:01:36 2014 UTC
@@ -9,4 +9,5 @@
public final static String ATTR_TYPE_OID_USER_CERT = "2.5.4.36";
public final static String ATTR_TYPE_NAME_USER_CERT
= "userCertificate";
+ public final static String ATTR_TYPE_NAME_USER_CERT_BINARY
= "userCertificate;binary";
}
=======================================
---
/dcdt-core/src/main/java/gov/hhs/onc/dcdt/testcases/hosting/HostingTestcase.java
Fri Apr 18 03:30:00 2014 UTC
+++
/dcdt-core/src/main/java/gov/hhs/onc/dcdt/testcases/hosting/HostingTestcase.java
Wed May 7 21:01:36 2014 UTC
@@ -3,13 +3,30 @@
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonSubTypes;
import com.fasterxml.jackson.annotation.JsonSubTypes.Type;
+import gov.hhs.onc.dcdt.collections.impl.AbstractToolPredicate;
import gov.hhs.onc.dcdt.discovery.BindingType;
import gov.hhs.onc.dcdt.discovery.LocationType;
import gov.hhs.onc.dcdt.testcases.ToolTestcase;
import gov.hhs.onc.dcdt.testcases.hosting.impl.HostingTestcaseImpl;
+import java.util.Objects;
@JsonSubTypes({ @Type(HostingTestcaseImpl.class) })
public interface HostingTestcase extends
ToolTestcase<HostingTestcaseDescription> {
+ public final static class HostingTestcaseLocationBindingPredicate
extends AbstractToolPredicate<HostingTestcase> {
+ private LocationType locType;
+ private BindingType bindingType;
+
+ public HostingTestcaseLocationBindingPredicate(LocationType
locType, BindingType bindingType) {
+ this.locType = locType;
+ this.bindingType = bindingType;
+ }
+
+ @Override
+ protected boolean evaluateInternal(HostingTestcase
hostingTestcase) throws Exception {
+ return Objects.equals(hostingTestcase.getLocationType(),
this.locType) && Objects.equals(hostingTestcase.getBindingType(),
this.bindingType);
+ }
+ }
+
@JsonProperty("bindingType")
public BindingType getBindingType();
=======================================
---
/dcdt-core/src/main/java/gov/hhs/onc/dcdt/testcases/hosting/impl/HostingTestcaseProcessorImpl.java
Fri Apr 18 03:30:00 2014 UTC
+++
/dcdt-core/src/main/java/gov/hhs/onc/dcdt/testcases/hosting/impl/HostingTestcaseProcessorImpl.java
Wed May 7 21:01:36 2014 UTC
@@ -21,6 +21,6 @@
HostingTestcase testcase = submission.getTestcase();
// noinspection ConstantConditions
- return this.createResult(submission,
this.certDiscoveryService.discoverCertificates(testcase.getSteps(),
submission.getDirectAddress()));
+ return this.createResult(submission,
this.certDiscoveryService.discoverCertificates(testcase.getSteps(),
submission.getDirectAddress(), false));
}
}
=======================================
---
/dcdt-core/src/main/resources/META-INF/spring/spring-core-testcases-discovery.xml
Tue Apr 29 16:33:30 2014 UTC
+++
/dcdt-core/src/main/resources/META-INF/spring/spring-core-testcases-discovery.xml
Wed May 7 21:01:36 2014 UTC
@@ -658,7 +658,7 @@
</beans:bean>
</beans:property>
<beans:property name="location">
- <beans:bean
parent="discoveryTestcaseCredLoc5Ldap1"/>
+ <beans:bean
parent="discoveryTestcaseCredLoc5Ldap3"/>
</beans:property>
</beans:bean>
</util:list>
=======================================
---
/dcdt-core/src/test/java/gov/hhs/onc/dcdt/testcases/hosting/HostingTestcaseProcessorFunctionalTests.java
Tue Apr 22 12:12:28 2014 UTC
+++
/dcdt-core/src/test/java/gov/hhs/onc/dcdt/testcases/hosting/HostingTestcaseProcessorFunctionalTests.java
Wed May 7 21:01:36 2014 UTC
@@ -1,16 +1,29 @@
package gov.hhs.onc.dcdt.testcases.hosting;
import gov.hhs.onc.dcdt.beans.utils.ToolBeanFactoryUtils;
-import gov.hhs.onc.dcdt.discovery.BindingType;
-import gov.hhs.onc.dcdt.discovery.LocationType;
+import gov.hhs.onc.dcdt.config.instance.InstanceConfig;
+import gov.hhs.onc.dcdt.config.instance.InstanceConfigRegistry;
+import gov.hhs.onc.dcdt.config.instance.InstanceConfigService;
+import gov.hhs.onc.dcdt.discovery.CertificateDiscoveryService;
+import gov.hhs.onc.dcdt.discovery.steps.CertificateValidationStep;
import gov.hhs.onc.dcdt.mail.MailAddress;
+import gov.hhs.onc.dcdt.mail.impl.MailAddressImpl;
import gov.hhs.onc.dcdt.test.impl.AbstractToolFunctionalTests;
+import gov.hhs.onc.dcdt.testcases.discovery.DiscoveryTestcase;
+import
gov.hhs.onc.dcdt.testcases.discovery.credentials.DiscoveryTestcaseCredential;
+import
gov.hhs.onc.dcdt.testcases.hosting.HostingTestcase.HostingTestcaseLocationBindingPredicate;
import gov.hhs.onc.dcdt.testcases.hosting.results.HostingTestcaseResult;
+import gov.hhs.onc.dcdt.utils.ToolCollectionUtils;
import gov.hhs.onc.dcdt.utils.ToolStringUtils;
+import java.net.InetAddress;
+import java.util.List;
+import org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.testng.Assert;
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
+import
org.xbill.DNS.Name;
@Test(groups =
{ "dcdt.test.func.testcases.all", "dcdt.test.func.testcases.hosting.all", "dcdt.test.func.testcases.hosting.proc"
})
public class HostingTestcaseProcessorFunctionalTests extends
AbstractToolFunctionalTests {
@@ -18,69 +31,85 @@
@SuppressWarnings({ "SpringJavaAutowiringInspection" })
private HostingTestcaseProcessor hostingTestcaseProc;
- @Value("${dcdt.test.hosting.dns.addr.bound.direct.addr.1}")
- private MailAddress testDnsAddrBoundDirectAddr;
+ @Autowired
+ @SuppressWarnings({ "SpringJavaAutowiringInspection" })
+ private CertificateDiscoveryService certDiscoveryService;
- @Value("${dcdt.test.hosting.dns.no.bound.direct.addr.1}")
- private MailAddress testDnsNoBoundDirectAddr;
+ @Value("${
dcdt.test.instance.domain.name}")
+ private Name testInstanceConfigDomainName;
- @Value("${dcdt.test.hosting.dns.domain.bound.direct.addr.1}")
- private MailAddress testDnsDomainBoundDirectAddr;
+ @Value("${dcdt.test.instance.ip.addr}")
+ private InetAddress testInstanceConfigIpAddr;
- @Value("${dcdt.test.hosting.ldap.addr.bound.direct.addr.1}")
- private MailAddress testLdapAddrBoundDirectAddr;
+ @Value("${dcdt.test.lookup.domain.name.3}")
+ private Name testLookupDomainName;
- @Value("${dcdt.test.hosting.ldap.domain.bound.direct.addr.1}")
- private MailAddress testLdapDomainBoundDirectAddr;
+ @Autowired
+ @SuppressWarnings({ "SpringJavaAutowiringInspection" })
+ protected InstanceConfigRegistry instanceConfigReg;
- @Value("${dcdt.test.hosting.ldap.no.bound.direct.addr.1}")
- private MailAddress testLdapNoBoundDirectAddr;
-
- @Test(enabled = false)
+ @Test
public void testProcess() {
- HostingTestcaseResult hostingTestcaseResult;
+ for (DiscoveryTestcase discoveryTestcase :
ToolBeanFactoryUtils.getBeansOfType(this.applicationContext,
DiscoveryTestcase.class)) {
+ // noinspection ConstantConditions
+ MailAddress directAddr =
+ new
MailAddressImpl(discoveryTestcase.getMailAddress().toAddress()
+ .replace(this.testInstanceConfigDomainName.toString(),
this.testLookupDomainName.toString()));
+ CertificateValidationStep certValidationStep;
- for (HostingTestcase hostingTestcase :
ToolBeanFactoryUtils.getBeansOfType(this.applicationContext,
HostingTestcase.class)) {
- Assert.assertTrue((hostingTestcaseResult =
this.hostingTestcaseProc.process(this.buildHostingTestcaseSubmission(hostingTestcase))).isSuccess(),
- String.format("Hosting testcase (name=%s, locType=%s,
bindingType=%s, neg=%s) processing failed: [%s]", hostingTestcase.getName(),
- hostingTestcase.getLocationType().name(),
hostingTestcase.getBindingType().name(), hostingTestcase.isNegative(),
-
ToolStringUtils.joinDelimit(hostingTestcaseResult.getMessages(), "; ")));
- }
- }
+ if (discoveryTestcase.hasTargetCredentials()) {
+ if (!discoveryTestcase.isNegative()) {
+ DiscoveryTestcaseCredential discoveryTestcaseCred =
discoveryTestcase.getTargetCredentials().iterator().next();
+
+ // noinspection ConstantConditions
+ HostingTestcase hostingTestcase =
+ CollectionUtils.find(this.getHostingTestcases(),
new
HostingTestcaseLocationBindingPredicate(discoveryTestcaseCred.getLocation()
+ .getType(),
discoveryTestcaseCred.getBindingType()));
+ HostingTestcaseResult hostingTestcaseResult =
+
this.hostingTestcaseProc.process(ToolBeanFactoryUtils.createBeanOfType(this.applicationContext,
HostingTestcaseSubmission.class,
+ hostingTestcase, directAddr));
- private HostingTestcaseSubmission
buildHostingTestcaseSubmission(HostingTestcase hostingTestcase) {
- LocationType hostingTestcaseLocType =
hostingTestcase.getLocationType();
- BindingType hostingTestcaseBindingType =
hostingTestcase.getBindingType();
- boolean hostingTestcaseNeg = hostingTestcase.isNegative();
- MailAddress directAddr = null;
+ Assert.assertTrue(
+ hostingTestcaseResult.isSuccess(),
+ String.format("Hosting testcase (name=%s,
locType=%s, bindingType=%s, neg=%s, directAddr=%s) processing failed: [%s]",
+ hostingTestcase.getName(),
hostingTestcase.getLocationType().name(),
hostingTestcase.getBindingType().name(),
+ hostingTestcase.isNegative(),
directAddr.toAddress(),
ToolStringUtils.joinDelimit(hostingTestcaseResult.getMessages(), "; ")));
- if (hostingTestcaseLocType == LocationType.DNS) {
- if (!hostingTestcaseNeg) {
- if (hostingTestcaseBindingType == BindingType.ADDRESS) {
- directAddr = this.testDnsAddrBoundDirectAddr;
- } else if (hostingTestcaseBindingType ==
BindingType.DOMAIN) {
- directAddr = this.testDnsDomainBoundDirectAddr;
- }
- } else {
- directAddr = this.testDnsNoBoundDirectAddr;
- }
- } else if (hostingTestcaseLocType == LocationType.LDAP) {
- if (!hostingTestcaseNeg) {
- if (hostingTestcaseBindingType == BindingType.ADDRESS) {
- directAddr = this.testLdapAddrBoundDirectAddr;
- } else if (hostingTestcaseBindingType ==
BindingType.DOMAIN) {
- directAddr = this.testLdapDomainBoundDirectAddr;
+ Assert.assertTrue(
+ (certValidationStep =
discoverCertificates(directAddr)) != null && certValidationStep.isSuccess()
+ &&
certValidationStep.hasValidCertificateInfo(), String.format("A certificate
from %s was not discovered", directAddr.toAddress()));
+ } else {
+ Assert.assertTrue((certValidationStep =
discoverCertificates(directAddr)) != null
&& !certValidationStep.isSuccess(),
+ String.format("No valid certificates from %s
should have been discovered: ", directAddr.toAddress()));
}
- } else {
- directAddr = this.testLdapNoBoundDirectAddr;
}
}
+ }
+
+ @BeforeClass
+ public void registerInstanceConfig() {
+ if (this.getExistingInstanceConfigBean() != null) {
+ this.instanceConfigReg.removeAllBeans();
+ }
+
+ InstanceConfig instanceConfig =
ToolBeanFactoryUtils.getBeanOfType(this.applicationContext,
InstanceConfig.class);
+ // noinspection ConstantConditions
+ instanceConfig.setDomainName(this.testInstanceConfigDomainName);
+ instanceConfig.setIpAddress(this.testInstanceConfigIpAddr);
+
+ this.instanceConfigReg.registerBeans(instanceConfig);
+ }
+
+ private List<HostingTestcase> getHostingTestcases() {
+ return
ToolBeanFactoryUtils.getBeansOfType(this.applicationContext,
HostingTestcase.class);
+ }
- Assert.assertNotNull(
- directAddr,
- String.format("Hosting testcase (name=%s, locType=%s,
bindingType=%s, neg=%s) test Direct address could not be determined.",
- hostingTestcase.getName(), hostingTestcaseLocType.name(),
hostingTestcaseBindingType.name(), hostingTestcaseNeg));
+ private InstanceConfig getExistingInstanceConfigBean() {
+ // noinspection ConstantConditions
+ return ToolBeanFactoryUtils.getBeanOfType(this.applicationContext,
InstanceConfigService.class).getBean();
+ }
- return
ToolBeanFactoryUtils.createBeanOfType(this.applicationContext,
HostingTestcaseSubmission.class, hostingTestcase, directAddr);
+ public CertificateValidationStep discoverCertificates(MailAddress
directAddr) {
+ return
ToolCollectionUtils.findAssignable(CertificateValidationStep.class,
this.certDiscoveryService.discoverCertificates(directAddr));
}
}
=======================================
--- /dcdt-core/src/test/resources/META-INF/core/core-test.properties Sun
May 4 20:51:50 2014 UTC
+++ /dcdt-core/src/test/resources/META-INF/core/core-test.properties Wed
May 7 21:01:36 2014 UTC
@@ -75,43 +75,43 @@
fhvVpWGHodMq
dcdt.test.crypto.cert.dts500=\
- MIICtDCCAh2gAwIBAgIII2iTQ14zpxwwDQYJKoZIhvcNAQEFBQAwRDEgMB4GA1UE\
- AwwXZGVtby5kaXJlY3QtdGVzdC5jb21fY2ExIDAeBgNVBAoMF2RlbW8uZGlyZWN0\
- LXRlc3QuY29tX2NhMB4XDTEzMDcxMjIzMjYwMVoXDTE0MDcxMjIzMjYwMVowdjEy\
- MDAGCSqGSIb3DQEJARYjZHRzNTAwQGRpcmVjdDEuZGVtby5kaXJlY3QtdGVzdC5j\
- b20xITAfBgNVBAMMGGR0czUwMF92YWxpZF9jZXJ0X3JlY29yZDEdMBsGA1UECgwU\
- ZGVtby5kaXJlY3QtdGVzdC5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGB\
- AKdgjZvV12ryATekj7wXgNxX5D51Zy9Tt1GV4VaVdf22gl/aYaibznWm15BGeoyz\
- 78L6LavwCJoT7Cj6MjuxmlgfijJvaX6U51pLUtcJHqhdl/zu4tcxMgcWnZcCBYcg\
- 8zW1A4f0WIqSitlpIOJAVsJbk5qJHhgz/Ktu4DzxywVlAgMBAAGjfTB7MAkGA1Ud\
- EwQCMAAwHwYDVR0jBBgwFoAUEGQ1h7hBSiue7FA7eqgpzBNtkQkwHQYDVR0OBBYE\
- FEFri0jP/cUnigdZ6SFjvqMVQNj8MC4GA1UdEQQnMCWBI2R0czUwMEBkaXJlY3Qx\
- LmRlbW8uZGlyZWN0LXRlc3QuY29tMA0GCSqGSIb3DQEBBQUAA4GBAD0wbo/6o+UU\
- QF7lnXKy1jibCSXEm/vyPB7LBVEXpRDKXfGbbwavcamngRdcBBHnS6v9Qmh7CfRn\
- wiu7pXZoCJI+scDy/QJV7OZb1g8i9T6KmrtQcR+mbA1caJF77AkfuIFpvQuXSlHp\
- RjTZePjSSfUYv4pgYXFKg8iCm3MA75/p
+ MIICxDCCAi2gAwIBAgIINZbtFRnaj80wDQYJKoZIhvcNAQEFBQAwSjEjMCEGA1UE\
+ AwwaZGVtbzIxMi5kaXJlY3QtdGVzdC5jb21fY2ExIzAhBgNVBAoMGmRlbW8yMTIu\
+ ZGlyZWN0LXRlc3QuY29tX2NhMB4XDTE0MDUwNTE5MTUxMloXDTE1MDUwNTE5MTUx\
+ MlowfDE1MDMGCSqGSIb3DQEJARYmZHRzNTAwQGRpcmVjdDEuZGVtbzIxMi5kaXJl\
+ Y3QtdGVzdC5jb20xITAfBgNVBAMMGGR0czUwMF92YWxpZF9jZXJ0X3JlY29yZDEg\
+ MB4GA1UECgwXZGVtbzIxMi5kaXJlY3QtdGVzdC5jb20wgZ8wDQYJKoZIhvcNAQEB\
+ BQADgY0AMIGJAoGBANLAy1KxY4m1n5nd22/714NijEgLM/k8v1sL9DJgnava5bwC\
+ 0aWKnaQxEyxww5ehPFCVGoL35vnGM12ZW7rCCutQ185OQ4azsiZuGoVm+FPP7Dij\
+ 8yjIZwIwCrU96YtpW1cwPBJ2wWqq4LvBJakwEWdNp/+iDfngQtIJ2QjKIgXlAgMB\
+ AAGjgYAwfjAJBgNVHRMEAjAAMB8GA1UdIwQYMBaAFNN1+KrrssYw7uhhT/V5ezic\
+ HDgOMB0GA1UdDgQWBBQGKq7mJEBRY0/GNUBnMuZipSuAZTAxBgNVHREEKjAogSZk\
+ dHM1MDBAZGlyZWN0MS5kZW1vMjEyLmRpcmVjdC10ZXN0LmNvbTANBgkqhkiG9w0B\
+ AQUFAAOBgQCbsHBNYpPP+ipQ9WFrNIpxQnpUQ3B+QaiVSN5w1gYdlGT0PODV7VP6\
+ uGjAVaeIQs3UYqOp3iDWbf55ZW5ST6olg0PbjlM9d0vuej2KhToroDguGJmUHmjc\
+ PbHOxjRD/kJ67VXn92z4LNkNrt55o1iqVHDns4M80XYa5Fm5mLf22Q==
dcdt.test.crypto.key.public.dts500=\
- MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCnYI2b1ddq8gE3pI+8F4DcV+Q+\
- dWcvU7dRleFWlXX9toJf2mGom851pteQRnqMs+/C+i2r8AiaE+wo+jI7sZpYH4oy\
- b2l+lOdaS1LXCR6oXZf87uLXMTIHFp2XAgWHIPM1tQOH9FiKkorZaSDiQFbCW5Oa\
- iR4YM/yrbuA88csFZQIDAQAB
+ MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDSwMtSsWOJtZ+Z3dtv+9eDYoxI\
+ CzP5PL9bC/QyYJ2r2uW8AtGlip2kMRMscMOXoTxQlRqC9+b5xjNdmVu6wgrrUNfO\
+ TkOGs7ImbhqFZvhTz+w4o/MoyGcCMAq1PemLaVtXMDwSdsFqquC7wSWpMBFnTaf/\
+ og354ELSCdkIyiIF5QIDAQAB
dcdt.test.crypto.key.private.dts500=\
- MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBAKdgjZvV12ryATek\
- j7wXgNxX5D51Zy9Tt1GV4VaVdf22gl/aYaibznWm15BGeoyz78L6LavwCJoT7Cj6\
- MjuxmlgfijJvaX6U51pLUtcJHqhdl/zu4tcxMgcWnZcCBYcg8zW1A4f0WIqSitlp\
- IOJAVsJbk5qJHhgz/Ktu4DzxywVlAgMBAAECgYEAi9iDWNH5s7RRyhDnuysUEoYp\
- APqM5SEYSMVmyjYEqKAmHDpVYFAV1304HKaWXBs3V3w6Tq82MK42oiIxeGiy4E/a\
- reWbcthcbMNlMUO88VPAPJPDSy56cW4r75GfzjnB1xQAzGnGrKzjKQb5Orv2ikyj\
- ib6Awg1nEV0AKc/wqt0CQQD69nXUB5ofH/h1K9qK7RJuV7DzgUqS2lP8hkucescj\
- deJiGowJNU9tZ2R19iCG89r4yvg4NYCQFJtlmngmbVenAkEAqryZYygkaIrFtFA6\
- U9Xc03pS6R2a13AZlFdTyThfpUvW2OzhmCz+0+Jfrod41j2LB/bKX3vGQYVf+ie3\
- qBbcEwJAVBSgs3H8k/L9JhyUMrls1GUy1tJ5bqwROWixCnMkJuBHAYFNa4Rd4RSj\
- 1tWoXi5zLamq8gIS2bLdwXO4T3+QvwJAJhSEfYohfLOe3tWZ/MLRStWYkmfI9k4J\
- Vn2XsWSCaKKem6lRs5gtieKOhqWufNIjJTaU8nDvygNOYcPkAXh/wwJBAKG6R42T\
- hf7Zb33IHTYZEPcqMFxIKPCPY4q5PELEywK/yOE9Qfkgg+Uxkd1oFC8ZJydIBsJN\
- sKs6GT5l+5vuULI=
+ MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBANLAy1KxY4m1n5nd\
+ 22/714NijEgLM/k8v1sL9DJgnava5bwC0aWKnaQxEyxww5ehPFCVGoL35vnGM12Z\
+ W7rCCutQ185OQ4azsiZuGoVm+FPP7Dij8yjIZwIwCrU96YtpW1cwPBJ2wWqq4LvB\
+ JakwEWdNp/+iDfngQtIJ2QjKIgXlAgMBAAECgYAQ4gTnsPIqW/RXHSCxDdmr2r8m\
+ Hk+hja4+muyLBJZc6AIzV3535mzOdGf2zWm9wdrVEby39Sf5plkDDH/+rAC3x9dV\
+ og6LS1DfZYSPeBrC6raLqy8kxQjlfy5FA8yoGGOtndYHYASktxOGRLdAsmlDDmab\
+ g2VjFqCz+98ZELG9gQJBAPMNNzwSiws+YxhxbqqnoiNUd/Z6ZBcMvwR6/+vuGjm2\
+ rtcS9Gk9YgtVNCsc73DeKTZyUmGFsYHB9Yi3peHNxrUCQQDd+xXIv01K0jqWUiWf\
+ 07dbL8YN+w/484s8irmboPH2zECCVTyTUUkZohbvMbbWaa/R4vsTbrU0exPes1V1\
+ mhBxAkAhjUZ9tXWaVL9rRWVoi4GXbPaugNDGWc0Yuj4P/KuEIhLav9Qbnwyk0dtE\
+ xFbNdu2rhXaX3dPWPMc/W1K77CMtAkEAiPwYjmCXlxOy+e7Jrx7c6NXLd/c1/SB2\
+ DS9iqQqiJvYW3RcyoYqo/LuNQaDBPwHLcU+MN4q7Ih7NvUGX/FHN0QJBAJQ3gH6Z\
+ WDaMx8KWVBJWpIgXgA7/mDebihBBiBeGa9C2zVTDXIRaiRDYgT5oH/Rb4fselHnk\
+ DbHV9hV1XgIgPXQ=
#====================================================================================================
# CRYPTOGRAPHY X500 NAMES
@@ -137,8 +137,9 @@
#====================================================================================================
# LOOKUP
#====================================================================================================
-
dcdt.test.lookup.domain.name=
demo.direct-test.com
+
dcdt.test.lookup.domain.name=
demo212.direct-test.com
dcdt.test.lookup.domain.name.2=
direct-test.com
+dcdt.test.lookup.domain.name.3=
demo.direct-test.com
dcdt.test.lookup.domain.ldap.name=ldap.${
dcdt.test.lookup.domain.name}
dcdt.test.lookup.domain.1.name=direct1.${
dcdt.test.lookup.domain.name}
dcdt.test.lookup.domain.2.name=direct2.${
dcdt.test.lookup.domain.name}
@@ -195,13 +196,3 @@
${dcdt.test.ldap.ldif.entry.1.attr.obj.class}\n\
${
dcdt.test.ldap.ldif.entry.1.attr.cn}\n\
${dcdt.test.ldap.ldif.entry.1.attr.mail}
-
-#====================================================================================================
-# HOSTING TESTCASE DIRECT ADDRESSES
-#====================================================================================================
-dcdt.test.hosting.dns.addr.bound.direct.addr.1=${dcdt.test.lookup.domain.1.mail.addr.1}
-dcdt.test.hosting.dns.domain.bound.direct.addr.1=dts501@${
dcdt.test.lookup.domain.1.name}
-dcdt.test.hosting.dns.no.bound.direct.addr.1=dts512@${
dcdt.test.lookup.domain.6.name}
-dcdt.test.hosting.ldap.addr.bound.direct.addr.1=dts505@${
dcdt.test.lookup.domain.2.name}
-dcdt.test.hosting.ldap.domain.bound.direct.addr.1=dts515@${
dcdt.test.lookup.domain.2.name}
-dcdt.test.hosting.ldap.no.bound.direct.addr.1=dts511@${
dcdt.test.lookup.domain.4.name}