1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package org.apache.directory.server.core.trigger;
21
22 import javax.naming.Name;
23 import javax.naming.NamingException;
24 import javax.naming.directory.Attributes;
25 import javax.naming.ldap.LdapContext;
26
27 import org.slf4j.Logger;
28 import org.slf4j.LoggerFactory;
29
30
31
32
33
34
35 public class BackupUtilities
36 {
37 private static final Logger LOG = LoggerFactory.getLogger( BackupUtilities.class );
38
39
40 public static void backupDeleted( LdapContext ctx, Name deletedEntryName,
41 Name operationPrincipal, Attributes deletedEntry ) throws NamingException
42 {
43 LOG.info( "User \"" + operationPrincipal + "\" has deleted entry \"" + deletedEntryName + "\"" );
44 LOG.info( "Entry content was: " + deletedEntry );
45 LdapContext backupCtx = ( LdapContext ) ctx.lookup( "ou=backupContext,ou=system" );
46 String deletedEntryRdn = deletedEntryName.get( deletedEntryName.size() - 1 );
47 backupCtx.createSubcontext( deletedEntryRdn, deletedEntry );
48 LOG.info( "Backed up deleted entry to \"" +
49 ( ( LdapContext ) backupCtx.lookup( deletedEntryRdn ) ).getNameInNamespace() + "\"" );
50 }
51
52 public static void duplicateDeletedEntry( LdapContext ctx, Name deletedEntryName, Name operationPrincipal,
53 Attributes deletedEntry ) throws NamingException
54 {
55 LdapContext backupCtx = ( LdapContext ) ctx.lookup( "ou=backupContext,ou=system" );
56 String deletedEntryRdn = deletedEntryName.get( deletedEntryName.size() - 1 );
57 backupCtx.createSubcontext( deletedEntryRdn + "," + deletedEntryRdn, deletedEntry );
58 }
59 }