From d214d20371927265ca4b5c304de2301cb61535b3 Mon Sep 17 00:00:00 2001 From: mlbiam Date: Sat, 26 Aug 2017 21:32:38 -0400 Subject: [PATCH 1/6] for #33 added check for peer routes --- src/main/java/net/sourceforge/myvd/router/Router.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/main/java/net/sourceforge/myvd/router/Router.java b/src/main/java/net/sourceforge/myvd/router/Router.java index a72a600..e9cdde0 100644 --- a/src/main/java/net/sourceforge/myvd/router/Router.java +++ b/src/main/java/net/sourceforge/myvd/router/Router.java @@ -347,7 +347,9 @@ public void search(SearchInterceptorChain chain,DistinguishedName base,Int scope logger.debug("Determine scope"); Int localScope = new Int(scope.getValue()); if (scope.getValue() != 0) { - if (scope.getValue() == 1) { + if (holder.getBase().getDN().countRDNs() == searchBase.getDN().countRDNs() && ! holder.getBase().getDN().equals(searchBase.getDN())) { + continue; + } else if (scope.getValue() == 1) { if (holder.getBase().getDN().countRDNs() - searchBase.getDN().countRDNs() == 1) { localScope.setValue(0); searchBase = new DistinguishedName(holder.getBase().getDN().toString()); From 3ea262f9ea4ea07e422b73f3e93ce783bac1c389 Mon Sep 17 00:00:00 2001 From: mlbiam Date: Mon, 18 Sep 2017 09:32:51 -0400 Subject: [PATCH 2/6] for #33 added test cases --- pom.xml | 2 +- .../myvd/test/router/TestSearchOverlap.java | 165 ++++++++++++++++++ test/TestServer/ldap-overlapp-test.conf | 36 ++++ .../onelevel-from-openldap-ou.ldif | 8 + .../onelevel-from-overlap-ou.ldif | 5 + .../ldap-overlap/onelevel-from-root.ldif | 16 ++ .../subtree-from-openldap-ou.ldif | 12 ++ .../ldap-overlap/subtree-from-overlap-ou.ldif | 23 +++ test/test-data/ldap-overlap/subtree-root.ldif | 48 +++++ 9 files changed, 314 insertions(+), 1 deletion(-) create mode 100644 src/test/java/net/sourceforge/myvd/test/router/TestSearchOverlap.java create mode 100644 test/TestServer/ldap-overlapp-test.conf create mode 100644 test/test-data/ldap-overlap/onelevel-from-openldap-ou.ldif create mode 100644 test/test-data/ldap-overlap/onelevel-from-overlap-ou.ldif create mode 100644 test/test-data/ldap-overlap/onelevel-from-root.ldif create mode 100644 test/test-data/ldap-overlap/subtree-from-openldap-ou.ldif create mode 100644 test/test-data/ldap-overlap/subtree-from-overlap-ou.ldif create mode 100644 test/test-data/ldap-overlap/subtree-root.ldif diff --git a/pom.xml b/pom.xml index f89d66d..0b40252 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ net.sourceforge.myvd myvd-server - 1.0.1 + 1.0.2 jar server diff --git a/src/test/java/net/sourceforge/myvd/test/router/TestSearchOverlap.java b/src/test/java/net/sourceforge/myvd/test/router/TestSearchOverlap.java new file mode 100644 index 0000000..e787b9c --- /dev/null +++ b/src/test/java/net/sourceforge/myvd/test/router/TestSearchOverlap.java @@ -0,0 +1,165 @@ +package net.sourceforge.myvd.test.router; + +import com.novell.ldap.*; +import com.novell.ldap.util.LDIFReader; +import net.sourceforge.myvd.test.util.OpenLDAPUtils; +import net.sourceforge.myvd.test.util.StartMyVD; +import net.sourceforge.myvd.test.util.StartOpenLDAP; +import net.sourceforge.myvd.test.util.Util; +import org.junit.AfterClass; +import org.junit.BeforeClass; +import org.junit.Test; + +import java.io.FileInputStream; + +import static junit.framework.TestCase.assertNotNull; +import static junit.framework.TestCase.assertNull; +import static junit.framework.TestCase.assertTrue; +import static org.junit.Assert.assertFalse; + +public class TestSearchOverlap { + + private static StartOpenLDAP internalServer; + private static StartOpenLDAP externalServer; + private static StartMyVD server; + + @BeforeClass + public static void setupClass() throws Exception { + OpenLDAPUtils.killAllOpenLDAPS(); + internalServer = new StartOpenLDAP(); + internalServer.startServer(System.getenv("PROJ_DIR") + + "/test/InternalUsers", 11983, + "cn=admin,ou=internal,dc=domain,dc=com", "manager"); + + externalServer = new StartOpenLDAP(); + externalServer.startServer(System.getenv("PROJ_DIR") + + "/test/ExternalUsers", 12983, + "cn=admin,ou=external,dc=domain,dc=com", "manager"); + + server = new StartMyVD(); + server.startServer(System.getenv("PROJ_DIR") + + "/test/TestServer/ldap-overlapp-test.conf", 50983); + + } + + @AfterClass + public static void shutdownClass() throws Exception { + server.stopServer(); + externalServer.stopServer(); + internalServer.stopServer(); + } + + @Test + public void testOneLevelFromRootObjectSuccess() throws Exception { + LDAPConnection con = new LDAPConnection(); + con.connect("localhost",50983); + LDIFReader testDataReader = new LDIFReader(new FileInputStream(System.getenv("PROJ_DIR") + "/test/test-data/ldap-overlap/onelevel-from-root.ldif")); + LDAPSearchResults res = con.search("dc=local,dc=com",1,"(objectClass=*)",new String[]{},false); + + while (res.hasMore()) { + LDAPEntry fromSearch = res.next(); + LDAPMessage msg = testDataReader.readMessage(); + assertNotNull(msg); + LDAPEntry fromLDIF = ((LDAPSearchResult) msg).getEntry(); + assertTrue("entries match",Util.compareEntry(fromSearch,fromLDIF)); + } + + LDAPMessage msg = testDataReader.readMessage(); + assertNull(msg); + } + + @Test + public void testOneLevelFromOpenLDAPRootSuccess() throws Exception { + LDAPConnection con = new LDAPConnection(); + con.connect("localhost",50983); + LDIFReader testDataReader = new LDIFReader(new FileInputStream(System.getenv("PROJ_DIR") + "/test/test-data/ldap-overlap/onelevel-from-openldap-ou.ldif")); + LDAPSearchResults res = con.search("ou=internal,dc=local,dc=com",1,"(objectClass=*)",new String[]{},false); + + while (res.hasMore()) { + LDAPEntry fromSearch = res.next(); + LDAPMessage msg = testDataReader.readMessage(); + assertNotNull(msg); + LDAPEntry fromLDIF = ((LDAPSearchResult) msg).getEntry(); + assertTrue("entries match",Util.compareEntry(fromSearch,fromLDIF)); + } + + LDAPMessage msg = testDataReader.readMessage(); + assertNull(msg); + } + + @Test + public void testSubtreeFromOpenLDAPRootSuccess() throws Exception { + LDAPConnection con = new LDAPConnection(); + con.connect("localhost",50983); + LDIFReader testDataReader = new LDIFReader(new FileInputStream(System.getenv("PROJ_DIR") + "/test/test-data/ldap-overlap/subtree-from-openldap-ou.ldif")); + LDAPSearchResults res = con.search("ou=internal,dc=local,dc=com",2,"(objectClass=*)",new String[]{},false); + + while (res.hasMore()) { + LDAPEntry fromSearch = res.next(); + LDAPMessage msg = testDataReader.readMessage(); + assertNotNull(msg); + LDAPEntry fromLDIF = ((LDAPSearchResult) msg).getEntry(); + assertTrue("entries match",Util.compareEntry(fromSearch,fromLDIF)); + } + + LDAPMessage msg = testDataReader.readMessage(); + assertNull(msg); + } + + @Test + public void testOneLevelFromOverlapRootSuccess() throws Exception { + LDAPConnection con = new LDAPConnection(); + con.connect("localhost",50983); + LDIFReader testDataReader = new LDIFReader(new FileInputStream(System.getenv("PROJ_DIR") + "/test/test-data/ldap-overlap/onelevel-from-overlap-ou.ldif")); + LDAPSearchResults res = con.search("dc=domain,dc=local,dc=com",1,"(objectClass=*)",new String[]{},false); + + while (res.hasMore()) { + LDAPEntry fromSearch = res.next(); + LDAPMessage msg = testDataReader.readMessage(); + assertNotNull(msg); + LDAPEntry fromLDIF = ((LDAPSearchResult) msg).getEntry(); + assertTrue("entries match",Util.compareEntry(fromSearch,fromLDIF)); + } + + LDAPMessage msg = testDataReader.readMessage(); + assertNull(msg); + } + + @Test + public void testSubtreeFromOverlapRootSuccess() throws Exception { + LDAPConnection con = new LDAPConnection(); + con.connect("localhost",50983); + LDIFReader testDataReader = new LDIFReader(new FileInputStream(System.getenv("PROJ_DIR") + "/test/test-data/ldap-overlap/subtree-from-overlap-ou.ldif")); + LDAPSearchResults res = con.search("dc=domain,dc=local,dc=com",2,"(objectClass=*)",new String[]{},false); + + while (res.hasMore()) { + LDAPEntry fromSearch = res.next(); + LDAPMessage msg = testDataReader.readMessage(); + assertNotNull(msg); + LDAPEntry fromLDIF = ((LDAPSearchResult) msg).getEntry(); + assertTrue("entries match",Util.compareEntry(fromSearch,fromLDIF)); + } + + LDAPMessage msg = testDataReader.readMessage(); + assertNull(msg); + } + + @Test + public void testSubtreeLevelFromRootRootSuccess() throws Exception { + LDAPConnection con = new LDAPConnection(); + con.connect("localhost",50983); + LDIFReader testDataReader = new LDIFReader(new FileInputStream(System.getenv("PROJ_DIR") + "/test/test-data/ldap-overlap/subtree-root.ldif")); + LDAPSearchResults res = con.search("dc=local,dc=com",2,"(objectClass=*)",new String[]{},false); + + while (res.hasMore()) { + LDAPEntry fromSearch = res.next(); + LDAPMessage msg = testDataReader.readMessage(); + assertNotNull(msg); + LDAPEntry fromLDIF = ((LDAPSearchResult) msg).getEntry(); + assertTrue("entries match",Util.compareEntry(fromSearch,fromLDIF)); + } + + LDAPMessage msg = testDataReader.readMessage(); + assertNull(msg); + } +} diff --git a/test/TestServer/ldap-overlapp-test.conf b/test/TestServer/ldap-overlapp-test.conf new file mode 100644 index 0000000..10a09b5 --- /dev/null +++ b/test/TestServer/ldap-overlapp-test.conf @@ -0,0 +1,36 @@ +server.listener.port=50983 + +#No global chain +server.globalChain= + +#Setup a single proxy +server.nameSpaces=openldap,activedirectory + +server.openldap.chain=dnmapper,LDAPopenldap +server.openldap.nameSpace=dc=local,dc=com +server.openldap.weight=20 + +server.openldap.dnmapper.className=net.sourceforge.myvd.inserts.mapping.DNAttributeMapper +server.openldap.dnmapper.config.dnAttribs=uniqueMember,member,memberOf,distinguishedName +server.openldap.dnmapper.config.localBase=dc=local,dc=com +server.openldap.dnmapper.config.urlAttribs= +server.openldap.dnmapper.config.remoteBase=dc=domain,dc=com +server.openldap.LDAPopenldap.className=net.sourceforge.myvd.inserts.ldap.LDAPInterceptor +server.openldap.LDAPopenldap.config.host=localhost +server.openldap.LDAPopenldap.config.port=11983 +server.openldap.LDAPopenldap.config.remoteBase=dc=domain,dc=com +server.openldap.LDAPopenldap.config.proxyDN=cn=admin,ou=internal,dc=domain,dc=com +server.openldap.LDAPopenldap.config.proxyPass=manager + + +server.activedirectory.chain=ldap +server.activedirectory.nameSpace=dc=domain,dc=local,dc=com +server.activedirectory.weight=10 +server.activedirectory.enabled=true +server.activedirectory.ldap.className=net.sourceforge.myvd.inserts.ldap.LDAPInterceptor +server.activedirectory.ldap.config.host=localhost +server.activedirectory.ldap.config.port=12983 +server.activedirectory.ldap.config.remoteBase=dc=domain,dc=com +server.activedirectory.ldap.config.proxyDN=cn=admin,ou=external,dc=domain,dc=com +server.activedirectory.ldap.config.proxyPass=manager +server.activedirectory.ldap.config.passBindOnly=true diff --git a/test/test-data/ldap-overlap/onelevel-from-openldap-ou.ldif b/test/test-data/ldap-overlap/onelevel-from-openldap-ou.ldif new file mode 100644 index 0000000..b8c99b9 --- /dev/null +++ b/test/test-data/ldap-overlap/onelevel-from-openldap-ou.ldif @@ -0,0 +1,8 @@ +version: 1 + +dn: cn=Test User,ou=internal,dc=local,dc=com +objectClass: inetOrgPerson +cn: Test User +sn: User +uid: testUser +userPassword: secret \ No newline at end of file diff --git a/test/test-data/ldap-overlap/onelevel-from-overlap-ou.ldif b/test/test-data/ldap-overlap/onelevel-from-overlap-ou.ldif new file mode 100644 index 0000000..e35b20a --- /dev/null +++ b/test/test-data/ldap-overlap/onelevel-from-overlap-ou.ldif @@ -0,0 +1,5 @@ +version: 1 + +dn: ou=external,dc=domain,dc=local,dc=com +objectClass: organizationalUnit +ou: external \ No newline at end of file diff --git a/test/test-data/ldap-overlap/onelevel-from-root.ldif b/test/test-data/ldap-overlap/onelevel-from-root.ldif new file mode 100644 index 0000000..e9f8e93 --- /dev/null +++ b/test/test-data/ldap-overlap/onelevel-from-root.ldif @@ -0,0 +1,16 @@ +version: 1 + +dn: ou=groups,dc=local,dc=com +objectClass: organizationalUnit +ou: groups + +dn: ou=internal,dc=local,dc=com +objectClass: organizationalUnit +ou: internal + +dn: dc=domain,dc=local,dc=com +objectClass: domain +dc: domain + + + diff --git a/test/test-data/ldap-overlap/subtree-from-openldap-ou.ldif b/test/test-data/ldap-overlap/subtree-from-openldap-ou.ldif new file mode 100644 index 0000000..5f1132a --- /dev/null +++ b/test/test-data/ldap-overlap/subtree-from-openldap-ou.ldif @@ -0,0 +1,12 @@ +version: 1 + +dn: ou=internal,dc=local,dc=com +objectClass: organizationalUnit +ou: internal + +dn: cn=Test User,ou=internal,dc=local,dc=com +objectClass: inetOrgPerson +cn: Test User +sn: User +uid: testUser +userPassword: secret \ No newline at end of file diff --git a/test/test-data/ldap-overlap/subtree-from-overlap-ou.ldif b/test/test-data/ldap-overlap/subtree-from-overlap-ou.ldif new file mode 100644 index 0000000..b8fc2d5 --- /dev/null +++ b/test/test-data/ldap-overlap/subtree-from-overlap-ou.ldif @@ -0,0 +1,23 @@ +version: 1 + + + +dn: dc=domain,dc=local,dc=com +objectClass: domain +dc: domain + +dn: ou=external,dc=domain,dc=local,dc=com +objectClass: organizationalUnit +ou: external + +dn: cn=Test Cust,ou=external,dc=domain,dc=local,dc=com +objectClass: inetOrgPerson +cn: Test Cust +sn: Cust +uid: testCust +userPassword: secret + +dn: cn=Test Group,ou=external,dc=domain,dc=local,dc=com +objectClass: groupOfUniqueNames +cn: Test Group +uniqueMember: cn=Test Cust,ou=external,dc=domain,dc=com \ No newline at end of file diff --git a/test/test-data/ldap-overlap/subtree-root.ldif b/test/test-data/ldap-overlap/subtree-root.ldif new file mode 100644 index 0000000..faa4f8a --- /dev/null +++ b/test/test-data/ldap-overlap/subtree-root.ldif @@ -0,0 +1,48 @@ +version: 1 + +dn: dc=local,dc=com +objectClass: domain +dc: domain + +dn: ou=internal,dc=local,dc=com +objectClass: organizationalUnit +ou: internal + + +dn: ou=groups,dc=local,dc=com +objectClass: organizationalUnit +ou: groups + +dn: cn=Test Group,ou=groups,dc=local,dc=com +objectClass: groupOfUniqueNames +cn: Test Group +uniqueMember: uid=testuser1,ou=people,dc=local,dc=com +uniqueMember: uid=testuser2,ou=people,dc=local,dc=com + +dn: cn=Test User,ou=internal,dc=local,dc=com +objectClass: inetOrgPerson +cn: Test User +sn: User +uid: testUser +userPassword: secret + +dn: dc=domain,dc=local,dc=com +objectClass: domain +dc: domain + +dn: ou=external,dc=domain,dc=local,dc=com +objectClass: organizationalUnit +ou: external + +dn: cn=Test Cust,ou=external,dc=domain,dc=local,dc=com +objectClass: inetOrgPerson +cn: Test Cust +sn: Cust +uid: testCust +userPassword: secret + +dn: cn=Test Group,ou=external,dc=domain,dc=local,dc=com +objectClass: groupOfUniqueNames +cn: Test Group +uniqueMember: cn=Test Cust,ou=external,dc=domain,dc=com + From 7184e0508cbf613919f7ddec66181cb09a0ae4eb Mon Sep 17 00:00:00 2001 From: mlbiam Date: Mon, 18 Sep 2017 10:39:17 -0400 Subject: [PATCH 3/6] for #34 updated build, versions --- pom.xml | 14 +++++++------- .../java/net/sourceforge/myvd/server/Server.java | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/pom.xml b/pom.xml index 0b40252..475c9b2 100644 --- a/pom.xml +++ b/pom.xml @@ -117,12 +117,12 @@ org.bouncycastle bcprov-jdk15on - 1.56 + 1.58 org.bouncycastle bcprov-ext-jdk15on - 1.55 + 1.58 org.apache.ant @@ -136,7 +136,7 @@ net.sf.ehcache ehcache - 2.10.3 + 2.10.4 @@ -160,17 +160,17 @@ org.apache.logging.log4j log4j-api - 2.8.1 + 2.9.0 org.apache.logging.log4j log4j-core - 2.8.1 + 2.9.0 org.apache.logging.log4j log4j-1.2-api - 2.8.1 + 2.9.0 @@ -310,7 +310,7 @@ 1 false - -Xmx1024m -XX:MaxPermSize=256m + -Xmx1024m MY_TEST_SCHEMA_${surefire.forkNumber} diff --git a/src/main/java/net/sourceforge/myvd/server/Server.java b/src/main/java/net/sourceforge/myvd/server/Server.java index b00c664..8e5ce1a 100644 --- a/src/main/java/net/sourceforge/myvd/server/Server.java +++ b/src/main/java/net/sourceforge/myvd/server/Server.java @@ -81,7 +81,7 @@ public class Server { static Logger logger; - public final static String VERSION = "1.0.1"; + public final static String VERSION = "1.0.2"; String configFile; Properties props; From 4f26629f624ba2a48ec00e7c3151e4e8ce3f1a40 Mon Sep 17 00:00:00 2001 From: mlbiam Date: Sun, 3 Dec 2017 09:31:04 -0500 Subject: [PATCH 4/6] for #34 updated versions for final release --- pom.xml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/pom.xml b/pom.xml index 475c9b2..95f4284 100644 --- a/pom.xml +++ b/pom.xml @@ -160,24 +160,24 @@ org.apache.logging.log4j log4j-api - 2.9.0 + 2.10.0 org.apache.logging.log4j log4j-core - 2.9.0 + 2.10.0 org.apache.logging.log4j log4j-1.2-api - 2.9.0 + 2.10.0 commons-io commons-io - 2.5 + 2.6 @@ -189,7 +189,7 @@ commons-daemon commons-daemon - 1.0.15 + 1.1.0 From 92878e949a015a5bf1b5f5e86aad8014e96dbde2 Mon Sep 17 00:00:00 2001 From: mlbiam Date: Tue, 13 Feb 2018 12:19:44 -0500 Subject: [PATCH 5/6] for #39 --- myvd-server.iml | 50 +++++++++++++++++++ pom.xml | 9 +++- .../myvd/inserts/ldap/ConnectionWrapper.java | 26 ++++++++-- .../myvd/inserts/ldap/LDAPInterceptor.java | 5 ++ 4 files changed, 85 insertions(+), 5 deletions(-) create mode 100644 myvd-server.iml diff --git a/myvd-server.iml b/myvd-server.iml new file mode 100644 index 0000000..d8a3663 --- /dev/null +++ b/myvd-server.iml @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/pom.xml b/pom.xml index 95f4284..8188de4 100644 --- a/pom.xml +++ b/pom.xml @@ -117,12 +117,12 @@ org.bouncycastle bcprov-jdk15on - 1.58 + 1.59 org.bouncycastle bcprov-ext-jdk15on - 1.58 + 1.59 org.apache.ant @@ -233,6 +233,11 @@ joda-time 2.9.9 + + dnsjava + dnsjava + 2.1.8 + diff --git a/src/main/java/net/sourceforge/myvd/inserts/ldap/ConnectionWrapper.java b/src/main/java/net/sourceforge/myvd/inserts/ldap/ConnectionWrapper.java index 59066c9..a5593e5 100644 --- a/src/main/java/net/sourceforge/myvd/inserts/ldap/ConnectionWrapper.java +++ b/src/main/java/net/sourceforge/myvd/inserts/ldap/ConnectionWrapper.java @@ -16,7 +16,11 @@ package net.sourceforge.myvd.inserts.ldap; import org.apache.logging.log4j.Logger; - +import org.xbill.DNS.Lookup; +import org.xbill.DNS.Record; +import org.xbill.DNS.SRVRecord; +import org.xbill.DNS.TextParseException; +import org.xbill.DNS.Type; import net.sourceforge.myvd.types.Bool; import net.sourceforge.myvd.types.Password; @@ -47,6 +51,7 @@ public ConnectionWrapper(LDAPInterceptor interceptor) { this.locked.setValue(false); this.bindDN = null; + } public synchronized boolean wasLocked() { @@ -195,8 +200,23 @@ private LDAPConnection createConnection() throws LDAPException { if (ldapcon == null) { return null; } else { - - ldapcon.connect(this.interceptor.host,this.interceptor.port); + String host = this.interceptor.host; + + if (this.interceptor.useSrvDNS) { + Record[] records; + try { + records = new Lookup(host, Type.SRV).run(); + } catch (TextParseException e) { + throw new LDAPException(LDAPException.resultCodeToString(LDAPException.OPERATIONS_ERROR),LDAPException.OPERATIONS_ERROR,"Could not lookup srv",e); + } + if (records == null) { + throw new LDAPException("No SRV records",LDAPException.OPERATIONS_ERROR,""); + } + SRVRecord srv = (SRVRecord) records[0]; + host = srv.getTarget().toString(); + } + + ldapcon.connect(host,this.interceptor.port); return ldapcon; } } diff --git a/src/main/java/net/sourceforge/myvd/inserts/ldap/LDAPInterceptor.java b/src/main/java/net/sourceforge/myvd/inserts/ldap/LDAPInterceptor.java index d9c5626..fe0ef2c 100644 --- a/src/main/java/net/sourceforge/myvd/inserts/ldap/LDAPInterceptor.java +++ b/src/main/java/net/sourceforge/myvd/inserts/ldap/LDAPInterceptor.java @@ -103,6 +103,7 @@ public class LDAPInterceptor implements Insert { private long heartbeatIntervalMinis; private LDAPHeartBeat heartBeat; + public boolean useSrvDNS; public void configure(String name, Properties props,NameSpace nameSpace) throws LDAPException { this.name = name; @@ -164,6 +165,8 @@ public void configure(String name, Properties props,NameSpace nameSpace) throws this.maxStaleTime = Long.parseLong(props.getProperty("maxStaleTimeMillis","60000")); logger.info("Maximum stale connection time in millis : " + this.maxStaleTime); + this.useSrvDNS = props.getProperty("useSrvDNS", "false").equalsIgnoreCase("true"); + this.pool = new LDAPConnectionPool(this, Integer.parseInt(props.getProperty("minimumConnections","5")), Integer.parseInt(props.getProperty("maximumConnections","30")), Integer.parseInt(props.getProperty("maximumRetries","5")),this.type,this.spmlImpl,this.isSoap); @@ -183,6 +186,8 @@ public void configure(String name, Properties props,NameSpace nameSpace) throws this.heartBeat = new LDAPHeartBeat(this); new Thread(this.heartBeat).start(); } + + } private ConnectionWrapper getConnection(DN bindDN,Password pass,boolean force,DN base,HashMap session) throws LDAPException { From 8e921838fd7d725e616195bdf219235e37247296 Mon Sep 17 00:00:00 2001 From: mlbiam Date: Sat, 24 Feb 2018 10:59:55 -0500 Subject: [PATCH 6/6] updated changelog --- CHANGELOG.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 66eb0d5..9ccbc1d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,19 @@ +# 1.0.2 +**questions:** + - Combining AD as a branch of OpenLdap [\#33](https://github.com/TremoloSecurity/MyVirtualDirectory/issues/33) + +**enhancements:** + - Add support for ldap host lookup by SRV [\#39](https://github.com/TremoloSecurity/MyVirtualDirectory/issues/39) + - Release 1.0.2 [\#34](https://github.com/TremoloSecurity/MyVirtualDirectory/issues/34) + - Release [\#30](https://github.com/TremoloSecurity/MyVirtualDirectory/issues/30) + +**bugs:** + - Combining AD as a branch of OpenLdap [\#33](https://github.com/TremoloSecurity/MyVirtualDirectory/issues/33) + - add bindPrimaryFirst to joiner docs [\#25](https://github.com/TremoloSecurity/MyVirtualDirectory/issues/25) + - fix docs for UUIDtoText [\#17](https://github.com/TremoloSecurity/MyVirtualDirectory/issues/17) + - RootObject not in documentation [\#14](https://github.com/TremoloSecurity/MyVirtualDirectory/issues/14) + + # 1.0.1 **bugs:** - add bindPrimaryFirst to joiner docs [\#25](https://github.com/TremoloSecurity/MyVirtualDirectory/issues/25)