[java-shib-attribute] branch main updated: Use new shared InMemoryDirectory.
Daniel Fisher
dfisher at vt.edu
Fri Nov 11 19:27:46 UTC 2022
This is an automated email from the git hooks/post-receive script.
dfisher pushed a commit to branch main
in repository java-shib-attribute.
View the commit online:
http://git.shibboleth.net/view/?p=java-shib-attribute.git;a=commit;h=9a77187d2b183657c01262381e4021f28f433710
The following commit(s) were added to refs/heads/main by this push:
new 9a77187d2 Use new shared InMemoryDirectory.
9a77187d2 is described below
commit 9a77187d2b183657c01262381e4021f28f433710
Author: Daniel Fisher <dfisher at vt.edu>
AuthorDate: Fri Nov 11 13:50:38 2022 -0500
Use new shared InMemoryDirectory.
---
shib-attribute-resolver-impl/pom.xml | 7 +-
.../dc/ldap/impl/LDAPDataConnectorTest.java | 33 ++++-----
.../resolver/dc/ldap/impl/Regressions.java | 33 ++++-----
shib-attribute-resolver-spring/pom.xml | 6 --
.../resolver/spring/AttributeResolverTest.java | 27 ++++----
.../idp/attribute/resolver/spring/IdP1676Test.java | 35 +++++-----
.../dc/ldap/impl/LDAPDataConnectorParserTest.java | 80 ++++------------------
.../failfast/AttributeResolverFailFastTest.java | 44 +++++-------
8 files changed, 86 insertions(+), 179 deletions(-)
diff --git a/shib-attribute-resolver-impl/pom.xml b/shib-attribute-resolver-impl/pom.xml
index a1a8078d0..e60660841 100644
--- a/shib-attribute-resolver-impl/pom.xml
+++ b/shib-attribute-resolver-impl/pom.xml
@@ -170,12 +170,7 @@
<artifactId>hsqldb</artifactId>
<scope>test</scope>
</dependency>
- <dependency>
- <groupId>com.unboundid</groupId>
- <artifactId>unboundid-ldapsdk</artifactId>
- <scope>test</scope>
- </dependency>
-
+
<dependency>
<groupId>${spring.groupId}</groupId>
<artifactId>spring-core</artifactId>
diff --git a/shib-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/dc/ldap/impl/LDAPDataConnectorTest.java b/shib-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/dc/ldap/impl/LDAPDataConnectorTest.java
index 6a4858bc7..3ea77ff35 100644
--- a/shib-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/dc/ldap/impl/LDAPDataConnectorTest.java
+++ b/shib-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/dc/ldap/impl/LDAPDataConnectorTest.java
@@ -36,15 +36,11 @@ import org.ldaptive.ConnectionFactory;
import org.ldaptive.DefaultConnectionFactory;
import org.ldaptive.SearchOperation;
import org.ldaptive.SearchRequest;
+import org.springframework.core.io.ClassPathResource;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
-import com.unboundid.ldap.listener.InMemoryDirectoryServer;
-import com.unboundid.ldap.listener.InMemoryDirectoryServerConfig;
-import com.unboundid.ldap.listener.InMemoryListenerConfig;
-import com.unboundid.ldap.sdk.LDAPException;
-
import net.shibboleth.idp.attribute.EmptyAttributeValue;
import net.shibboleth.idp.attribute.EmptyAttributeValue.EmptyType;
import net.shibboleth.idp.attribute.IdPAttribute;
@@ -64,6 +60,7 @@ import net.shibboleth.idp.attribute.resolver.testing.TestSources;
import net.shibboleth.shared.component.ComponentInitializationException;
import net.shibboleth.shared.component.UninitializedComponentException;
import net.shibboleth.shared.component.UnmodifiableComponentException;
+import net.shibboleth.shared.testing.InMemoryDirectory;
import net.shibboleth.shared.testing.VelocityEngine;
/**
@@ -82,30 +79,26 @@ public class LDAPDataConnectorTest {
private static final String[] TEST_RETURN_ATTRIBUTES = new String[] {"cn", "sn", "uid", "mail"};
/** In-memory directory server. */
- private InMemoryDirectoryServer directoryServer;
+ private InMemoryDirectory directoryServer;
/**
- * Creates an UnboundID in-memory directory server. Leverages LDIF found in test resources.
- *
- * @throws LDAPException if the in-memory directory server cannot be created
+ * Creates an in-memory directory server. Leverages LDIF found in test resources.
*/
- @BeforeClass public void setupDirectoryServer() throws LDAPException {
-
- final InMemoryDirectoryServerConfig config = new InMemoryDirectoryServerConfig("dc=shibboleth,dc=net");
- config.setListenerConfigs(InMemoryListenerConfig.createLDAPConfig("default", 10389));
- config.addAdditionalBindCredentials("cn=Directory Manager", "password");
- directoryServer = new InMemoryDirectoryServer(config);
- directoryServer
- .importFromLDIF(true,
- "src/test/resources/net/shibboleth/idp/attribute/resolver/impl/dc/ldap/ldapDataConnectorTest.ldif");
- directoryServer.startListening();
+ @BeforeClass public void setupDirectoryServer() {
+ directoryServer =
+ new InMemoryDirectory(
+ new String[] {"dc=shibboleth,dc=net"},
+ new ClassPathResource("/net/shibboleth/idp/attribute/resolver/impl/dc/ldap/ldapDataConnectorTest.ldif"),
+ 10389);
+ directoryServer.start();
}
/**
* Shutdown the in-memory directory server.
*/
@AfterClass public void teardownDirectoryServer() {
- directoryServer.shutDown(true);
+ assertEquals(directoryServer.openConnectionCount(), 0);
+ directoryServer.stop(true);
}
/**
diff --git a/shib-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/dc/ldap/impl/Regressions.java b/shib-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/dc/ldap/impl/Regressions.java
index 72710b017..92e138e71 100644
--- a/shib-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/dc/ldap/impl/Regressions.java
+++ b/shib-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/dc/ldap/impl/Regressions.java
@@ -27,15 +27,11 @@ import org.ldaptive.ConnectionFactory;
import org.ldaptive.DefaultConnectionFactory;
import org.ldaptive.SearchOperation;
import org.ldaptive.SearchRequest;
+import org.springframework.core.io.ClassPathResource;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
-import com.unboundid.ldap.listener.InMemoryDirectoryServer;
-import com.unboundid.ldap.listener.InMemoryDirectoryServerConfig;
-import com.unboundid.ldap.listener.InMemoryListenerConfig;
-import com.unboundid.ldap.sdk.LDAPException;
-
import net.shibboleth.idp.attribute.EmptyAttributeValue;
import net.shibboleth.idp.attribute.EmptyAttributeValue.EmptyType;
import net.shibboleth.idp.attribute.IdPAttribute;
@@ -50,6 +46,7 @@ import net.shibboleth.idp.attribute.resolver.dc.ldap.SearchResultMappingStrategy
import net.shibboleth.idp.attribute.resolver.dc.ldap.StringAttributeValueMappingStrategy;
import net.shibboleth.idp.attribute.resolver.testing.TestSources;
import net.shibboleth.shared.component.ComponentInitializationException;
+import net.shibboleth.shared.testing.InMemoryDirectory;
@SuppressWarnings("javadoc")
public class Regressions {
@@ -65,31 +62,27 @@ public class Regressions {
/** In-memory directory server. */
- private InMemoryDirectoryServer directoryServer;
+ private InMemoryDirectory directoryServer;
/**
- * Creates an UnboundID in-memory directory server. Leverages LDIF found in test resources.
- *
- * @throws LDAPException if the in-memory directory server cannot be created
+ * Creates an in-memory directory server. Leverages LDIF found in test resources.
*/
- @BeforeClass public void setupDirectoryServer() throws LDAPException {
-
- final InMemoryDirectoryServerConfig config = new InMemoryDirectoryServerConfig("dc=shibboleth,dc=net");
- config.setListenerConfigs(InMemoryListenerConfig.createLDAPConfig("default", 10390));
- config.addAdditionalBindCredentials("cn=Directory Manager", "password");
- directoryServer = new InMemoryDirectoryServer(config);
- directoryServer
- .importFromLDIF(true,
- "src/test/resources/net/shibboleth/idp/attribute/resolver/impl/dc/ldap/ldapDataConnectorTestEmpty.ldif");
- directoryServer.startListening();
+ @BeforeClass public void setupDirectoryServer() {
+ directoryServer =
+ new InMemoryDirectory(
+ new String[] {"dc=shibboleth,dc=net"},
+ new ClassPathResource("/net/shibboleth/idp/attribute/resolver/impl/dc/ldap/ldapDataConnectorTestEmpty.ldif"),
+ 10390);
+ directoryServer.start();
}
/**
* Shutdown the in-memory directory server.
*/
@AfterClass public void teardownDirectoryServer() {
- directoryServer.shutDown(true);
+ assertEquals(directoryServer.openConnectionCount(), 0);
+ directoryServer.stop(true);
}
/**
diff --git a/shib-attribute-resolver-spring/pom.xml b/shib-attribute-resolver-spring/pom.xml
index 5d4c64a88..1b7693c02 100644
--- a/shib-attribute-resolver-spring/pom.xml
+++ b/shib-attribute-resolver-spring/pom.xml
@@ -178,12 +178,6 @@
<scope>test</scope>
</dependency>
- <dependency>
- <groupId>com.unboundid</groupId>
- <artifactId>unboundid-ldapsdk</artifactId>
- <scope>test</scope>
- </dependency>
-
<dependency>
<groupId>${spring.groupId}</groupId>
<artifactId>spring-test</artifactId>
diff --git a/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/AttributeResolverTest.java b/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/AttributeResolverTest.java
index e86e8f539..9f7bcd89f 100644
--- a/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/AttributeResolverTest.java
+++ b/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/AttributeResolverTest.java
@@ -45,11 +45,6 @@ import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
-import com.unboundid.ldap.listener.InMemoryDirectoryServer;
-import com.unboundid.ldap.listener.InMemoryDirectoryServerConfig;
-import com.unboundid.ldap.listener.InMemoryListenerConfig;
-import com.unboundid.ldap.sdk.LDAPException;
-
import net.shibboleth.idp.attribute.IdPAttribute;
import net.shibboleth.idp.attribute.IdPAttributeValue;
import net.shibboleth.idp.attribute.StringAttributeValue;
@@ -70,6 +65,7 @@ import net.shibboleth.shared.spring.config.StringToDurationConverter;
import net.shibboleth.shared.spring.config.StringToResourceConverter;
import net.shibboleth.shared.spring.custom.SchemaTypeAwareXMLBeanDefinitionReader;
import net.shibboleth.shared.testing.DatabaseTestingSupport;
+import net.shibboleth.shared.testing.InMemoryDirectory;
/** A work in progress to test the attribute resolver service. */
@SuppressWarnings("javadoc")
@@ -79,10 +75,10 @@ public class AttributeResolverTest extends OpenSAMLInitBaseTestCase {
private final Logger log = LoggerFactory.getLogger(AttributeResolverTest.class);
/* LDAP */
- private InMemoryDirectoryServer directoryServer;
+ private InMemoryDirectory directoryServer;
private static final String LDAP_INIT_FILE =
- "src/test/resources/net/shibboleth/idp/attribute/resolver/spring/ldapDataConnectorTest.ldif";
+ "/net/shibboleth/idp/attribute/resolver/spring/ldapDataConnectorTest.ldif";
/** DataBase initialise */
private static final String DB_INIT_FILE = "/net/shibboleth/idp/attribute/resolver/spring/RdbmsStore.sql";
@@ -107,14 +103,14 @@ public class AttributeResolverTest extends OpenSAMLInitBaseTestCase {
pendingTeardownContext = context;
}
- @BeforeClass public void setupDataConnectors() throws LDAPException {
+ @BeforeClass public void setupDataConnectors() {
// LDAP
- final InMemoryDirectoryServerConfig config = new InMemoryDirectoryServerConfig("dc=shibboleth,dc=net");
- config.setListenerConfigs(InMemoryListenerConfig.createLDAPConfig("default", 10391));
- config.addAdditionalBindCredentials("cn=Directory Manager", "password");
- directoryServer = new InMemoryDirectoryServer(config);
- directoryServer.importFromLDIF(true, LDAP_INIT_FILE);
- directoryServer.startListening();
+ directoryServer =
+ new InMemoryDirectory(
+ new String[] {"dc=shibboleth,dc=net"},
+ new ClassPathResource(LDAP_INIT_FILE),
+ 10391);
+ directoryServer.start();
// RDBMS
datasource = DatabaseTestingSupport.GetMockDataSource(DB_INIT_FILE, "myTestDB");
@@ -126,7 +122,8 @@ public class AttributeResolverTest extends OpenSAMLInitBaseTestCase {
* Shutdown the in-memory directory server.
*/
@AfterClass public void teardownDataConnectors() {
- directoryServer.shutDown(true);
+ assertEquals(directoryServer.openConnectionCount(), 0);
+ directoryServer.stop(true);
}
private ReloadableService<AttributeResolver> getResolver(final String file) {
diff --git a/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/IdP1676Test.java b/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/IdP1676Test.java
index cba278502..65b90db45 100644
--- a/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/IdP1676Test.java
+++ b/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/IdP1676Test.java
@@ -30,16 +30,12 @@ import org.springframework.context.support.ConversionServiceFactoryBean;
import org.springframework.context.support.GenericApplicationContext;
import org.springframework.core.env.MutablePropertySources;
import org.springframework.core.env.StandardEnvironment;
+import org.springframework.core.io.ClassPathResource;
import org.springframework.mock.env.MockPropertySource;
import org.testng.annotations.AfterClass;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.Test;
-import com.unboundid.ldap.listener.InMemoryDirectoryServer;
-import com.unboundid.ldap.listener.InMemoryDirectoryServerConfig;
-import com.unboundid.ldap.listener.InMemoryListenerConfig;
-import com.unboundid.ldap.sdk.LDAPException;
-
import net.shibboleth.idp.attribute.resolver.AttributeResolver;
import net.shibboleth.idp.attribute.resolver.ResolutionException;
import net.shibboleth.idp.attribute.resolver.context.AttributeResolutionContext;
@@ -51,15 +47,16 @@ import net.shibboleth.shared.service.ServiceableComponent;
import net.shibboleth.shared.spring.config.IdentifiableBeanPostProcessor;
import net.shibboleth.shared.spring.config.StringToDurationConverter;
import net.shibboleth.shared.spring.custom.SchemaTypeAwareXMLBeanDefinitionReader;
+import net.shibboleth.shared.testing.InMemoryDirectory;
@SuppressWarnings("javadoc")
public class IdP1676Test extends OpenSAMLInitBaseTestCase {
/* LDAP */
- private InMemoryDirectoryServer directoryServer;
+ private InMemoryDirectory directoryServer;
private static final String LDAP_INIT_FILE =
- "src/test/resources/net/shibboleth/idp/attribute/resolver/spring/ldapDataConnectorTest.ldif";
+ "/net/shibboleth/idp/attribute/resolver/spring/ldapDataConnectorTest.ldif";
private GenericApplicationContext pendingTeardownContext = null;
@@ -80,15 +77,15 @@ public class IdP1676Test extends OpenSAMLInitBaseTestCase {
pendingTeardownContext = context;
}
- protected synchronized void connectorOn() throws LDAPException {
+ protected synchronized void connectorOn() {
if (directoryServer == null) {
// LDAP
- final InMemoryDirectoryServerConfig config = new InMemoryDirectoryServerConfig("dc=shibboleth,dc=net");
- config.setListenerConfigs(InMemoryListenerConfig.createLDAPConfig("default", 10391));
- config.addAdditionalBindCredentials("cn=Directory Manager", "password");
- directoryServer = new InMemoryDirectoryServer(config);
- directoryServer.importFromLDIF(true, LDAP_INIT_FILE);
- directoryServer.startListening();
+ directoryServer =
+ new InMemoryDirectory(
+ new String[] {"dc=shibboleth,dc=net"},
+ new ClassPathResource(LDAP_INIT_FILE),
+ 10391);
+ directoryServer.start();
}
}
@@ -97,7 +94,7 @@ public class IdP1676Test extends OpenSAMLInitBaseTestCase {
*/
public synchronized void connectorOff() {
if (directoryServer != null) {
- directoryServer.shutDown(true);
+ directoryServer.stop(true);
}
directoryServer = null;
}
@@ -149,7 +146,7 @@ public class IdP1676Test extends OpenSAMLInitBaseTestCase {
}
- @Test public void failFast() throws LDAPException, ComponentInitializationException, ResolutionException {
+ @Test public void failFast() throws ComponentInitializationException, ResolutionException {
connectorOff();
ReloadableService<AttributeResolver> resolverService = getResolver(true, true);
assertNull(resolverService.getServiceableComponent());
@@ -166,7 +163,7 @@ public class IdP1676Test extends OpenSAMLInitBaseTestCase {
}
}
- @Test public void failFastNoPE() throws LDAPException, ComponentInitializationException, ResolutionException {
+ @Test public void failFastNoPE() throws ComponentInitializationException, ResolutionException {
connectorOff();
ReloadableService<AttributeResolver> resolverService = getResolver(true, false);
assertNull(resolverService.getServiceableComponent());
@@ -179,7 +176,7 @@ public class IdP1676Test extends OpenSAMLInitBaseTestCase {
connectorOff();
}
- @Test public void normal() throws LDAPException, ComponentInitializationException, ResolutionException, InterruptedException {
+ @Test public void normal() throws ComponentInitializationException, ResolutionException, InterruptedException {
connectorOn();
ReloadableService<AttributeResolver> resolverService = getResolver(false, true);
testResolve(resolverService, 7);
@@ -201,7 +198,7 @@ public class IdP1676Test extends OpenSAMLInitBaseTestCase {
testResolve(resolverService, 7);
}
- @Test public void normalNoPE() throws LDAPException, ComponentInitializationException, ResolutionException, InterruptedException {
+ @Test public void normalNoPE() throws ComponentInitializationException, ResolutionException, InterruptedException {
connectorOn();
ReloadableService<AttributeResolver> resolverService = getResolver(false, false);
testResolve(resolverService, 7);
diff --git a/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/impl/LDAPDataConnectorParserTest.java b/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/impl/LDAPDataConnectorParserTest.java
index e0de74607..ea4714df1 100644
--- a/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/impl/LDAPDataConnectorParserTest.java
+++ b/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/impl/LDAPDataConnectorParserTest.java
@@ -24,14 +24,13 @@ import static org.testng.Assert.assertNull;
import static org.testng.Assert.assertTrue;
import java.io.IOException;
-import java.security.GeneralSecurityException;
import java.time.Duration;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
-import java.util.List;
import java.util.Map;
+import java.util.Optional;
import java.util.stream.Collectors;
import org.ldaptive.BindConnectionInitializer;
@@ -67,21 +66,6 @@ import org.testng.annotations.Test;
import com.google.common.cache.Cache;
import com.google.common.cache.CacheBuilder;
-import com.unboundid.asn1.ASN1OctetString;
-import com.unboundid.ldap.listener.InMemoryDirectoryServer;
-import com.unboundid.ldap.listener.InMemoryDirectoryServerConfig;
-import com.unboundid.ldap.listener.InMemoryListenerConfig;
-import com.unboundid.ldap.listener.InMemoryRequestHandler;
-import com.unboundid.ldap.listener.InMemorySASLBindHandler;
-import com.unboundid.ldap.sdk.BindResult;
-import com.unboundid.ldap.sdk.Control;
-import com.unboundid.ldap.sdk.DN;
-import com.unboundid.ldap.sdk.LDAPException;
-import com.unboundid.ldap.sdk.LDAPResult;
-import com.unboundid.ldap.sdk.ResultCode;
-import com.unboundid.util.ssl.KeyStoreKeyManager;
-import com.unboundid.util.ssl.SSLUtil;
-import com.unboundid.util.ssl.TrustStoreTrustManager;
import net.shibboleth.idp.attribute.IdPAttribute;
import net.shibboleth.idp.attribute.resolver.ResolutionException;
@@ -94,6 +78,7 @@ import net.shibboleth.idp.attribute.resolver.testing.TestSources;
import net.shibboleth.shared.spring.context.FilesystemGenericApplicationContext;
import net.shibboleth.shared.spring.resource.PreferFileSystemResourceLoader;
import net.shibboleth.shared.spring.util.ApplicationContextBuilder;
+import net.shibboleth.shared.testing.InMemoryDirectory;
/** Test for {@link LDAPDataConnectorParser}. */
@@ -101,7 +86,7 @@ import net.shibboleth.shared.spring.util.ApplicationContextBuilder;
public class LDAPDataConnectorParserTest {
/** In-memory directory server. */
- private InMemoryDirectoryServer directoryServer;
+ private InMemoryDirectory directoryServer;
private GenericApplicationContext pendingTeardownContext = null;
@@ -129,54 +114,17 @@ public class LDAPDataConnectorParserTest {
}
/**
- * Creates an UnboundID in-memory directory server. Leverages LDIF found in test resources.
- *
- * @throws LDAPException if the in-memory directory server cannot be created
- * @throws GeneralSecurityException if the startTLS keystore or truststore cannot be loaded
+ * Creates an in-memory directory server. Leverages LDIF found in test resources.
*/
- @BeforeClass public void setupDirectoryServer() throws LDAPException, GeneralSecurityException {
- final InMemoryDirectoryServerConfig config = new InMemoryDirectoryServerConfig("dc=shibboleth,dc=net");
- final SSLUtil sslUtil =
- new SSLUtil(new KeyStoreKeyManager(
- "src/test/resources/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/server.keystore",
- "changeit".toCharArray()), new TrustStoreTrustManager(
- "src/test/resources/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/client.keystore",
- "changeit".toCharArray(), "JKS", false));
- config.setListenerConfigs(InMemoryListenerConfig.createLDAPConfig("default", null, 10389,
- sslUtil.createSSLSocketFactory()));
- config.addAdditionalBindCredentials("cn=Directory Manager", "password");
- config.addSASLBindHandler(new InMemorySASLBindHandler() {
- @Override
- public String getSASLMechanismName() {
- return "DIGEST-MD5";
- }
-
- @Override
- public BindResult processSASLBind(final InMemoryRequestHandler handler, final int messageID,
- final DN bindDN, final ASN1OctetString credentials,
- final List<Control> controls) {
- // return success for all digest MD5 bind requests
- return new BindResult(new LDAPResult(messageID, ResultCode.SUCCESS));
- }
- });
- config.addSASLBindHandler(new InMemorySASLBindHandler() {
- @Override
- public String getSASLMechanismName() {
- return "EXTERNAL";
- }
-
- @Override
- public BindResult processSASLBind(final InMemoryRequestHandler handler, final int messageID,
- final DN bindDN, final ASN1OctetString credentials,
- final List<Control> controls) {
- // return success for all EXTERNAL bind requests
- return new BindResult(new LDAPResult(messageID, ResultCode.SUCCESS));
- }
- });
- directoryServer = new InMemoryDirectoryServer(config);
- directoryServer.importFromLDIF(true,
- "src/test/resources/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/ldapDataConnectorTest.ldif");
- directoryServer.startListening();
+ @BeforeClass public void setupDirectoryServer() {
+ directoryServer =
+ new InMemoryDirectory(
+ new String[] {"dc=shibboleth,dc=net"},
+ new ClassPathResource("/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/ldapDataConnectorTest.ldif"),
+ 10389,
+ new ClassPathResource("/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/server.keystore"),
+ Optional.of(new ClassPathResource("/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/client.keystore")));
+ directoryServer.start();
System.setProperty(
"org.ldaptive.sasl.defaultSaslClient",
TestSaslClient.class.getName());
@@ -186,7 +134,7 @@ public class LDAPDataConnectorParserTest {
* Shutdown the in-memory directory server.
*/
@AfterClass public void teardownDirectoryServer() {
- directoryServer.shutDown(true);
+ directoryServer.stop(true);
System.clearProperty("org.ldaptive.sasl.defaultSaslClient");
}
diff --git a/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/failfast/AttributeResolverFailFastTest.java b/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/failfast/AttributeResolverFailFastTest.java
index f07cfbdcc..b69da76e5 100644
--- a/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/failfast/AttributeResolverFailFastTest.java
+++ b/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/failfast/AttributeResolverFailFastTest.java
@@ -17,34 +17,29 @@
package net.shibboleth.idp.attribute.resolver.spring.failfast;
+import static org.testng.Assert.assertEquals;
import static org.testng.Assert.assertNotNull;
import static org.testng.Assert.assertNull;
import java.io.IOException;
-import java.security.GeneralSecurityException;
+import java.util.Optional;
import javax.sql.DataSource;
+import org.springframework.core.io.ClassPathResource;
import org.springframework.mock.env.MockPropertySource;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Ignore;
import org.testng.annotations.Test;
-import com.unboundid.ldap.listener.InMemoryDirectoryServer;
-import com.unboundid.ldap.listener.InMemoryDirectoryServerConfig;
-import com.unboundid.ldap.listener.InMemoryListenerConfig;
-import com.unboundid.ldap.sdk.LDAPException;
-import com.unboundid.util.ssl.KeyStoreKeyManager;
-import com.unboundid.util.ssl.SSLUtil;
-import com.unboundid.util.ssl.TrustStoreTrustManager;
-
import net.shibboleth.idp.attribute.resolver.AttributeResolver;
import net.shibboleth.idp.attribute.resolver.spring.dc.rdbms.impl.RDBMSDataConnectorParserTest;
import net.shibboleth.shared.service.ReloadableService;
import net.shibboleth.shared.service.ServiceableComponent;
import net.shibboleth.shared.testing.DatabaseTestingSupport;
import net.shibboleth.spring.testing.AbstractFailFastTest;
+import net.shibboleth.shared.testing.InMemoryDirectory;
@Ignore
@SuppressWarnings({"unchecked", "javadoc"})
@@ -54,28 +49,22 @@ public class AttributeResolverFailFastTest extends AbstractFailFastTest {
return "/net/shibboleth/idp/attribute/resolver/failfast/";
}
- private InMemoryDirectoryServer directoryServer;
+ private InMemoryDirectory directoryServer;
private DataSource datasource;
- @BeforeClass(enabled = false) public void setupDirectoryServer() throws LDAPException, GeneralSecurityException {
+ @BeforeClass(enabled = false) public void setupDirectoryServer() {
//
// LDAP
//
- final InMemoryDirectoryServerConfig config = new InMemoryDirectoryServerConfig("dc=shibboleth,dc=net");
- final SSLUtil sslUtil =
- new SSLUtil(new KeyStoreKeyManager(
- "src/test/resources/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/server.keystore",
- "changeit".toCharArray()), new TrustStoreTrustManager(
- "src/test/resources/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/client.keystore",
- "changeit".toCharArray(), "JKS", false));
- config.setListenerConfigs(InMemoryListenerConfig.createLDAPConfig("default", null, 20389,
- sslUtil.createSSLSocketFactory()));
- config.addAdditionalBindCredentials("cn=Directory Manager", "password");
- directoryServer = new InMemoryDirectoryServer(config);
- directoryServer.importFromLDIF(true,
- "src/test/resources/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/ldapDataConnectorTest.ldif");
- directoryServer.startListening();
-
+ directoryServer =
+ new InMemoryDirectory(
+ new String[] {"dc=shibboleth,dc=net"},
+ new ClassPathResource("/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/ldapDataConnectorTest.ldif"),
+ 20389,
+ new ClassPathResource("/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/server.keystore"),
+ Optional.of(new ClassPathResource("/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/client.keystore")));
+ directoryServer.start();
+
//
// RDBMS
//
@@ -86,7 +75,8 @@ public class AttributeResolverFailFastTest extends AbstractFailFastTest {
@AfterClass public void teardownDirectoryServer() {
if (directoryServer != null) {
- directoryServer.shutDown(true);
+ assertEquals(directoryServer.openConnectionCount(), 0);
+ directoryServer.stop(true);
}
}
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the commits
mailing list