You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by sm...@apache.org on 2022/02/26 17:07:49 UTC

[directory-fortress-core] 01/01: + mod method to set ldap controls

This is an automated email from the ASF dual-hosted git repository.

smckinney pushed a commit to branch controls
in repository https://gitbox.apache.org/repos/asf/directory-fortress-core.git

commit 9de78b477427437727f1f739db432b093ae6bcdd
Author: Shawn McKinney <sm...@symas.com>
AuthorDate: Sat Feb 26 11:07:42 2022 -0600

    + mod method to set ldap controls
---
 .../fortress/core/ldap/LdapDataProvider.java       | 26 ++++++++++++++++++++--
 1 file changed, 24 insertions(+), 2 deletions(-)

diff --git a/src/main/java/org/apache/directory/fortress/core/ldap/LdapDataProvider.java b/src/main/java/org/apache/directory/fortress/core/ldap/LdapDataProvider.java
index cb8802b..aa81c25 100644
--- a/src/main/java/org/apache/directory/fortress/core/ldap/LdapDataProvider.java
+++ b/src/main/java/org/apache/directory/fortress/core/ldap/LdapDataProvider.java
@@ -326,6 +326,28 @@ public abstract class LdapDataProvider
     protected void modify( LdapConnection connection, String dn, List<Modification> mods,
         FortEntity entity, boolean setRelaxControl ) throws LdapException
     {
+        Control setControl = null;
+        if ( setRelaxControl )
+        {
+            setControl = new RelaxControlImpl();
+        }
+        modify( connection, dn, mods, entity, setControl );
+    }
+
+
+    /**
+     * Update exiting ldap entry to the directory.  Add audit context.
+     *
+     * @param connection handle to ldap connection.
+     * @param dn         contains distinguished node of entry.
+     * @param mods       contains data to modify.
+     * @param entity     contains audit context.
+     * @param setControl add specified control to the request
+     * @throws LdapException in the event system error occurs.
+     */
+    protected void modify( LdapConnection connection, String dn, List<Modification> mods,
+        FortEntity entity, Control setControl ) throws LdapException
+    {
         COUNTERS.incrementMod();
         audit( mods, entity );
         ModifyRequest modRequest = new ModifyRequestImpl();
@@ -334,9 +356,9 @@ public abstract class LdapDataProvider
         {
             modRequest.addModification( mod );
         }
-        if ( setRelaxControl )
+        if ( setControl != null )
         {
-            modRequest.addControl( new RelaxControlImpl() );
+            modRequest.addControl( setControl );
         }
         modRequest.setName( new Dn( dn ) );
         ModifyResponse response = connection.modify( modRequest );