本文目錄一覽:
- 1、java 怎麼樣實現新建一個ldap OU,通過用戶在控制台自定義輸入DN,在AD中自動建好OU相關目錄?
- 2、如何使用Java操作LDAP之LDAP連接
- 3、如何通過java操作ldap實現登錄
java 怎麼樣實現新建一個ldap OU,通過用戶在控制台自定義輸入DN,在AD中自動建好OU相關目錄?
寫代碼程序把你寫的這個 DN,分拆成每個 SubContext ,然後在代碼中綁定上去:
// initialize config
Properties config = new Properties();
config.setProperty(Context.PROVIDER_URL, 你的 root URL);
Context root = new InititalContext().lookup(“”);
Context abc = root.createSubContext(“ou=Abc”);
Context cde = abc.createSubContext(“ou=Cde”);
…
你的收到的 DN 分拆成這幾個步驟依次 createSubContext 就好了。
如何使用Java操作LDAP之LDAP連接
public static void main(String[] args) {
String url = “ldap://10.0.0.10:389/”;
String domain = “dc=dtas,dc=com”;
String user = “cn=administrator,cn=users”;
String password = “111111”;
HashtableString, String env = new HashtableString, String();
env.put(Context.INITIAL_CONTEXT_FACTORY, “com.sun.jndi.ldap.LdapCtxFactory”); // LDAP 工廠
env.put(Context.SECURITY_AUTHENTICATION, “simple”); // LDAP訪問安全級別
env.put(Context.PROVIDER_URL, url);
env.put(Context.SECURITY_PRINCIPAL, user+”,”+domain); // 填DN
env.put(Context.SECURITY_CREDENTIALS, password); // AD Password
env.put(“java.naming.ldap.attributes.binary”, “objectSid objectGUID”);
LdapContext ldapCtx = null;
try {
ldapCtx = new InitialLdapContext(env , null);
queryGroup(ldapCtx);
//queryUser(ldapCtx);
} catch (NamingException e) {
e.printStackTrace();
} finally {
if(ldapCtx != null) {
try {
ldapCtx.close();
} catch (NamingException e) {
}
}
}
}
private static void queryGroup(LdapContext ldapCtx) throws NamingException {
SearchControls searchCtls = new SearchControls();
searchCtls.setSearchScope(SearchControls.SUBTREE_SCOPE);
String searchFilter = “objectClass=organizationalUnit”;
String searchBase = “ou=myDeptSubDept,ou=myDept,dc=DS-66,dc=com”;
String returnedAtts[] = {“distinguishedName”, “objectGUID”, “name”};
searchCtls.setReturningAttributes(returnedAtts);
NamingEnumerationSearchResult answer = ldapCtx.search(searchBase, searchFilter, searchCtls);
while (answer.hasMoreElements()) {
SearchResult sr = answer.next();
Attributes Attrs = sr.getAttributes();
if (Attrs != null) {
NamingEnumeration? ne = Attrs.getAll();
while(ne.hasMore()) {
Attribute Attr = (Attribute)ne.next();
String name = Attr.getID();
Enumeration? values = Attr.getAll();
if (values != null) { // 迭代
while (values.hasMoreElements()) {
String value = “”;
if(“objectGUID”.equals(name)) {
value = UUID.nameUUIDFromBytes((byte[]) values.nextElement()).toString();
} else {
value = (String)values.nextElement();
}
System.out.println(name + ” ” + value);
}
}
}
System.out.println(“=====================”);
}
}
}
如何通過java操作ldap實現登錄
catch (NamingException e) {
e.printStackTrace();
} finally {
if(ldapCtx != null) {
try {
ldapCtx.close();
} catch (NamingException e) {
}
}
原創文章,作者:簡單一點,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/130209.html