package com.oim;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Hashtable;
import javax.naming.Context;
import javax.naming.NamingEnumeration;
import javax.naming.NamingException;
import javax.naming.directory.Attribute;
import javax.naming.directory.Attributes;
import javax.naming.directory.BasicAttribute;
import javax.naming.directory.DirContext;
import javax.naming.directory.InitialDirContext;
import javax.naming.directory.ModificationItem;
import javax.naming.directory.SearchControls;
import javax.naming.directory.SearchResult;
import javax.naming.ldap.InitialLdapContext;
import javax.naming.ldap.LdapContext;
public class LDAPConnection {
String LDAP ="";
String username ="";
String password = "";
LdapContext ctx = null;
public LDAPConnection(){
LDAP = "ldap://localhost:389/";
username = "CN=adminname,OU=accounts,DC=Eas";
password = "oim_user";
}
public LdapContext LDAPConn() {
Hashtable<String, String> env = new Hashtable<String, String>();
env.put(Context.INITIAL_CONTEXT_FACTORY,"com.sun.jndi.ldap.LdapCtxFactory");
env.put(Context.SECURITY_AUTHENTICATION, "simple");
env.put(Context.SECURITY_PRINCIPAL, username);
env.put(Context.SECURITY_CREDENTIALS, password);
env.put(Context.PROVIDER_URL, LDAP);
try {
ctx = new InitialLdapContext(env, null);
System.out.println("Connected to LDAP");
} catch (NamingException e) {
System.out.println("Problem connecting LDAP:"+e);
e.printStackTrace();
}
return ctx;
}
public void LDAPClose(){
if(ctx!=null){
try {
ctx.close();
System.out.println("LDAP Connection closed");
} catch (NamingException e) {
System.out.println("Problem closing LDAP:"+e);
e.printStackTrace();
}
}
}
public static String getString(Attributes attrs, String propertyName) {
String value = "";
if (null != attrs) {
Attribute attr = attrs.get(propertyName);
if (null != attr) {
value = String.valueOf(attr);
value = value.substring(value.indexOf(": ") + 2).trim();
}
}
return value;
}
/*public String getValues(LdapContext ctx, String username, String adBaseDN) {
String compareVal="";
NamingEnumeration<SearchResult> answer=null;
SearchControls searchCtls = new SearchControls();
searchCtls.setSearchScope(SearchControls.SUBTREE_SCOPE);
String returnedAtts[] = { "sAMAccountName","manager" };
searchCtls.setReturningAttributes(returnedAtts);
String filter = "(samaccountname=" + username + ")";
System.out.printlnfilter);
try {
answer = ctx.search(adBaseDN, filter,searchCtls);
if (answer.hasMoreElements()) {
SearchResult sr = answer.next();
Attributes attr = sr.getAttributes();
compareVal = getString(attr, returnedAtts[1]);
System.out.println"ComparedVal-->" + compareVal);
}
} catch (NamingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return compareVal;
}
*/
public String checkIfUidNumberExists(LdapContext ctx, String username, String adBaseDN)
{
System.out.println("MPCSBulkLoadScheduler -> getDN Started..");
String getVal = "";
SearchControls searchCtls = new SearchControls();
searchCtls.setSearchScope(SearchControls.SUBTREE_SCOPE);
searchCtls.setCountLimit(1);
searchCtls.setTimeLimit(0);
String returnedAtts[] = { "uidNumber" };
searchCtls.setReturningAttributes(returnedAtts);
String filter = "(sAMAccountName=" + username + ")";
// String filter = "(manager=" + username + ")";
System.out.println(filter);
NamingEnumeration<SearchResult> answer;
try {
answer = ctx.search(adBaseDN, filter,searchCtls);
if (answer.hasMoreElements()) {
SearchResult sr = answer.next();
Attributes attr = sr.getAttributes();
getVal = getString(attr, returnedAtts[0]);
System.out.println("GetDN-->" + getVal);
}
} catch (NamingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return getVal;
}
public String getDN(LdapContext ctx, String username, String adBaseDN)
throws NamingException, IOException {
System.out.println("MPCSBulkLoadScheduler -> getDN Started..");
String getDN = "";
SearchControls searchCtls = new SearchControls();
searchCtls.setSearchScope(SearchControls.SUBTREE_SCOPE);
String returnedAtts[] = {"distinguishedName"};
searchCtls.setReturningAttributes(returnedAtts);
String filter = "(samaccountname=" + username + ")";
// String filter = "(manager=" + username + ")";
System.out.println(filter);
NamingEnumeration<SearchResult> answer = ctx.search(adBaseDN, filter,searchCtls);
if (answer.hasMoreElements()) {
SearchResult sr = answer.next();
Attributes attr = sr.getAttributes();
getDN = getString(attr, returnedAtts[0]);
System.out.println(getDN);
}
if (getDN == null || getDN.equals(""))
getDN = "";
System.out.println("MPCSBulkLoadScheduler -> getDN End..");
return getDN;
}
public ArrayList<String> getDN1(LdapContext ctx, String username, String adBaseDN)
throws NamingException, IOException {
System.out.println("getDN Started..");
String getDN = "";
String getUID = "";
ArrayList<String> list =new ArrayList<String>();
SearchControls searchCtls = new SearchControls();
searchCtls.setSearchScope(SearchControls.SUBTREE_SCOPE);
String returnedAtts[] = {"distinguishedName","uidNumber"};
searchCtls.setReturningAttributes(returnedAtts);
String filter = "(samaccountname=" + username + ")";
NamingEnumeration<SearchResult> answer = ctx.search(adBaseDN, filter,searchCtls);
if (answer.hasMoreElements()) {
SearchResult sr = answer.next();
Attributes attr = sr.getAttributes();
getDN = getString(attr, returnedAtts[0]);
getUID = getString(attr, returnedAtts[1]);
list.add(getDN);
list.add(getUID);
System.out.println("DN and uidNumber Value in AD:"+list);
System.out.println(list.get(0));
System.out.println(list.get(1));
}
System.out.println("getDN End..");
return list;
}
public void updateAttr(LdapContext ctx){
ModificationItem[] mods = new ModificationItem[2];
Attribute mod0 = new BasicAttribute("displayName", "retert");
Attribute mod1 = new BasicAttribute("mail", "Aerwerrwe105@tt.com");
mods[0] = new ModificationItem(DirContext.REPLACE_ATTRIBUTE, mod0);
mods[1] = new ModificationItem(DirContext.REPLACE_ATTRIBUTE, mod1);
try {
ctx.modifyAttributes("CN=cfsdfsdfsdfsf", mods);
System.out.println("Attribute Upadated");
} catch (NamingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void updateAttr(LdapContext ctx,String Userdn,String baseDN,String[] attributeValToUpdate){
int count=0;
Attribute mod =null;
String splitUpdateAttr="uid,gid,gec,unix,login";
String[] newVal = splitUpdateAttr.split(",");
for (String finale : newVal) {
count++;
}
System.out.println("No of attributes to Update:"+count);
ModificationItem[] mods = new ModificationItem[count];
int i=0;
for( i=0;i < count ;i++ ){
mod = new BasicAttribute(newVal[i],attributeValToUpdate[i]);
mods[i] = new ModificationItem(DirContext.REPLACE_ATTRIBUTE, mod);
System.out.println(""+mods[i]);
}
try {
System.out.println("Scheduler---"+"CN="+Userdn+",OU= Accounts,"+baseDN);
ctx.modifyAttributes("CN="+Userdn+",OU=Accounts,"+baseDN,mods);
System.out.println("Scheduler---Attribute Upadated");
} catch (NamingException e) {
System.out.println("Scheduler---NamingException:"+e);
e.printStackTrace();
}
}
public static void main(String[] args) {
LDAPConnection conn = new LDAPConnection();
LDAPConnection a = new LDAPConnection();
//conn.checkIfUidNumberExists(a.LDAPConn(), "AALBddfsdf", "DC=EfdfS,DC=Lm");
try {
// conn.getDN1(conn.LDAPConn(),"AMafdsfag","DC=EdasdS,DC=Lm");
conn.updateAttr(conn.LDAPConn(), "fsdfdsf", "OU= Accounts,DC=EdfdS,DC=LM", attributeValToUpdate)
} catch (NamingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
import java.io.IOException;
import java.util.ArrayList;
import java.util.Hashtable;
import javax.naming.Context;
import javax.naming.NamingEnumeration;
import javax.naming.NamingException;
import javax.naming.directory.Attribute;
import javax.naming.directory.Attributes;
import javax.naming.directory.BasicAttribute;
import javax.naming.directory.DirContext;
import javax.naming.directory.InitialDirContext;
import javax.naming.directory.ModificationItem;
import javax.naming.directory.SearchControls;
import javax.naming.directory.SearchResult;
import javax.naming.ldap.InitialLdapContext;
import javax.naming.ldap.LdapContext;
public class LDAPConnection {
String LDAP ="";
String username ="";
String password = "";
LdapContext ctx = null;
public LDAPConnection(){
LDAP = "ldap://localhost:389/";
username = "CN=adminname,OU=accounts,DC=Eas";
password = "oim_user";
}
public LdapContext LDAPConn() {
Hashtable<String, String> env = new Hashtable<String, String>();
env.put(Context.INITIAL_CONTEXT_FACTORY,"com.sun.jndi.ldap.LdapCtxFactory");
env.put(Context.SECURITY_AUTHENTICATION, "simple");
env.put(Context.SECURITY_PRINCIPAL, username);
env.put(Context.SECURITY_CREDENTIALS, password);
env.put(Context.PROVIDER_URL, LDAP);
try {
ctx = new InitialLdapContext(env, null);
System.out.println("Connected to LDAP");
} catch (NamingException e) {
System.out.println("Problem connecting LDAP:"+e);
e.printStackTrace();
}
return ctx;
}
public void LDAPClose(){
if(ctx!=null){
try {
ctx.close();
System.out.println("LDAP Connection closed");
} catch (NamingException e) {
System.out.println("Problem closing LDAP:"+e);
e.printStackTrace();
}
}
}
public static String getString(Attributes attrs, String propertyName) {
String value = "";
if (null != attrs) {
Attribute attr = attrs.get(propertyName);
if (null != attr) {
value = String.valueOf(attr);
value = value.substring(value.indexOf(": ") + 2).trim();
}
}
return value;
}
/*public String getValues(LdapContext ctx, String username, String adBaseDN) {
String compareVal="";
NamingEnumeration<SearchResult> answer=null;
SearchControls searchCtls = new SearchControls();
searchCtls.setSearchScope(SearchControls.SUBTREE_SCOPE);
String returnedAtts[] = { "sAMAccountName","manager" };
searchCtls.setReturningAttributes(returnedAtts);
String filter = "(samaccountname=" + username + ")";
System.out.printlnfilter);
try {
answer = ctx.search(adBaseDN, filter,searchCtls);
if (answer.hasMoreElements()) {
SearchResult sr = answer.next();
Attributes attr = sr.getAttributes();
compareVal = getString(attr, returnedAtts[1]);
System.out.println"ComparedVal-->" + compareVal);
}
} catch (NamingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return compareVal;
}
*/
public String checkIfUidNumberExists(LdapContext ctx, String username, String adBaseDN)
{
System.out.println("MPCSBulkLoadScheduler -> getDN Started..");
String getVal = "";
SearchControls searchCtls = new SearchControls();
searchCtls.setSearchScope(SearchControls.SUBTREE_SCOPE);
searchCtls.setCountLimit(1);
searchCtls.setTimeLimit(0);
String returnedAtts[] = { "uidNumber" };
searchCtls.setReturningAttributes(returnedAtts);
String filter = "(sAMAccountName=" + username + ")";
// String filter = "(manager=" + username + ")";
System.out.println(filter);
NamingEnumeration<SearchResult> answer;
try {
answer = ctx.search(adBaseDN, filter,searchCtls);
if (answer.hasMoreElements()) {
SearchResult sr = answer.next();
Attributes attr = sr.getAttributes();
getVal = getString(attr, returnedAtts[0]);
System.out.println("GetDN-->" + getVal);
}
} catch (NamingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return getVal;
}
public String getDN(LdapContext ctx, String username, String adBaseDN)
throws NamingException, IOException {
System.out.println("MPCSBulkLoadScheduler -> getDN Started..");
String getDN = "";
SearchControls searchCtls = new SearchControls();
searchCtls.setSearchScope(SearchControls.SUBTREE_SCOPE);
String returnedAtts[] = {"distinguishedName"};
searchCtls.setReturningAttributes(returnedAtts);
String filter = "(samaccountname=" + username + ")";
// String filter = "(manager=" + username + ")";
System.out.println(filter);
NamingEnumeration<SearchResult> answer = ctx.search(adBaseDN, filter,searchCtls);
if (answer.hasMoreElements()) {
SearchResult sr = answer.next();
Attributes attr = sr.getAttributes();
getDN = getString(attr, returnedAtts[0]);
System.out.println(getDN);
}
if (getDN == null || getDN.equals(""))
getDN = "";
System.out.println("MPCSBulkLoadScheduler -> getDN End..");
return getDN;
}
public ArrayList<String> getDN1(LdapContext ctx, String username, String adBaseDN)
throws NamingException, IOException {
System.out.println("getDN Started..");
String getDN = "";
String getUID = "";
ArrayList<String> list =new ArrayList<String>();
SearchControls searchCtls = new SearchControls();
searchCtls.setSearchScope(SearchControls.SUBTREE_SCOPE);
String returnedAtts[] = {"distinguishedName","uidNumber"};
searchCtls.setReturningAttributes(returnedAtts);
String filter = "(samaccountname=" + username + ")";
NamingEnumeration<SearchResult> answer = ctx.search(adBaseDN, filter,searchCtls);
if (answer.hasMoreElements()) {
SearchResult sr = answer.next();
Attributes attr = sr.getAttributes();
getDN = getString(attr, returnedAtts[0]);
getUID = getString(attr, returnedAtts[1]);
list.add(getDN);
list.add(getUID);
System.out.println("DN and uidNumber Value in AD:"+list);
System.out.println(list.get(0));
System.out.println(list.get(1));
}
System.out.println("getDN End..");
return list;
}
public void updateAttr(LdapContext ctx){
ModificationItem[] mods = new ModificationItem[2];
Attribute mod0 = new BasicAttribute("displayName", "retert");
Attribute mod1 = new BasicAttribute("mail", "Aerwerrwe105@tt.com");
mods[0] = new ModificationItem(DirContext.REPLACE_ATTRIBUTE, mod0);
mods[1] = new ModificationItem(DirContext.REPLACE_ATTRIBUTE, mod1);
try {
ctx.modifyAttributes("CN=cfsdfsdfsdfsf", mods);
System.out.println("Attribute Upadated");
} catch (NamingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void updateAttr(LdapContext ctx,String Userdn,String baseDN,String[] attributeValToUpdate){
int count=0;
Attribute mod =null;
String splitUpdateAttr="uid,gid,gec,unix,login";
String[] newVal = splitUpdateAttr.split(",");
for (String finale : newVal) {
count++;
}
System.out.println("No of attributes to Update:"+count);
ModificationItem[] mods = new ModificationItem[count];
int i=0;
for( i=0;i < count ;i++ ){
mod = new BasicAttribute(newVal[i],attributeValToUpdate[i]);
mods[i] = new ModificationItem(DirContext.REPLACE_ATTRIBUTE, mod);
System.out.println(""+mods[i]);
}
try {
System.out.println("Scheduler---"+"CN="+Userdn+",OU= Accounts,"+baseDN);
ctx.modifyAttributes("CN="+Userdn+",OU=Accounts,"+baseDN,mods);
System.out.println("Scheduler---Attribute Upadated");
} catch (NamingException e) {
System.out.println("Scheduler---NamingException:"+e);
e.printStackTrace();
}
}
public static void main(String[] args) {
LDAPConnection conn = new LDAPConnection();
LDAPConnection a = new LDAPConnection();
//conn.checkIfUidNumberExists(a.LDAPConn(), "AALBddfsdf", "DC=EfdfS,DC=Lm");
try {
// conn.getDN1(conn.LDAPConn(),"AMafdsfag","DC=EdasdS,DC=Lm");
conn.updateAttr(conn.LDAPConn(), "fsdfdsf", "OU= Accounts,DC=EdfdS,DC=LM", attributeValToUpdate)
} catch (NamingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
No comments:
Post a Comment