[java-opensaml] 01/01: Changes to support the ldaptive v2 API.

Daniel Fisher dfisher at vt.edu
Sat Aug 28 02:14:36 UTC 2021


This is an automated email from the git hooks/post-receive script.

dfisher pushed a commit to branch dev/ldaptive-v2
in repository java-opensaml.

View the commit online:
http://git.shibboleth.net/view/?p=java-opensaml.git;a=commit;h=350b29e5e0282b6311eb7fd906ae2900f5d3088a

commit 350b29e5e0282b6311eb7fd906ae2900f5d3088a
Author: Daniel Fisher <dfisher at vt.edu>
AuthorDate: Fri Aug 27 22:12:41 2021 -0400

    Changes to support the ldaptive v2 API.
---
 .../impl/TrustEngineX509TrustManagerTest.java      | 20 +++----
 .../opensaml/storage/impl/LDAPStorageService.java  | 66 ++++++++++------------
 .../storage/impl/LDAPStorageServiceTest.java       |  7 +--
 3 files changed, 38 insertions(+), 55 deletions(-)

diff --git a/opensaml-security-impl/src/test/java/org/opensaml/security/trust/impl/TrustEngineX509TrustManagerTest.java b/opensaml-security-impl/src/test/java/org/opensaml/security/trust/impl/TrustEngineX509TrustManagerTest.java
index 6f2cfd13f..fdfb4339c 100644
--- a/opensaml-security-impl/src/test/java/org/opensaml/security/trust/impl/TrustEngineX509TrustManagerTest.java
+++ b/opensaml-security-impl/src/test/java/org/opensaml/security/trust/impl/TrustEngineX509TrustManagerTest.java
@@ -27,13 +27,13 @@ import javax.annotation.Nonnull;
 import org.cryptacular.util.KeyPairUtil;
 import org.ldaptive.Connection;
 import org.ldaptive.ConnectionConfig;
+import org.ldaptive.ConnectionFactory;
 import org.ldaptive.DefaultConnectionFactory;
 import org.ldaptive.LdapException;
-import org.ldaptive.Response;
 import org.ldaptive.ResultCode;
 import org.ldaptive.SearchOperation;
 import org.ldaptive.SearchRequest;
-import org.ldaptive.SearchResult;
+import org.ldaptive.SearchResponse;
 import org.ldaptive.ssl.SslConfig;
 import org.opensaml.security.credential.BasicCredential;
 import org.opensaml.security.credential.impl.StaticCredentialResolver;
@@ -138,19 +138,13 @@ public class TrustEngineX509TrustManagerTest {
         config.setUseStartTLS(true);
         config.setSslConfig(sslConfig);
         final DefaultConnectionFactory factory = new DefaultConnectionFactory(config);
-        final Connection conn = factory.getConnection();
-        try {
-            conn.open();
-            doSearch(conn);
-        } finally {
-            conn.close();
-        }
+        doSearch(factory);
     }
 
