directory-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From elecha...@apache.org
Subject [10/20] git commit: Added the read, modify and delete method that take a Dn as a parameter, instead of a String.
Date Wed, 05 Nov 2014 17:33:17 GMT
Added the read, modify and delete method that take a Dn as a parameter,
instead of a String.

Project: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/repo
Commit: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/commit/056ce2bb
Tree: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/tree/056ce2bb
Diff: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/diff/056ce2bb

Branch: refs/heads/master
Commit: 056ce2bb5f6cd8166c4251f66438ea897d76fbe4
Parents: 13ac7c8
Author: Emmanuel L├ęcharny <elecharny@symas.com>
Authored: Sun Nov 2 17:02:27 2014 +0100
Committer: Emmanuel L├ęcharny <elecharny@symas.com>
Committed: Sun Nov 2 17:02:27 2014 +0100

----------------------------------------------------------------------
 .../core/ldap/ApacheDsDataProvider.java         | 80 +++++++++++++++++++-
 1 file changed, 79 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/056ce2bb/src/main/java/org/apache/directory/fortress/core/ldap/ApacheDsDataProvider.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/directory/fortress/core/ldap/ApacheDsDataProvider.java
b/src/main/java/org/apache/directory/fortress/core/ldap/ApacheDsDataProvider.java
index 15cf330..6d03635 100644
--- a/src/main/java/org/apache/directory/fortress/core/ldap/ApacheDsDataProvider.java
+++ b/src/main/java/org/apache/directory/fortress/core/ldap/ApacheDsDataProvider.java
@@ -339,6 +339,23 @@ public abstract class ApacheDsDataProvider
 
 
     /**
+     * Read the ldap record from specified location.
+     *
+     * @param connection handle to ldap connection.
+     * @param dn         contains ldap distinguished name.
+     * @param attrs      array contains array names to pull back.
+     * @return ldap entry.
+     * @throws LdapException in the event system error occurs.
+     */
+    protected Entry read( LdapConnection connection, Dn dn, String[] attrs ) throws LdapException
+    {
+        counters.incrementRead();
+
+        return connection.lookup( dn, attrs );
+    }
+
+
+    /**
      * Read the ldap record from specified location with user assertion.
      *
      * @param connection handle to ldap connection.
@@ -385,7 +402,7 @@ public abstract class ApacheDsDataProvider
     {
         counters.incrementAdd();
 
-        if ( GlobalIds.IS_AUDIT && entity != null && entity.getAdminSession()
!= null )
+        if ( GlobalIds.IS_AUDIT && ( entity != null ) && ( entity.getAdminSession()
!= null ) )
         {
             if ( VUtil.isNotNullOrEmpty( entity.getAdminSession().getInternalUserId() ) )
             {
@@ -423,6 +440,21 @@ public abstract class ApacheDsDataProvider
 
 
     /**
+     * Update exiting ldap entry to the directory.  Do not add audit context.
+     *
+     * @param connection handle to ldap connection.
+     * @param dn         contains distinguished node of entry.
+     * @param mods       contains data to modify.
+     * @throws LdapException in the event system error occurs.
+     */
+    protected void modify( LdapConnection connection, Dn dn, List<Modification> mods
) throws LdapException
+    {
+        counters.incrementMod();
+        connection.modify( dn, mods.toArray( new Modification[]{} ) );
+    }
+
+
+    /**
      * Update exiting ldap entry to the directory.  Add audit context.
      *
      * @param connection handle to ldap connection.
@@ -441,6 +473,24 @@ public abstract class ApacheDsDataProvider
 
 
     /**
+     * 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.
+     * @throws LdapException in the event system error occurs.
+     */
+    protected void modify( LdapConnection connection, Dn dn, List<Modification> mods,
+        FortEntity entity ) throws LdapException
+    {
+        counters.incrementMod();
+        audit( mods, entity );
+        connection.modify( dn, mods.toArray( new Modification[]{} ) );
+    }
+
+
+    /**
      * Delete exiting ldap entry from the directory.  Do not add audit context.
      *
      * @param connection handle to ldap connection.
@@ -480,6 +530,31 @@ public abstract class ApacheDsDataProvider
 
 
     /**
+     * Delete exiting ldap entry from the directory.  Add audit context.  This method will
call modify prior to
+     * delete which will
+     * force corresponding audit record to be written to slapd access log.
+     *
+     * @param connection handle to ldap connection.
+     * @param dn         contains distinguished node of entry targeted for removal..
+     * @param entity     contains audit context.
+     * @throws LdapException in the event system error occurs.
+     */
+    protected void delete( LdapConnection connection, Dn dn, FortEntity entity ) throws LdapException
+    {
+        counters.incrementDelete();
+        List<Modification> mods = new ArrayList<Modification>();
+        audit( mods, entity );
+
+        if ( mods.size() > 0 )
+        {
+            modify( connection, dn, mods );
+        }
+
+        connection.delete( dn );
+    }
+
+
+    /**
      * Delete exiting ldap entry and all descendants from the directory.  Do not add audit
context.
      *
      * @param connection handle to ldap connection.
@@ -1260,16 +1335,19 @@ public abstract class ApacheDsDataProvider
         if ( VUtil.isNotNullOrEmpty( value ) )
         {
             int length = value.length();
+            
             if ( length > validLen )
             {
                 String error = "encodeSafeText value [" + value + "] invalid length [" +
length + "]";
                 throw new LdapException( error );
             }
+            
             if ( GlobalIds.LDAP_FILTER_SIZE_FOUND )
             {
                 value = VUtil.escapeLDAPSearchFilter( value );
             }
         }
+        
         return value;
     }
 


Mime
View raw message