You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by se...@apache.org on 2020/03/18 21:50:02 UTC
[directory-studio] 01/01: DIRSTUDIO-648: core implementation and
test for password modify extended operation (WIP)
This is an automated email from the ASF dual-hosted git repository.
seelmann pushed a commit to branch DIRSTUDIO-648-password-modify-extended-op
in repository https://gitbox.apache.org/repos/asf/directory-studio.git
commit e5f4c92e6e909cda845b1d72eed8936ef4e959a7
Author: Stefan Seelmann <ma...@stefan-seelmann.de>
AuthorDate: Wed Mar 18 22:49:32 2020 +0100
DIRSTUDIO-648: core implementation and test for password modify extended operation (WIP)
---
...directory.studio.eclipse-trgt-platform.template | 38 ++++----
plugins/aciitemeditor/pom-first.xml | 4 +-
plugins/apacheds.configuration/pom-first.xml | 6 +-
plugins/connection.core/pom-first.xml | 13 +--
.../connection/core/io/ConnectionWrapper.java | 6 ++
.../core/io/api/DirectoryApiConnectionWrapper.java | 64 +++++++++++++
plugins/connection.ui/pom-first.xml | 4 +-
plugins/edirectory/pom-first.xml | 2 +-
plugins/ldapbrowser.common/pom-first.xml | 4 +-
plugins/ldapbrowser.core/pom-first.xml | 10 +-
plugins/ldapbrowser.ui/pom-first.xml | 4 +-
plugins/ldapservers.apacheds/pom-first.xml | 2 +-
plugins/ldapservers/pom-first.xml | 2 +-
plugins/ldifeditor/pom-first.xml | 4 +-
plugins/ldifparser/pom-first.xml | 2 +-
plugins/openldap.acl.editor/pom-first.xml | 4 +-
plugins/openldap.common.ui/pom-first.xml | 4 +-
plugins/openldap.config.editor/pom-first.xml | 10 +-
plugins/openldap.syncrepl/pom-first.xml | 2 +-
plugins/schemaeditor/pom-first.xml | 10 +-
plugins/valueeditors/pom-first.xml | 4 +-
pom.xml | 11 ++-
tests/test.integration.core/pom-first.xml | 13 +--
.../core/ConnectionWrapperTestBase.java | 104 +++++++++++++++++++--
tests/test.integration.ui/pom-first.xml | 12 +--
25 files changed, 252 insertions(+), 87 deletions(-)
diff --git a/eclipse-trgt-platform/template/org.apache.directory.studio.eclipse-trgt-platform.template b/eclipse-trgt-platform/template/org.apache.directory.studio.eclipse-trgt-platform.template
index 749a675..2625a9d 100644
--- a/eclipse-trgt-platform/template/org.apache.directory.studio.eclipse-trgt-platform.template
+++ b/eclipse-trgt-platform/template/org.apache.directory.studio.eclipse-trgt-platform.template
@@ -19,7 +19,7 @@
@author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
-->
<?pde version="3.8"?>
-<target name="Apache Directory Studio Platform" sequenceNumber="431">
+<target name="Apache Directory Studio Platform" sequenceNumber="439">
<locations>
<location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="planner" includeSource="true" type="InstallableUnit">
@@ -37,24 +37,24 @@
<unit id="org.apache.commons.commons-pool2" version="${org.apache.commons.pool.bundleversion}"/>
<!-- LDAP API modules -->
- <unit id="org.apache.directory.api.asn1.api" version="${org.apache.directory.api.version}"/>
- <unit id="org.apache.directory.api.asn1.ber" version="${org.apache.directory.api.version}"/>
- <unit id="org.apache.directory.api.dsmlv2.engine" version="${org.apache.directory.api.version}"/>
- <unit id="org.apache.directory.api.dsmlv2.parser" version="${org.apache.directory.api.version}"/>
- <unit id="org.apache.directory.api.i18n" version="${org.apache.directory.api.version}"/>
- <unit id="org.apache.directory.api.ldap.client.api" version="${org.apache.directory.api.version}"/>
- <unit id="org.apache.directory.api.ldap.codec.core" version="${org.apache.directory.api.version}"/>
- <unit id="org.apache.directory.api.ldap.extras.aci" version="${org.apache.directory.api.version}"/>
- <unit id="org.apache.directory.api.ldap.extras.codec" version="${org.apache.directory.api.version}"/>
- <unit id="org.apache.directory.api.ldap.extras.codec.api" version="${org.apache.directory.api.version}"/>
- <unit id="org.apache.directory.api.ldap.extras.sp" version="${org.apache.directory.api.version}"/>
- <unit id="org.apache.directory.api.ldap.extras.trigger" version="${org.apache.directory.api.version}"/>
- <unit id="org.apache.directory.api.ldap.extras.util" version="${org.apache.directory.api.version}"/>
- <unit id="org.apache.directory.api.ldap.model" version="${org.apache.directory.api.version}"/>
- <unit id="org.apache.directory.api.ldap.net.mina" version="${org.apache.directory.api.version}"/>
- <unit id="org.apache.directory.api.ldap.schema" version="${org.apache.directory.api.version}"/>
- <unit id="org.apache.directory.api.ldap.schema.converter" version="${org.apache.directory.api.version}"/>
- <unit id="org.apache.directory.api.util" version="${org.apache.directory.api.version}"/>
+ <unit id="org.apache.directory.api.asn1.api" version="${org.apache.directory.api.bundleversion}"/>
+ <unit id="org.apache.directory.api.asn1.ber" version="${org.apache.directory.api.bundleversion}"/>
+ <unit id="org.apache.directory.api.dsmlv2.engine" version="${org.apache.directory.api.bundleversion}"/>
+ <unit id="org.apache.directory.api.dsmlv2.parser" version="${org.apache.directory.api.bundleversion}"/>
+ <unit id="org.apache.directory.api.i18n" version="${org.apache.directory.api.bundleversion}"/>
+ <unit id="org.apache.directory.api.ldap.client.api" version="${org.apache.directory.api.bundleversion}"/>
+ <unit id="org.apache.directory.api.ldap.codec.core" version="${org.apache.directory.api.bundleversion}"/>
+ <unit id="org.apache.directory.api.ldap.extras.aci" version="${org.apache.directory.api.bundleversion}"/>
+ <unit id="org.apache.directory.api.ldap.extras.codec" version="${org.apache.directory.api.bundleversion}"/>
+ <unit id="org.apache.directory.api.ldap.extras.codec.api" version="${org.apache.directory.api.bundleversion}"/>
+ <unit id="org.apache.directory.api.ldap.extras.sp" version="${org.apache.directory.api.bundleversion}"/>
+ <unit id="org.apache.directory.api.ldap.extras.trigger" version="${org.apache.directory.api.bundleversion}"/>
+ <unit id="org.apache.directory.api.ldap.extras.util" version="${org.apache.directory.api.bundleversion}"/>
+ <unit id="org.apache.directory.api.ldap.model" version="${org.apache.directory.api.bundleversion}"/>
+ <unit id="org.apache.directory.api.ldap.net.mina" version="${org.apache.directory.api.bundleversion}"/>
+ <unit id="org.apache.directory.api.ldap.schema" version="${org.apache.directory.api.bundleversion}"/>
+ <unit id="org.apache.directory.api.ldap.schema.converter" version="${org.apache.directory.api.bundleversion}"/>
+ <unit id="org.apache.directory.api.util" version="${org.apache.directory.api.bundleversion}"/>
<!-- LDAP server modules -->
<unit id="org.apache.directory.server.core" version="${org.apache.directory.server.version}" />
diff --git a/plugins/aciitemeditor/pom-first.xml b/plugins/aciitemeditor/pom-first.xml
index e256f53..e8afae6 100644
--- a/plugins/aciitemeditor/pom-first.xml
+++ b/plugins/aciitemeditor/pom-first.xml
@@ -50,8 +50,8 @@
<Export-Package>org.apache.directory.studio.aciitemeditor</Export-Package>
<Require-Bundle>
- org.apache.directory.api.ldap.extras.aci;bundle-version="${org.apache.directory.api.version}",
- org.apache.directory.api.ldap.model;bundle-version="${org.apache.directory.api.version}",
+ org.apache.directory.api.ldap.extras.aci;bundle-version="${org.apache.directory.api.bundleversion}",
+ org.apache.directory.api.ldap.model;bundle-version="${org.apache.directory.api.bundleversion}",
org.apache.directory.studio.common.ui,
org.apache.directory.studio.connection.core,
org.apache.directory.studio.connection.ui,
diff --git a/plugins/apacheds.configuration/pom-first.xml b/plugins/apacheds.configuration/pom-first.xml
index 98b2853..c457dff 100644
--- a/plugins/apacheds.configuration/pom-first.xml
+++ b/plugins/apacheds.configuration/pom-first.xml
@@ -55,9 +55,9 @@
org.apache.directory.studio.apacheds.configuration.wizards</Export-Package>
<Require-Bundle>
com.github.ben-manes.caffeine;bundle-version="${com.github.ben-manes.caffeine.bundleversion}",
- org.apache.directory.api.util;bundle-version="${org.apache.directory.api.version}",
- org.apache.directory.api.ldap.model;bundle-version="${org.apache.directory.api.version}",
- org.apache.directory.api.ldap.schema;bundle-version="${org.apache.directory.api.version}",
+ org.apache.directory.api.util;bundle-version="${org.apache.directory.api.bundleversion}",
+ org.apache.directory.api.ldap.model;bundle-version="${org.apache.directory.api.bundleversion}",
+ org.apache.directory.api.ldap.schema;bundle-version="${org.apache.directory.api.bundleversion}",
org.apache.directory.server.config;bundle-version="${org.apache.directory.server.version}",
org.apache.directory.server.core.api;bundle-version="${org.apache.directory.server.version}",
org.apache.directory.server.core.constants;bundle-version="${org.apache.directory.server.version}",
diff --git a/plugins/connection.core/pom-first.xml b/plugins/connection.core/pom-first.xml
index d4fd1a0..5a128cb 100644
--- a/plugins/connection.core/pom-first.xml
+++ b/plugins/connection.core/pom-first.xml
@@ -62,12 +62,13 @@
</Import-Package>
<Require-Bundle>
- org.apache.directory.api.asn1.api;bundle-version="${org.apache.directory.api.version}",
- org.apache.directory.api.ldap.client.api;bundle-version="${org.apache.directory.api.version}",
- org.apache.directory.api.ldap.codec.core;bundle-version="${org.apache.directory.api.version}",
- org.apache.directory.api.ldap.model;bundle-version="${org.apache.directory.api.version}",
- org.apache.directory.api.ldap.net.mina;bundle-version="${org.apache.directory.api.version}",
- org.apache.directory.api.util;bundle-version="${org.apache.directory.api.version}",
+ org.apache.directory.api.asn1.api;bundle-version="${org.apache.directory.api.bundleversion}",
+ org.apache.directory.api.ldap.client.api;bundle-version="${org.apache.directory.api.bundleversion}",
+ org.apache.directory.api.ldap.codec.core;bundle-version="${org.apache.directory.api.bundleversion}",
+ org.apache.directory.api.ldap.extras.codec.api;bundle-version="${org.apache.directory.api.bundleversion}",
+ org.apache.directory.api.ldap.model;bundle-version="${org.apache.directory.api.bundleversion}",
+ org.apache.directory.api.ldap.net.mina;bundle-version="${org.apache.directory.api.bundleversion}",
+ org.apache.directory.api.util;bundle-version="${org.apache.directory.api.bundleversion}",
org.apache.directory.studio.common.core,
org.apache.directory.studio.ldifparser,
org.eclipse.core.runtime,
diff --git a/plugins/connection.core/src/main/java/org/apache/directory/studio/connection/core/io/ConnectionWrapper.java b/plugins/connection.core/src/main/java/org/apache/directory/studio/connection/core/io/ConnectionWrapper.java
index f1b6fd8..3c6f919 100644
--- a/plugins/connection.core/src/main/java/org/apache/directory/studio/connection/core/io/ConnectionWrapper.java
+++ b/plugins/connection.core/src/main/java/org/apache/directory/studio/connection/core/io/ConnectionWrapper.java
@@ -27,6 +27,8 @@ import javax.naming.directory.SearchControls;
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.message.Control;
+import org.apache.directory.api.ldap.model.message.ExtendedRequest;
+import org.apache.directory.api.ldap.model.message.ExtendedResponse;
import org.apache.directory.api.ldap.model.name.Dn;
import org.apache.directory.studio.common.core.jobs.StudioProgressMonitor;
import org.apache.directory.studio.connection.core.ReferralsInfo;
@@ -155,4 +157,8 @@ public interface ConnectionWrapper
*/
void deleteEntry( final Dn dn, final Control[] controls, final StudioProgressMonitor monitor,
final ReferralsInfo referralsInfo );
+
+
+ ExtendedResponse extended( ExtendedRequest request, final StudioProgressMonitor monitor );
+
}
diff --git a/plugins/connection.core/src/main/java/org/apache/directory/studio/connection/core/io/api/DirectoryApiConnectionWrapper.java b/plugins/connection.core/src/main/java/org/apache/directory/studio/connection/core/io/api/DirectoryApiConnectionWrapper.java
index 12dfda8..3a04d24 100644
--- a/plugins/connection.core/src/main/java/org/apache/directory/studio/connection/core/io/api/DirectoryApiConnectionWrapper.java
+++ b/plugins/connection.core/src/main/java/org/apache/directory/studio/connection/core/io/api/DirectoryApiConnectionWrapper.java
@@ -52,6 +52,8 @@ import org.apache.directory.api.ldap.model.message.Control;
import org.apache.directory.api.ldap.model.message.DeleteRequest;
import org.apache.directory.api.ldap.model.message.DeleteRequestImpl;
import org.apache.directory.api.ldap.model.message.DeleteResponse;
+import org.apache.directory.api.ldap.model.message.ExtendedRequest;
+import org.apache.directory.api.ldap.model.message.ExtendedResponse;
import org.apache.directory.api.ldap.model.message.LdapResult;
import org.apache.directory.api.ldap.model.message.ModifyDnRequest;
import org.apache.directory.api.ldap.model.message.ModifyDnRequestImpl;
@@ -1019,6 +1021,68 @@ public class DirectoryApiConnectionWrapper implements ConnectionWrapper
}
}
+ @Override
+ public ExtendedResponse extended( ExtendedRequest request, StudioProgressMonitor monitor )
+ {
+ if ( connection.isReadOnly() )
+ {
+ monitor
+ .reportError(
+ new Exception( NLS.bind( Messages.error__connection_is_readonly, connection.getName() ) ) );
+ return null;
+ }
+
+ ExtendedResponse[] outerResponse = new ExtendedResponse[1];
+ InnerRunnable runnable = new InnerRunnable()
+ {
+ public void run()
+ {
+ try
+ {
+ ExtendedResponse response = ldapConnection.extended( request );
+ outerResponse[0] = response;
+
+ // TODO: handle referrals?
+
+ // Checking the response
+ checkResponse( response );
+ }
+ catch ( Exception e )
+ {
+ exception = e;
+ }
+
+ LdapException le = toLdapException( exception );
+
+ for ( ILdapLogger logger : getLdapLoggers() )
+ {
+ // TODO: logging
+ // logger.log
+ }
+ }
+ };
+
+ try
+ {
+ checkConnectionAndRunAndMonitor( runnable, monitor );
+ }
+ catch ( Exception e )
+ {
+ monitor.reportError( e );
+ }
+
+ if ( runnable.isCanceled() )
+ {
+ monitor.setCanceled( true );
+ }
+ if ( runnable.getException() != null )
+ {
+ monitor.reportError( runnable.getException() );
+ }
+
+ return outerResponse[0];
+ }
+
/**
* Inner runnable used in connection wrapper operations.
*
diff --git a/plugins/connection.ui/pom-first.xml b/plugins/connection.ui/pom-first.xml
index dc80f06..8011ae7 100644
--- a/plugins/connection.ui/pom-first.xml
+++ b/plugins/connection.ui/pom-first.xml
@@ -66,8 +66,8 @@
</Import-Package>
<Require-Bundle>
- org.apache.directory.api.ldap.model;bundle-version="${org.apache.directory.api.version}",
- org.apache.directory.api.util;bundle-version="${org.apache.directory.api.version}",
+ org.apache.directory.api.ldap.model;bundle-version="${org.apache.directory.api.bundleversion}",
+ org.apache.directory.api.util;bundle-version="${org.apache.directory.api.bundleversion}",
org.apache.directory.studio.common.core,
org.apache.directory.studio.common.ui,
org.apache.directory.studio.connection.core,
diff --git a/plugins/edirectory/pom-first.xml b/plugins/edirectory/pom-first.xml
index 86064f6..28a1829 100644
--- a/plugins/edirectory/pom-first.xml
+++ b/plugins/edirectory/pom-first.xml
@@ -50,7 +50,7 @@
<Export-Package>org.apache.directory.studio.edirectory</Export-Package>
<Require-Bundle>
- org.apache.directory.api.ldap.model;bundle-version="${org.apache.directory.api.version}",
+ org.apache.directory.api.ldap.model;bundle-version="${org.apache.directory.api.bundleversion}",
org.apache.directory.studio.common.ui,
org.apache.directory.studio.connection.core,
org.apache.directory.studio.connection.ui,
diff --git a/plugins/ldapbrowser.common/pom-first.xml b/plugins/ldapbrowser.common/pom-first.xml
index 61fcd9e..7a367e2 100644
--- a/plugins/ldapbrowser.common/pom-first.xml
+++ b/plugins/ldapbrowser.common/pom-first.xml
@@ -66,8 +66,8 @@
</Import-Package>
<Require-Bundle>
- org.apache.directory.api.ldap.model;bundle-version="${org.apache.directory.api.version}",
- org.apache.directory.api.util;bundle-version="${org.apache.directory.api.version}",
+ org.apache.directory.api.ldap.model;bundle-version="${org.apache.directory.api.bundleversion}",
+ org.apache.directory.api.util;bundle-version="${org.apache.directory.api.bundleversion}",
org.apache.directory.studio.common.core,
org.apache.directory.studio.common.ui,
org.apache.directory.studio.connection.core,
diff --git a/plugins/ldapbrowser.core/pom-first.xml b/plugins/ldapbrowser.core/pom-first.xml
index 3d9abd7..cece9ab 100644
--- a/plugins/ldapbrowser.core/pom-first.xml
+++ b/plugins/ldapbrowser.core/pom-first.xml
@@ -136,11 +136,11 @@
</Import-Package>
<Require-Bundle>
- org.apache.directory.api.asn1.api;bundle-version="${org.apache.directory.api.version}",
- org.apache.directory.api.ldap.model;bundle-version="${org.apache.directory.api.version}",
- org.apache.directory.api.ldap.codec.core;bundle-version="${org.apache.directory.api.version}",
- org.apache.directory.api.dsmlv2.parser;bundle-version="${org.apache.directory.api.version}",
- org.apache.directory.api.util;bundle-version="${org.apache.directory.api.version}",
+ org.apache.directory.api.asn1.api;bundle-version="${org.apache.directory.api.bundleversion}",
+ org.apache.directory.api.ldap.model;bundle-version="${org.apache.directory.api.bundleversion}",
+ org.apache.directory.api.ldap.codec.core;bundle-version="${org.apache.directory.api.bundleversion}",
+ org.apache.directory.api.dsmlv2.parser;bundle-version="${org.apache.directory.api.bundleversion}",
+ org.apache.directory.api.util;bundle-version="${org.apache.directory.api.bundleversion}",
org.apache.directory.studio.common.core,
org.apache.directory.studio.connection.core,
org.apache.directory.studio.ldifparser,
diff --git a/plugins/ldapbrowser.ui/pom-first.xml b/plugins/ldapbrowser.ui/pom-first.xml
index 1c314f8..46b81b3 100644
--- a/plugins/ldapbrowser.ui/pom-first.xml
+++ b/plugins/ldapbrowser.ui/pom-first.xml
@@ -70,8 +70,8 @@
</Import-Package>
<Require-Bundle>
- org.apache.directory.api.ldap.model;bundle-version="${org.apache.directory.api.version}",
- org.apache.directory.api.util;bundle-version="${org.apache.directory.api.version}",
+ org.apache.directory.api.ldap.model;bundle-version="${org.apache.directory.api.bundleversion}",
+ org.apache.directory.api.util;bundle-version="${org.apache.directory.api.bundleversion}",
org.apache.directory.studio.common.core,
org.apache.directory.studio.common.ui,
org.apache.directory.studio.connection.core,
diff --git a/plugins/ldapservers.apacheds/pom-first.xml b/plugins/ldapservers.apacheds/pom-first.xml
index d8d93d2..7801a4b 100644
--- a/plugins/ldapservers.apacheds/pom-first.xml
+++ b/plugins/ldapservers.apacheds/pom-first.xml
@@ -54,7 +54,7 @@
</Import-Package>
<Require-Bundle>
- org.apache.directory.api.ldap.model;bundle-version="${org.apache.directory.api.version}",
+ org.apache.directory.api.ldap.model;bundle-version="${org.apache.directory.api.bundleversion}",
org.apache.directory.server.config;bundle-version="${org.apache.directory.server.version}",
org.apache.directory.server.core.api;bundle-version="${org.apache.directory.server.version}",
org.apache.directory.server.xdbm.partition;bundle-version="${org.apache.directory.server.version}",
diff --git a/plugins/ldapservers/pom-first.xml b/plugins/ldapservers/pom-first.xml
index 5f84f9a..5de21f9 100644
--- a/plugins/ldapservers/pom-first.xml
+++ b/plugins/ldapservers/pom-first.xml
@@ -64,7 +64,7 @@
</Import-Package>
<Require-Bundle>
- org.apache.directory.api.util;bundle-version="${org.apache.directory.api.version}",
+ org.apache.directory.api.util;bundle-version="${org.apache.directory.api.bundleversion}",
org.apache.directory.studio.common.core,
org.apache.directory.studio.common.ui,
org.apache.directory.studio.connection.core,
diff --git a/plugins/ldifeditor/pom-first.xml b/plugins/ldifeditor/pom-first.xml
index aa493fb..60ebb33 100644
--- a/plugins/ldifeditor/pom-first.xml
+++ b/plugins/ldifeditor/pom-first.xml
@@ -60,8 +60,8 @@
<Import-Package/>
<Require-Bundle>
- org.apache.directory.api.ldap.model;bundle-version="${org.apache.directory.api.version}",
- org.apache.directory.api.util;bundle-version="${org.apache.directory.api.version}",
+ org.apache.directory.api.ldap.model;bundle-version="${org.apache.directory.api.bundleversion}",
+ org.apache.directory.api.util;bundle-version="${org.apache.directory.api.bundleversion}",
org.apache.directory.studio.common.core,
org.apache.directory.studio.common.ui,
org.apache.directory.studio.connection.core,
diff --git a/plugins/ldifparser/pom-first.xml b/plugins/ldifparser/pom-first.xml
index 9d30ae3..5e1885b 100644
--- a/plugins/ldifparser/pom-first.xml
+++ b/plugins/ldifparser/pom-first.xml
@@ -66,7 +66,7 @@
</Import-Package>
<Require-Bundle>
- org.apache.directory.api.ldap.model;bundle-version="${org.apache.directory.api.version}"
+ org.apache.directory.api.ldap.model;bundle-version="${org.apache.directory.api.bundleversion}"
</Require-Bundle>
</instructions>
</configuration>
diff --git a/plugins/openldap.acl.editor/pom-first.xml b/plugins/openldap.acl.editor/pom-first.xml
index 3ed03db..31a6d0d 100644
--- a/plugins/openldap.acl.editor/pom-first.xml
+++ b/plugins/openldap.acl.editor/pom-first.xml
@@ -77,8 +77,8 @@
org.slf4j
</Import-Package>
<Require-Bundle>
- org.apache.directory.api.ldap.model;bundle-version="${org.apache.directory.api.version}",
- org.apache.directory.api.util;bundle-version="${org.apache.directory.api.version}",
+ org.apache.directory.api.ldap.model;bundle-version="${org.apache.directory.api.bundleversion}",
+ org.apache.directory.api.util;bundle-version="${org.apache.directory.api.bundleversion}",
org.apache.directory.studio.common.core,
org.apache.directory.studio.common.ui,
org.apache.directory.studio.connection.core,
diff --git a/plugins/openldap.common.ui/pom-first.xml b/plugins/openldap.common.ui/pom-first.xml
index be944d2..a6e9d92 100644
--- a/plugins/openldap.common.ui/pom-first.xml
+++ b/plugins/openldap.common.ui/pom-first.xml
@@ -53,8 +53,8 @@
org.apache.directory.studio.openldap.common.ui.widgets</Export-Package>
<Require-Bundle>
- org.apache.directory.api.ldap.model;bundle-version="${org.apache.directory.api.version}",
- org.apache.directory.api.util;bundle-version="${org.apache.directory.api.version}",
+ org.apache.directory.api.ldap.model;bundle-version="${org.apache.directory.api.bundleversion}",
+ org.apache.directory.api.util;bundle-version="${org.apache.directory.api.bundleversion}",
org.apache.directory.studio.common.core,
org.apache.directory.studio.common.ui,
org.apache.directory.studio.connection.core,
diff --git a/plugins/openldap.config.editor/pom-first.xml b/plugins/openldap.config.editor/pom-first.xml
index 2fcdafe..87a0044 100644
--- a/plugins/openldap.config.editor/pom-first.xml
+++ b/plugins/openldap.config.editor/pom-first.xml
@@ -60,11 +60,11 @@
org.apache.directory.server.core.api;bundle-version="${org.apache.directory.server.version}",
org.apache.directory.server.ldif.partition;bundle-version="${org.apache.directory.server.version}",
org.apache.directory.server.xdbm.partition;bundle-version="${org.apache.directory.server.version}",
- org.apache.directory.api.asn1.api;bundle-version="${org.apache.directory.api.version}",
- org.apache.directory.api.ldap.model;bundle-version="${org.apache.directory.api.version}",
- org.apache.directory.api.ldap.schema;bundle-version="${org.apache.directory.api.version}",
- org.apache.directory.api.ldap.extras.util;bundle-version="${org.apache.directory.api.version}",
- org.apache.directory.api.util;bundle-version="${org.apache.directory.api.version}",
+ org.apache.directory.api.asn1.api;bundle-version="${org.apache.directory.api.bundleversion}",
+ org.apache.directory.api.ldap.model;bundle-version="${org.apache.directory.api.bundleversion}",
+ org.apache.directory.api.ldap.schema;bundle-version="${org.apache.directory.api.bundleversion}",
+ org.apache.directory.api.ldap.extras.util;bundle-version="${org.apache.directory.api.bundleversion}",
+ org.apache.directory.api.util;bundle-version="${org.apache.directory.api.bundleversion}",
org.apache.directory.studio.openldap.common.ui,
org.apache.directory.studio.openldap.syncrepl,
org.apache.directory.studio.common.core,
diff --git a/plugins/openldap.syncrepl/pom-first.xml b/plugins/openldap.syncrepl/pom-first.xml
index 70dab4e..732b0f7 100644
--- a/plugins/openldap.syncrepl/pom-first.xml
+++ b/plugins/openldap.syncrepl/pom-first.xml
@@ -46,7 +46,7 @@
<Bundle-Localization>plugin</Bundle-Localization>
<Eclipse-LazyStart>true</Eclipse-LazyStart>
<Require-Bundle>
- org.apache.directory.api.util;bundle-version="${org.apache.directory.api.version}"
+ org.apache.directory.api.util;bundle-version="${org.apache.directory.api.bundleversion}"
</Require-Bundle>
<Export-Package>org.apache.directory.studio.openldap.syncrepl</Export-Package>
</instructions>
diff --git a/plugins/schemaeditor/pom-first.xml b/plugins/schemaeditor/pom-first.xml
index 8832bd3..d32627b 100644
--- a/plugins/schemaeditor/pom-first.xml
+++ b/plugins/schemaeditor/pom-first.xml
@@ -76,11 +76,11 @@
</Import-Package>
<Require-Bundle>
- org.apache.directory.api.asn1.api;bundle-version="${org.apache.directory.api.version}",
- org.apache.directory.api.ldap.model;bundle-version="${org.apache.directory.api.version}",
- org.apache.directory.api.ldap.schema;bundle-version="${org.apache.directory.api.version}",
- org.apache.directory.api.ldap.schema.converter;bundle-version="${org.apache.directory.api.version}",
- org.apache.directory.api.util;bundle-version="${org.apache.directory.api.version}",
+ org.apache.directory.api.asn1.api;bundle-version="${org.apache.directory.api.bundleversion}",
+ org.apache.directory.api.ldap.model;bundle-version="${org.apache.directory.api.bundleversion}",
+ org.apache.directory.api.ldap.schema;bundle-version="${org.apache.directory.api.bundleversion}",
+ org.apache.directory.api.ldap.schema.converter;bundle-version="${org.apache.directory.api.bundleversion}",
+ org.apache.directory.api.util;bundle-version="${org.apache.directory.api.bundleversion}",
org.apache.directory.studio.common.core,
org.apache.directory.studio.common.ui,
org.apache.directory.studio.connection.core,
diff --git a/plugins/valueeditors/pom-first.xml b/plugins/valueeditors/pom-first.xml
index 85ea2f8..95338de 100644
--- a/plugins/valueeditors/pom-first.xml
+++ b/plugins/valueeditors/pom-first.xml
@@ -68,8 +68,8 @@
</Import-Package>
<Require-Bundle>
- org.apache.directory.api.ldap.model;bundle-version="${org.apache.directory.api.version}",
- org.apache.directory.api.util;bundle-version="${org.apache.directory.api.version}",
+ org.apache.directory.api.ldap.model;bundle-version="${org.apache.directory.api.bundleversion}",
+ org.apache.directory.api.util;bundle-version="${org.apache.directory.api.bundleversion}",
org.apache.directory.studio.common.ui,
org.apache.directory.studio.connection.core,
org.apache.directory.studio.connection.ui,
diff --git a/pom.xml b/pom.xml
index 07d675e..330bedf 100644
--- a/pom.xml
+++ b/pom.xml
@@ -79,17 +79,18 @@
<log4j.log4j.bundleversion>1.2.17</log4j.log4j.bundleversion>
<com.github.ben-manes.caffeine.version>2.7.0</com.github.ben-manes.caffeine.version>
<com.github.ben-manes.caffeine.bundleversion>2.7.0</com.github.ben-manes.caffeine.bundleversion>
- <org.apache.commons.codec.version>1.13</org.apache.commons.codec.version>
- <org.apache.commons.codec.bundleversion>1.13.0</org.apache.commons.codec.bundleversion>
+ <org.apache.commons.codec.version>1.14</org.apache.commons.codec.version>
+ <org.apache.commons.codec.bundleversion>1.14.0</org.apache.commons.codec.bundleversion>
<org.apache.commons.collections4.version>4.4</org.apache.commons.collections4.version>
<org.apache.commons.collections4.bundleversion>4.4.0</org.apache.commons.collections4.bundleversion>
<org.apache.commons.io.version>2.6</org.apache.commons.io.version>
<org.apache.commons.io.bundleversion>2.6.0</org.apache.commons.io.bundleversion>
<org.apache.commons.lang3.version>3.9</org.apache.commons.lang3.version>
<org.apache.commons.lang3.bundleversion>3.9</org.apache.commons.lang3.bundleversion>
- <org.apache.commons.pool.version>2.7.0</org.apache.commons.pool.version>
- <org.apache.commons.pool.bundleversion>2.7.0</org.apache.commons.pool.bundleversion>
- <org.apache.directory.api.version>2.0.0</org.apache.directory.api.version>
+ <org.apache.commons.pool.version>2.8.0</org.apache.commons.pool.version>
+ <org.apache.commons.pool.bundleversion>2.8.0</org.apache.commons.pool.bundleversion>
+ <org.apache.directory.api.version>2.0.1-SNAPSHOT</org.apache.directory.api.version>
+ <org.apache.directory.api.bundleversion>2.0.1.SNAPSHOT</org.apache.directory.api.bundleversion>
<org.apache.directory.server.version>2.0.0.AM26</org.apache.directory.server.version>
<org.apache.mina.version>2.1.3</org.apache.mina.version>
<org.apache.mina.bundleversion>2.1.3</org.apache.mina.bundleversion>
diff --git a/tests/test.integration.core/pom-first.xml b/tests/test.integration.core/pom-first.xml
index 192aa87..70a38f9 100644
--- a/tests/test.integration.core/pom-first.xml
+++ b/tests/test.integration.core/pom-first.xml
@@ -55,12 +55,13 @@
org.apache.directory.server.core.annotations;bundle-version="${org.apache.directory.server.version}",
org.apache.directory.server.core.api;bundle-version="${org.apache.directory.server.version}",
org.apache.directory.server.protocol.ldap;bundle-version="${org.apache.directory.server.version}",
- org.apache.directory.api.asn1.api;bundle-version="${org.apache.directory.api.version}",
- org.apache.directory.api.ldap.client.api;bundle-version="${org.apache.directory.api.version}",
- org.apache.directory.api.ldap.codec.core;bundle-version="${org.apache.directory.api.version}",
- org.apache.directory.api.ldap.model;bundle-version="${org.apache.directory.api.version}",
- org.apache.directory.api.ldap.net.mina;bundle-version="${org.apache.directory.api.version}",
- org.apache.directory.api.util;bundle-version="${org.apache.directory.api.version}",
+ org.apache.directory.api.asn1.api;bundle-version="${org.apache.directory.api.bundleversion}",
+ org.apache.directory.api.ldap.client.api;bundle-version="${org.apache.directory.api.bundleversion}",
+ org.apache.directory.api.ldap.codec.core;bundle-version="${org.apache.directory.api.bundleversion}",
+ org.apache.directory.api.ldap.extras.codec.api;bundle-version="${org.apache.directory.api.bundleversion}",
+ org.apache.directory.api.ldap.model;bundle-version="${org.apache.directory.api.bundleversion}",
+ org.apache.directory.api.ldap.net.mina;bundle-version="${org.apache.directory.api.bundleversion}",
+ org.apache.directory.api.util;bundle-version="${org.apache.directory.api.bundleversion}",
org.apache.mina.core;bundle-version="${org.apache.mina.bundleversion}",
org.apache.directory.studio.connection.core,
org.apache.directory.studio.common.core,
diff --git a/tests/test.integration.core/src/main/java/org/apache/directory/studio/test/integration/core/ConnectionWrapperTestBase.java b/tests/test.integration.core/src/main/java/org/apache/directory/studio/test/integration/core/ConnectionWrapperTestBase.java
index 886d16b..80ebbdc 100644
--- a/tests/test.integration.core/src/main/java/org/apache/directory/studio/test/integration/core/ConnectionWrapperTestBase.java
+++ b/tests/test.integration.core/src/main/java/org/apache/directory/studio/test/integration/core/ConnectionWrapperTestBase.java
@@ -30,13 +30,9 @@ import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertThat;
import static org.junit.Assert.assertTrue;
-import java.io.ByteArrayInputStream;
import java.net.ConnectException;
import java.nio.channels.UnresolvedAddressException;
import java.nio.charset.StandardCharsets;
-import java.security.cert.Certificate;
-import java.security.cert.CertificateFactory;
-import java.security.cert.X509Certificate;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
@@ -44,6 +40,9 @@ import java.util.function.Function;
import javax.naming.directory.SearchControls;
+import org.apache.directory.api.ldap.codec.api.LdapApiService;
+import org.apache.directory.api.ldap.codec.api.LdapApiServiceFactory;
+import org.apache.directory.api.ldap.extras.extended.pwdModify.PasswordModifyRequest;
import org.apache.directory.api.ldap.model.entry.DefaultAttribute;
import org.apache.directory.api.ldap.model.entry.DefaultEntry;
import org.apache.directory.api.ldap.model.entry.DefaultModification;
@@ -53,13 +52,17 @@ import org.apache.directory.api.ldap.model.entry.ModificationOperation;
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.LdapLoopDetectedException;
+import org.apache.directory.api.ldap.model.message.ExtendedResponse;
+import org.apache.directory.api.ldap.model.message.ResultCodeEnum;
import org.apache.directory.api.ldap.model.name.Dn;
+import org.apache.directory.api.util.Strings;
import org.apache.directory.ldap.client.api.exception.InvalidConnectionException;
import org.apache.directory.server.annotations.CreateLdapServer;
import org.apache.directory.server.annotations.CreateTransport;
import org.apache.directory.server.core.annotations.ApplyLdifFiles;
import org.apache.directory.server.core.integ.AbstractLdapTestUnit;
import org.apache.directory.server.core.integ.FrameworkRunner;
+import org.apache.directory.server.ldap.handlers.extended.PwdModifyHandler;
import org.apache.directory.studio.common.core.jobs.StudioProgressMonitor;
import org.apache.directory.studio.connection.core.Connection;
import org.apache.directory.studio.connection.core.Connection.AliasDereferencingMethod;
@@ -76,7 +79,6 @@ import org.apache.mina.util.AvailablePortFinder;
import org.eclipse.core.runtime.NullProgressMonitor;
import org.junit.After;
import org.junit.Before;
-import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -89,7 +91,8 @@ import org.junit.runner.RunWith;
*/
@RunWith(FrameworkRunner.class)
@CreateLdapServer(transports =
- { @CreateTransport(protocol = "LDAP"), @CreateTransport(protocol = "LDAPS") })
+ { @CreateTransport(protocol = "LDAP"), @CreateTransport(protocol = "LDAPS") }, extendedOpHandlers =
+ { PwdModifyHandler.class })
@ApplyLdifFiles(clazz = ConnectionWrapperTestBase.class, value = "org/apache/directory/studio/test/integration/core/TestData.ldif")
public abstract class ConnectionWrapperTestBase extends AbstractLdapTestUnit
{
@@ -467,6 +470,22 @@ public abstract class ConnectionWrapperTestBase extends AbstractLdapTestUnit
@Test
+ public void testAdd() throws Exception
+ {
+ String dn = "uid=user.X,ou=users,ou=system";
+
+ StudioProgressMonitor monitor = getProgressMonitor();
+ Entry entry = new DefaultEntry( dn, "objectClass: inetOrgPerson", "sn: X", "cn: X", "uid: user.X" );
+ getConnectionWrapper( monitor ).createEntry( entry, null, monitor, null );
+
+ // should have created entry
+ assertFalse( monitor.isCanceled() );
+ assertFalse( monitor.errorsReported() );
+ assertTrue( service.getAdminSession().exists( dn ) );
+ }
+
+
+ @Test
public void testAddFollowsReferral_DirectReferral() throws Exception
{
String targetDn = "uid=user.X,ou=users,ou=system";
@@ -521,6 +540,30 @@ public abstract class ConnectionWrapperTestBase extends AbstractLdapTestUnit
@Test
+ public void testModify() throws Exception
+ {
+ String dn = "uid=user.X,ou=users,ou=system";
+
+ // create entry
+ service.getAdminSession().add( new DefaultEntry( service.getSchemaManager(), dn,
+ "objectClass: inetOrgPerson", "sn: X", "cn: X", "uid: user.X" ) );
+
+ // modify entry
+ StudioProgressMonitor monitor = getProgressMonitor();
+ List<Modification> modifications = Collections.singletonList(
+ new DefaultModification( ModificationOperation.REPLACE_ATTRIBUTE,
+ new DefaultAttribute( "sn", "modified" ) ) );
+ getConnectionWrapper( monitor ).modifyEntry( new Dn( dn ), modifications, null, monitor, null );
+
+ // should have modified the entry
+ assertFalse( monitor.isCanceled() );
+ assertFalse( monitor.errorsReported() );
+ Entry entry = service.getAdminSession().lookup( new Dn( dn ) );
+ assertEquals( "modified", entry.get( "sn" ).getString() );
+ }
+
+
+ @Test
public void testModifyFollowsReferral_DirectReferral() throws Exception
{
String targetDn = "uid=user.X,ou=users,ou=system";
@@ -596,6 +639,26 @@ public abstract class ConnectionWrapperTestBase extends AbstractLdapTestUnit
@Test
+ public void testDelete() throws Exception
+ {
+ String dn = "uid=user.X,ou=users,ou=system";
+
+ // create entry
+ service.getAdminSession().add( new DefaultEntry( service.getSchemaManager(), dn,
+ "objectClass: inetOrgPerson", "sn: X", "cn: X", "uid: user.X" ) );
+
+ // delete entry
+ StudioProgressMonitor monitor = getProgressMonitor();
+ getConnectionWrapper( monitor ).deleteEntry( new Dn( dn ), null, monitor, null );
+
+ // should have deleted the entry
+ assertFalse( monitor.isCanceled() );
+ assertFalse( monitor.errorsReported() );
+ assertFalse( service.getAdminSession().exists( dn ) );
+ }
+
+
+ @Test
public void testDeleteFollowsReferral_DirectReferral() throws Exception
{
String targetDn = "uid=user.X,ou=users,ou=system";
@@ -692,4 +755,33 @@ public abstract class ConnectionWrapperTestBase extends AbstractLdapTestUnit
return connectionWrapper;
}
+
+
+ @Test
+ public void testPasswordModifyRequestExtendedOperation() throws Exception
+ {
+ String dn = "uid=user.X,ou=users,ou=system";
+
+ // create target entry
+ service.getAdminSession().add( new DefaultEntry( service.getSchemaManager(), dn,
+ "objectClass: inetOrgPerson", "sn: X", "cn: X", "uid: user.X", "userPassword: secret" ) );
+
+ // modify password
+ LdapApiService ldapApiService = LdapApiServiceFactory.getSingleton();
+ PasswordModifyRequest request = ( PasswordModifyRequest ) ldapApiService.getExtendedRequestFactories()
+ .get( PasswordModifyRequest.EXTENSION_OID ).newRequest();
+ request.setUserIdentity( Strings.getBytesUtf8( dn ) );
+ request.setOldPassword( Strings.getBytesUtf8( "secret" ) );
+ request.setNewPassword( Strings.getBytesUtf8( "s3cre3t" ) );
+ StudioProgressMonitor monitor = getProgressMonitor();
+ ExtendedResponse response = getConnectionWrapper( monitor ).extended( request, monitor );
+
+ // should have modified password of the target entry
+ assertEquals( ResultCodeEnum.SUCCESS, response.getLdapResult().getResultCode() );
+ assertFalse( monitor.isCanceled() );
+ assertFalse( monitor.errorsReported() );
+ Entry entry = service.getAdminSession().lookup( new Dn( dn ) );
+ assertEquals( "s3cre3t", Strings.utf8ToString( entry.get( "userPassword" ).getBytes() ) );
+ }
+
}
diff --git a/tests/test.integration.ui/pom-first.xml b/tests/test.integration.ui/pom-first.xml
index d4e29d9..f577b20 100644
--- a/tests/test.integration.ui/pom-first.xml
+++ b/tests/test.integration.ui/pom-first.xml
@@ -64,12 +64,12 @@
org.apache.directory.server.jdbm.partition;bundle-version="${org.apache.directory.server.version}",
org.apache.directory.server.xdbm.partition;bundle-version="${org.apache.directory.server.version}",
- org.apache.directory.api.asn1.api;bundle-version="${org.apache.directory.api.version}",
- org.apache.directory.api.ldap.client.api;bundle-version="${org.apache.directory.api.version}",
- org.apache.directory.api.ldap.codec.core;bundle-version="${org.apache.directory.api.version}",
- org.apache.directory.api.ldap.model;bundle-version="${org.apache.directory.api.version}",
- org.apache.directory.api.ldap.net.mina;bundle-version="${org.apache.directory.api.version}",
- org.apache.directory.api.util;bundle-version="${org.apache.directory.api.version}",
+ org.apache.directory.api.asn1.api;bundle-version="${org.apache.directory.api.bundleversion}",
+ org.apache.directory.api.ldap.client.api;bundle-version="${org.apache.directory.api.bundleversion}",
+ org.apache.directory.api.ldap.codec.core;bundle-version="${org.apache.directory.api.bundleversion}",
+ org.apache.directory.api.ldap.model;bundle-version="${org.apache.directory.api.bundleversion}",
+ org.apache.directory.api.ldap.net.mina;bundle-version="${org.apache.directory.api.bundleversion}",
+ org.apache.directory.api.util;bundle-version="${org.apache.directory.api.bundleversion}",
org.apache.mina.core;bundle-version="${org.apache.mina.bundleversion}",
org.apache.directory.studio.aciitemeditor,