LDAP是一個開放的標準協議,用于訪問和維護分布式目錄服務。Java提供了一個LDAP API,可以用于對LDAP目錄進行管理。
使用Java操作LDAP目錄,可以對組織和人員進行管理。以下是一個簡單的示例,用于從LDAP目錄中獲取組織和人員信息:
import javax.naming.*; import javax.naming.directory.*; import java.util.*; public class LDAPExample { public static void main(String[] args) { Hashtable env = new Hashtable(); env.put(Context.INITIAL_CONTEXT_FACTORY,"com.sun.jndi.ldap.LdapCtxFactory"); env.put(Context.PROVIDER_URL, "ldap://localhost:10389/o=example"); try { // Create initial context DirContext ctx = new InitialDirContext(env); // Search for all organizational units String[] attrIDs = {"ou"}; SearchControls ctls = new SearchControls(); ctls.setReturningAttributes(attrIDs); ctls.setSearchScope(SearchControls.ONELEVEL_SCOPE); NamingEnumeration answer = ctx.search("", "(objectClass=organizationalUnit)", ctls); while (answer.hasMore()) { SearchResult sr = (SearchResult) answer.next(); Attributes attrs = sr.getAttributes(); String ou = (String) attrs.get("ou").get(); System.out.println("Organizational Unit: " + ou); } // Search for all persons attrIDs = new String[] {"givenName", "sn"}; ctls.setReturningAttributes(attrIDs); answer = ctx.search("", "(objectClass=person)", ctls); while (answer.hasMore()) { SearchResult sr = (SearchResult) answer.next(); Attributes attrs = sr.getAttributes(); String givenName = (String) attrs.get("givenName").get(); String sn = (String) attrs.get("sn").get(); System.out.println("Person: " + givenName + " " + sn); } // Close the context when we're done ctx.close(); } catch (Exception e) { e.printStackTrace(); } } }
以上示例代碼展示了如何使用Java操作LDAP目錄,獲取組織和人員信息。首先,創建一個InitialDirContext對象,用于連接到LDAP目錄。然后,使用SearchControls對象定義一個搜索策略,搜索所有組織單位和人員。最后,遍歷搜索結果,并使用Attributes對象獲取所需的屬性。
上一篇php 中國菜刀