-    protected void doSearch(@Nonnull final Connection conn) throws LdapException {
-        final SearchOperation search = new SearchOperation(conn);
-        final Response<SearchResult> result =
-                search.execute(SearchRequest.newObjectScopeSearchRequest(context, new String[] {"description"}));
+    protected void doSearch(@Nonnull final ConnectionFactory connFactory) throws LdapException {
+        final SearchOperation search = new SearchOperation(connFactory);
+        final SearchResponse result =
+                search.execute(SearchRequest.objectScopeSearchRequest(context, new String[] {"description"}));
         Assert.assertNotNull(result);
         Assert.assertEquals(result.getResultCode(), ResultCode.SUCCESS);
     }
diff --git a/opensaml-storage-impl/src/main/java/org/opensaml/storage/impl/LDAPStorageService.java b/opensaml-storage-impl/src/main/java/org/opensaml/storage/impl/LDAPStorageService.java
index 9854b67f4..7e101bc66 100644
--- a/opensaml-storage-impl/src/main/java/org/opensaml/storage/impl/LDAPStorageService.java
+++ b/opensaml-storage-impl/src/main/java/org/opensaml/storage/impl/LDAPStorageService.java
@@ -29,23 +29,24 @@ import net.shibboleth.utilities.java.support.component.ComponentInitializationEx
 import net.shibboleth.utilities.java.support.logic.Constraint;
 
 import org.ldaptive.AttributeModification;
-import org.ldaptive.AttributeModificationType;
 import org.ldaptive.Connection;
 import org.ldaptive.DeleteOperation;
 import org.ldaptive.DeleteRequest;
+import org.ldaptive.DeleteResponse;
 import org.ldaptive.LdapAttribute;
 import org.ldaptive.LdapEntry;
 import org.ldaptive.LdapException;
 import org.ldaptive.ModifyOperation;
 import org.ldaptive.ModifyRequest;
-import org.ldaptive.Response;
+import org.ldaptive.ModifyResponse;
+import org.ldaptive.PooledConnectionFactory;
+import org.ldaptive.Result;
 import org.ldaptive.ResultCode;
 import org.ldaptive.SearchOperation;
 import org.ldaptive.SearchRequest;
-import org.ldaptive.SearchResult;
+import org.ldaptive.SearchResponse;
 import org.ldaptive.ext.MergeOperation;
 import org.ldaptive.ext.MergeRequest;
-import org.ldaptive.pool.PooledConnectionFactory;
 import org.opensaml.storage.AbstractStorageService;
 import org.opensaml.storage.StorageCapabilitiesEx;
 import org.opensaml.storage.StorageRecord;
@@ -96,14 +97,14 @@ public class LDAPStorageService extends AbstractStorageService implements Storag
     /** {@inheritDoc} */
     @Override protected void doInitialize() throws ComponentInitializationException {
         super.doInitialize();
-        connectionFactory.getConnectionPool().initialize();
+        connectionFactory.initialize();
     }
 
     /** {@inheritDoc} */
     @Override protected void doDestroy() {
         super.doDestroy();
         if (isInitialized()) {
-            connectionFactory.getConnectionPool().close();
+            connectionFactory.close();
             connectionFactory = null;
         }
     }
@@ -114,8 +115,8 @@ public class LDAPStorageService extends AbstractStorageService implements Storag
         if (expiration != null) {
             throw new UnsupportedOperationException("Expiration not supported");
         }
-        final LdapEntry entry = new LdapEntry(context, defaultAttributes);
-        entry.addAttribute(new LdapAttribute(key, value));
+        final LdapEntry entry = LdapEntry.builder().dn(context).attributes(defaultAttributes).build();
+        entry.addAttributes(new LdapAttribute(key, value));
         try {
             merge(entry);
             return true;
@@ -128,9 +129,9 @@ public class LDAPStorageService extends AbstractStorageService implements Storag
     /** {@inheritDoc} */
     @Override @Nullable public <T> StorageRecord<T> read(@Nonnull @NotEmpty final String context,
             @Nonnull @NotEmpty final String key) throws IOException {
-        SearchResult result = null;
+        SearchResponse result = null;
         try {
-            result = search(context, key).getResult();
+            result = search(context, key);
         } catch (final LdapException e) {
             if (e.getResultCode() != ResultCode.NO_SUCH_OBJECT) {
                 log.error("LDAP search operation failed: {}", e.getMessage());
@@ -138,7 +139,7 @@ public class LDAPStorageService extends AbstractStorageService implements Storag
             }
         }
         StorageRecord<T> record = null;
-        if (result != null && result.size() > 0) {
+        if (result != null && result.entrySize() > 0) {
             final LdapEntry entry = result.getEntry();
             if (entry != null) {
                 final LdapAttribute attr = entry.getAttribute(key);
@@ -162,8 +163,8 @@ public class LDAPStorageService extends AbstractStorageService implements Storag
         if (expiration != null) {
             throw new UnsupportedOperationException("Expiration not supported");
         }
-        final LdapEntry entry = new LdapEntry(context, defaultAttributes);
-        entry.addAttribute(new LdapAttribute(key, value));
+        final LdapEntry entry = LdapEntry.builder().dn(context).attributes(defaultAttributes).build();
+        entry.addAttributes(new LdapAttribute(key, value));
         try {
             merge(entry);
             return true;
@@ -235,13 +236,11 @@ public class LDAPStorageService extends AbstractStorageService implements Storag
      * 
      * @throws LdapException if the operation fails
      */
-    @Nonnull private Response<Void> merge(@Nonnull final LdapEntry entry) throws LdapException {
-        try (final Connection conn = connectionFactory.getConnection()) {
-            final MergeOperation merge = new MergeOperation(conn);
-            final MergeRequest request = new MergeRequest(entry);
-            request.setIncludeAttributes(entry.getAttributeNames());
-            return merge.execute(request);
-        }
+    @Nonnull private Result merge(@Nonnull final LdapEntry entry) throws LdapException {
+        final MergeOperation merge = new MergeOperation(connectionFactory);
+        final MergeRequest request = new MergeRequest(entry);
+        request.setIncludeAttributes(entry.getAttributeNames());
+        return merge.execute(request);
     }
 
     /**
@@ -254,12 +253,10 @@ public class LDAPStorageService extends AbstractStorageService implements Storag
      * 
      * @throws LdapException if the operation fails
      */
-    @Nonnull private Response<SearchResult> search(@Nonnull final String dn, final String... attrs)
+    @Nonnull private SearchResponse search(@Nonnull final String dn, final String... attrs)
             throws LdapException {
-        try (final Connection conn = connectionFactory.getConnection()) {
-            final SearchOperation search = new SearchOperation(conn);
-            return search.execute(SearchRequest.newObjectScopeSearchRequest(dn, attrs));
-        }
+        final SearchOperation search = new SearchOperation(connectionFactory);
+        return search.execute(SearchRequest.objectScopeSearchRequest(dn, attrs));
     }
 
     /**
@@ -272,13 +269,11 @@ public class LDAPStorageService extends AbstractStorageService implements Storag
      * 
      * @throws LdapException if the operation fails
      */
-    @Nonnull private Response<Void> deleteAttribute(@Nonnull final String dn, @Nonnull final String attrName)
+    @Nonnull private ModifyResponse deleteAttribute(@Nonnull final String dn, @Nonnull final String attrName)
             throws LdapException {
-        try (final Connection conn = connectionFactory.getConnection()) {
-            final ModifyOperation modify = new ModifyOperation(conn);
-            return modify.execute(new ModifyRequest(dn, new AttributeModification(AttributeModificationType.REMOVE,
-                    new LdapAttribute(attrName))));
-        }
+        final ModifyOperation modify = new ModifyOperation(connectionFactory);
+        return modify.execute(new ModifyRequest(dn, new AttributeModification(AttributeModification.Type.DELETE,
+            new LdapAttribute(attrName))));
     }
 
     /**
@@ -290,11 +285,8 @@ public class LDAPStorageService extends AbstractStorageService implements Storag
      * 
      * @throws LdapException if the operation fails
      */
-    @Nonnull private Response<Void> delete(@Nonnull final String dn) throws LdapException {
-        try (final Connection conn = connectionFactory.getConnection()) {
-            final DeleteOperation delete = new DeleteOperation(conn);
-            return delete.execute(new DeleteRequest(dn));
-        }
+    @Nonnull private DeleteResponse delete(@Nonnull final String dn) throws LdapException {
+        final DeleteOperation delete = new DeleteOperation(connectionFactory);
+        return delete.execute(new DeleteRequest(dn));
     }
-
 }
\ No newline at end of file
diff --git a/opensaml-storage-impl/src/test/java/org/opensaml/storage/impl/LDAPStorageServiceTest.java b/opensaml-storage-impl/src/test/java/org/opensaml/storage/impl/LDAPStorageServiceTest.java
index 309e6a9ac..911216827 100644
--- a/opensaml-storage-impl/src/test/java/org/opensaml/storage/impl/LDAPStorageServiceTest.java
+++ b/opensaml-storage-impl/src/test/java/org/opensaml/storage/impl/LDAPStorageServiceTest.java
@@ -24,10 +24,8 @@ import javax.annotation.Nonnull;
 
 import net.shibboleth.utilities.java.support.component.ComponentInitializationException;
 
-import org.ldaptive.DefaultConnectionFactory;
 import org.ldaptive.LdapAttribute;
-import org.ldaptive.pool.BlockingConnectionPool;
-import org.ldaptive.pool.PooledConnectionFactory;
+import org.ldaptive.PooledConnectionFactory;
 import org.opensaml.storage.StorageRecord;
 import org.testng.Assert;
 import org.testng.annotations.AfterClass;
@@ -74,8 +72,7 @@ public class LDAPStorageServiceTest {
     }
 
     @Nonnull protected PooledConnectionFactory getPooledConnectionFactory() {
-        return new PooledConnectionFactory(new BlockingConnectionPool(new DefaultConnectionFactory(
-                "ldap://localhost:10389")));
+        return new PooledConnectionFactory("ldap://localhost:10389");
     }
 
     @Nonnull protected LDAPStorageService getStorageService() {

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the commits mailing list