| | 
|  | Step 4) Extend target class |  
|  | 
 
Subject: Step 4) Extend target class
Author: eLDAP
In response to: Step 3) Create new classes
Posted on:  09/28/2012 09:01:03 PM
 
 
 
try {
     
    // The initial directory context
    LdapContext ctx = new InitialLdapContext(env, null);
 
    //Modify the user class to add the hrHumanResources class as an auxilliary class
    ModificationItem[] mods = new ModificationItem[1];
    mods = new ModificationItem[1];
    mods[0] = new ModificationItem(DirContext.ADD_ATTRIBUTE, 
    		new BasicAttribute("auxiliaryClass","hrHumanResources"));
    ctx.modifyAttributes("CN=User,CN=Schema,CN=Configuration,DC=example,DC=com", mods);
    //Force the change to be taken effect 
    mods = new ModificationItem[1];
    mods[0] = new ModificationItem(DirContext.REPLACE_ATTRIBUTE, 
    		new BasicAttribute("schemaupdatenow","1"));
    ctx.modifyAttributes("", mods);  // RootDSE
 
    System.out.println("Successfully modified schema");
    ctx.close();
		
}catch (NamingException e) {
    System.err.println("Problem modifying schema: " + e);
}
>  
> On 09/28/2012 08:34:10 PM eLDAP  wrote:
 Create new auxilliary class:
 
 
try {
     
    // The initial directory context
    LdapContext ctx = new InitialLdapContext(env, null);
 
    // Create a new auxilliary class
    Attributes attrs = new BasicAttributes(true);
    attrs.put("adminDescription", "Human Resources Auxilliary Class");
    attrs.put("adminDisplayName", "hr-Human-Resources");
    attrs.put("governsID", 
    	"1.2.840.113556.1.4.7000.17"); // Must be registered in advance
    attrs.put("lDAPDisplayName", "hrHumanResources");
    attrs.put("cn", "hr-Human-Resources");
    attrs.put("objectCategory",
    	"CN=Class-Schema,CN=Schema,CN=Configuration,DC=example,DC=com");
    attrs.put("objectClass", "classSchema");
    attrs.put("objectClassCategory", "3");
    attrs.put("rDNAttID", "cn");
    attrs.put("possSuperiors", "organizationalUnit");
    attrs.put("possSuperiors", "container");
    attrs.put("subClassOf", "top");
    attrs.put("mayContain", "hrSocialSecurityNumber");
    attrs.put("mayContain", "hrSalaryLevel");
    // Attribute schema entry's dn
    String schema_dn = 
    	"CN=hr-Human-Resources,CN=Schema,CN=Configuration,DC=example,DC=com"; 
    // create the schema class entry
    ctx.createSubcontext(schema_dn, attrs);
    //Force the change to be taken effect 
    ModificationItem[] mods = new ModificationItem[1];
    mods = new ModificationItem[1];
    mods[0] = new ModificationItem(DirContext.REPLACE_ATTRIBUTE, 
    		new BasicAttribute("schemaupdatenow","1"));
    ctx.modifyAttributes("", mods);  // RootDSE
 
    System.out.println("Successfully modified schema");
    ctx.close();
		
}catch (NamingException e) {
    System.err.println("Problem modifying schema: " + e);
}
References:
 |  |  | 
 |