From c47f3b4622792148dccb8869699e661e058fc8c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?PK=20S=C3=B8reide?= Date: Fri, 11 Mar 2022 09:50:33 +0100 Subject: [PATCH] Upgrade org.apache.directory.api:api-all from 1.0.0-RC2 to 2.1.0 --- source/ddc-core/pom.xml | 4 +- .../imperva/ddc/core/ApacheAPIConverter.java | 58 +++++++++++++------ .../java/com/imperva/ddc/core/Driver.java | 2 +- .../ddc/core/QueryRequestPagedExecutor.java | 5 +- .../searchcriteria/SearchCriteriaFactory.java | 4 +- .../core/query/AddRequestBuilderFactory.java | 4 +- .../query/ChangeRequestBuilderFactory.java | 4 +- .../query/RemoveRequestBuilderFactory.java | 4 +- source/ddc-service/pom.xml | 4 +- source/pom.xml | 2 +- startingkit/ddckit/pom.xml | 2 +- 11 files changed, 60 insertions(+), 33 deletions(-) diff --git a/source/ddc-core/pom.xml b/source/ddc-core/pom.xml index 246af0b..be19226 100644 --- a/source/ddc-core/pom.xml +++ b/source/ddc-core/pom.xml @@ -6,7 +6,7 @@ com.imperva.ddc domain-directory-controller - 7.4.0.0.0.0 + 7.4.1.0.0.0 ddc-core @@ -15,7 +15,7 @@ org.apache.directory.api api-all - 1.0.0-RC2 + 2.1.0 org.mockito diff --git a/source/ddc-core/src/main/java/com/imperva/ddc/core/ApacheAPIConverter.java b/source/ddc-core/src/main/java/com/imperva/ddc/core/ApacheAPIConverter.java index ab579d2..aa0bce1 100644 --- a/source/ddc-core/src/main/java/com/imperva/ddc/core/ApacheAPIConverter.java +++ b/source/ddc-core/src/main/java/com/imperva/ddc/core/ApacheAPIConverter.java @@ -1,22 +1,34 @@ package com.imperva.ddc.core; -import com.imperva.ddc.core.exceptions.ProtocolException; -import com.imperva.ddc.core.query.*; -import org.apache.directory.api.ldap.model.entry.*; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + +import org.apache.directory.api.ldap.model.entry.Attribute; +import org.apache.directory.api.ldap.model.entry.DefaultModification; +import org.apache.directory.api.ldap.model.entry.Entry; +import org.apache.directory.api.ldap.model.entry.Modification; +import org.apache.directory.api.ldap.model.entry.ModificationOperation; +import org.apache.directory.api.ldap.model.entry.Value; import org.apache.directory.api.ldap.model.exception.LdapException; import org.apache.directory.api.ldap.model.message.SearchRequest; import org.apache.directory.api.ldap.model.message.SearchRequestImpl; import org.apache.directory.api.ldap.model.message.SearchScope; import org.apache.directory.api.ldap.model.message.controls.PagedResults; import org.apache.directory.api.ldap.model.message.controls.PagedResultsImpl; -import org.apache.directory.api.ldap.model.message.controls.SortRequest; -import org.apache.directory.api.ldap.model.message.controls.SortRequestControlImpl; +import org.apache.directory.api.ldap.model.message.controls.SortRequestImpl; import org.apache.directory.api.ldap.model.name.Dn; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import java.util.ArrayList; -import java.util.List; -import java.util.Objects; + +import com.imperva.ddc.core.exceptions.ProtocolException; +import com.imperva.ddc.core.query.EntityResponse; +import com.imperva.ddc.core.query.Field; +import com.imperva.ddc.core.query.ModificationDetails; +import com.imperva.ddc.core.query.Operation; +import com.imperva.ddc.core.query.QueryRequest; +import com.imperva.ddc.core.query.ReferralsHandling; +import com.imperva.ddc.core.query.SortKey; /** * Created by gabi.beyo on 02/07/2015. @@ -40,25 +52,37 @@ String[] toStringArray(List entities) { } public Modification toModification(ModificationDetails modificationDetails) { - final String value = null == modificationDetails.getValue() + final Object value = null == modificationDetails.getValue() ? null - : modificationDetails.getValue().toString(); + : modificationDetails.getValue(); Operation operation = modificationDetails.getOperation(); String strAttribute = modificationDetails.getAttribute().getName(); switch (operation) { case ADD: - return new DefaultModification(ModificationOperation.ADD_ATTRIBUTE, strAttribute, value); + return new DefaultModification(ModificationOperation.ADD_ATTRIBUTE, strAttribute, convertToValue(value)); case REMOVE: return null == value ? new DefaultModification(ModificationOperation.REMOVE_ATTRIBUTE, strAttribute) - : new DefaultModification(ModificationOperation.REMOVE_ATTRIBUTE, strAttribute, value); + : new DefaultModification(ModificationOperation.REMOVE_ATTRIBUTE, strAttribute, convertToValue(value)); case REPLACE: - return new DefaultModification(ModificationOperation.REPLACE_ATTRIBUTE, strAttribute, value); + return new DefaultModification(ModificationOperation.REPLACE_ATTRIBUTE, strAttribute, convertToValue(value)); default: return null; } + } + Value convertToValue(Object value) { + if (value instanceof String) { + return new Value((String) value); + } + if (value instanceof Number) { + return new Value(value.toString()); + } + if (value instanceof byte[]) { + return new Value((byte[]) value); + } + return null; } List toEntityResponse(List entries, List requestedFields) { @@ -70,7 +94,7 @@ List toEntityResponse(List entries, List requested for (Field field : requestedFields) { if (field.getName().equals("*") || field.getName().equalsIgnoreCase(att.getId())) { att.iterator().forEachRemaining(value -> { - entResponse.addValue(value.getValue(), att.getId(), field.getType()); + entResponse.addValue(value, att.getId(), field.getType()); }); } } @@ -100,7 +124,7 @@ SearchRequest toSearchRequest(QueryRequest queryRequest, String baseSearchPath) List sortKeys = queryRequest.getSortKeys(); if (!Objects.isNull(sortKeys) && !sortKeys.isEmpty()) { - SortRequestControlImpl sortRequest = applySort(sortKeys); + SortRequestImpl sortRequest = applySort(sortKeys); search.addControl(sortRequest); } return search; @@ -130,11 +154,11 @@ SearchRequest toSearchRequest(QueryRequest queryRequest, String baseSearchPath, // } - SortRequestControlImpl applySort(List sortKeys) { + SortRequestImpl applySort(List sortKeys) { if (Objects.isNull(sortKeys) && sortKeys.isEmpty()) { throw new ProtocolException("Sorting keys can't be empty"); } - SortRequestControlImpl sortRequest = new SortRequestControlImpl(); + SortRequestImpl sortRequest = new SortRequestImpl(); sortRequest.setCritical(false); for (SortKey sortKey : sortKeys) { diff --git a/source/ddc-core/src/main/java/com/imperva/ddc/core/Driver.java b/source/ddc-core/src/main/java/com/imperva/ddc/core/Driver.java index f018855..a5dc37c 100644 --- a/source/ddc-core/src/main/java/com/imperva/ddc/core/Driver.java +++ b/source/ddc-core/src/main/java/com/imperva/ddc/core/Driver.java @@ -3,7 +3,7 @@ import com.imperva.ddc.core.commons.Utils; import com.imperva.ddc.core.exceptions.*; import com.imperva.ddc.core.query.*; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringUtils; import org.apache.directory.api.ldap.model.exception.LdapAuthenticationException; import org.apache.directory.api.ldap.model.exception.LdapException; import org.apache.directory.api.ldap.model.exception.LdapProtocolErrorException; diff --git a/source/ddc-core/src/main/java/com/imperva/ddc/core/QueryRequestPagedExecutor.java b/source/ddc-core/src/main/java/com/imperva/ddc/core/QueryRequestPagedExecutor.java index 3d62e7d..c0cea00 100644 --- a/source/ddc-core/src/main/java/com/imperva/ddc/core/QueryRequestPagedExecutor.java +++ b/source/ddc-core/src/main/java/com/imperva/ddc/core/QueryRequestPagedExecutor.java @@ -103,7 +103,10 @@ Object retrieveCookie(SearchCursor cursor) { if (resultCodeEnum == ResultCodeEnum.UNWILLING_TO_PERFORM || resultCodeEnum == ResultCodeEnum.UNAVAILABLE_CRITICAL_EXTENSION || pagedSearchControl == null) { throw new QueryFailedException("AD can't handle paging. pagedSearchControl null?: " + (pagedSearchControl == null) + ", result.getLdapResult().getResultCode(): " + result.getLdapResult().getResultCode().name()); } - Object cookie = pagedSearchControl.getCookie(); + byte[] cookie = pagedSearchControl.getCookie(); + if (cookie != null && cookie.length == 0) { + cookie = null; + } LOGGER.trace("Retrieving cookie. Cookie value: {}", cookie); return cookie; } diff --git a/source/ddc-core/src/main/java/com/imperva/ddc/core/language/searchcriteria/SearchCriteriaFactory.java b/source/ddc-core/src/main/java/com/imperva/ddc/core/language/searchcriteria/SearchCriteriaFactory.java index d9f124c..d1f23e6 100644 --- a/source/ddc-core/src/main/java/com/imperva/ddc/core/language/searchcriteria/SearchCriteriaFactory.java +++ b/source/ddc-core/src/main/java/com/imperva/ddc/core/language/searchcriteria/SearchCriteriaFactory.java @@ -1,7 +1,7 @@ package com.imperva.ddc.core.language.searchcriteria; import com.imperva.ddc.core.query.DirectoryType; -import org.apache.commons.lang.NotImplementedException; +import org.apache.commons.lang3.NotImplementedException; /** @@ -16,7 +16,7 @@ public static SearchCriteriaBuilder create(DirectoryType directoryType){ searchCriteriaBuilder = new ActiveDirectorySearchCriteriaBuilderImpl(); break; default: - throw new NotImplementedException(); + throw new NotImplementedException("Directory type not implemented"); } return searchCriteriaBuilder; } diff --git a/source/ddc-core/src/main/java/com/imperva/ddc/core/query/AddRequestBuilderFactory.java b/source/ddc-core/src/main/java/com/imperva/ddc/core/query/AddRequestBuilderFactory.java index 96f1c8c..4a3011f 100644 --- a/source/ddc-core/src/main/java/com/imperva/ddc/core/query/AddRequestBuilderFactory.java +++ b/source/ddc-core/src/main/java/com/imperva/ddc/core/query/AddRequestBuilderFactory.java @@ -1,6 +1,6 @@ package com.imperva.ddc.core.query; -import org.apache.commons.lang.NotImplementedException; +import org.apache.commons.lang3.NotImplementedException; public class AddRequestBuilderFactory { @@ -11,7 +11,7 @@ public static AddCriteriaBuilder create(DirectoryType directoryType){ addCriteriaBuilder = new AddCriteriaBuilder(); break; default: - throw new NotImplementedException(); + throw new NotImplementedException("Directory type not implemented"); } return addCriteriaBuilder; } diff --git a/source/ddc-core/src/main/java/com/imperva/ddc/core/query/ChangeRequestBuilderFactory.java b/source/ddc-core/src/main/java/com/imperva/ddc/core/query/ChangeRequestBuilderFactory.java index 9ab09d5..a1d7190 100644 --- a/source/ddc-core/src/main/java/com/imperva/ddc/core/query/ChangeRequestBuilderFactory.java +++ b/source/ddc-core/src/main/java/com/imperva/ddc/core/query/ChangeRequestBuilderFactory.java @@ -1,6 +1,6 @@ package com.imperva.ddc.core.query; -import org.apache.commons.lang.NotImplementedException; +import org.apache.commons.lang3.NotImplementedException; public class ChangeRequestBuilderFactory { @@ -11,7 +11,7 @@ public static ChangeCriteriaBuilder create(DirectoryType directoryType){ changeCriteriaBuilder = new ChangeCriteriaBuilder(); break; default: - throw new NotImplementedException(); + throw new NotImplementedException("Directory type not implemented"); } return changeCriteriaBuilder; } diff --git a/source/ddc-core/src/main/java/com/imperva/ddc/core/query/RemoveRequestBuilderFactory.java b/source/ddc-core/src/main/java/com/imperva/ddc/core/query/RemoveRequestBuilderFactory.java index f00c0e0..f7103b5 100644 --- a/source/ddc-core/src/main/java/com/imperva/ddc/core/query/RemoveRequestBuilderFactory.java +++ b/source/ddc-core/src/main/java/com/imperva/ddc/core/query/RemoveRequestBuilderFactory.java @@ -1,6 +1,6 @@ package com.imperva.ddc.core.query; -import org.apache.commons.lang.NotImplementedException; +import org.apache.commons.lang3.NotImplementedException; public class RemoveRequestBuilderFactory { @@ -11,7 +11,7 @@ public static RemoveCriteriaBuilder create(DirectoryType directoryType){ removeCriteriaBuilder = new RemoveCriteriaBuilder(); break; default: - throw new NotImplementedException(); + throw new NotImplementedException("Directory type not implemented"); } return removeCriteriaBuilder; } diff --git a/source/ddc-service/pom.xml b/source/ddc-service/pom.xml index efd2c4f..7ffe685 100644 --- a/source/ddc-service/pom.xml +++ b/source/ddc-service/pom.xml @@ -5,7 +5,7 @@ com.imperva.ddc domain-directory-controller - 7.4.0.0.0.0 + 7.4.1.0.0.0 ddc-service @@ -14,7 +14,7 @@ com.imperva.ddc ddc-core - 7.4.0.0.0.0 + 7.4.1.0.0.0 diff --git a/source/pom.xml b/source/pom.xml index e70753a..27cec74 100644 --- a/source/pom.xml +++ b/source/pom.xml @@ -6,7 +6,7 @@ pom com.imperva.ddc domain-directory-controller - 7.4.0.0.0.0 + 7.4.1.0.0.0 Domain Directory Controller DDC is an Active Directory Java SDK designed to simplify AD interaction for small, medium and large projects. diff --git a/startingkit/ddckit/pom.xml b/startingkit/ddckit/pom.xml index beb89de..c58e013 100644 --- a/startingkit/ddckit/pom.xml +++ b/startingkit/ddckit/pom.xml @@ -54,7 +54,7 @@ com.imperva.ddc ddc-service - 7.3.7.0.0.0 + 7.4.0.0.0.0