[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