public void addRole(TgwRole role) {
String dn = DirectoryUtils.getAbsoluteDN(role.getName(),rolePrefix,roleSuffix,searchBase);
try{
ctx = new InitialDirContext(environment);
Attributes attrs = createRoleAttributes(role);
if(roleRequiredAttributes != null){
NamingEnumeration reqattrs = roleRequiredAttributes.getAll();
while(reqattrs.hasMore()){
attrs.put((Attribute)reqattrs.next());
}
}
ctx.createSubcontext(DirectoryUtils.getRDN(dn,searchBase),attrs);
String adminUserDn = userPrefix + "=" + adminUsername + DirectoryUtils.buildSuffix(userSuffix,searchBase,true,true);
TgwUser admin = new TgwUser(adminUsername);
admin.setDn(adminUserDn);
updateRoles(admin,new String[]{role.getName()},DirContext.ADD_ATTRIBUTE);
log.info("adding " + dn + " completed.");
}catch(NamingException ne){
ne.printStackTrace();
}finally{
DirectoryUtils.closeQuietly(ctx);
}
}