java实现ldap服务器_Java到LDAP教程(包括如何安装LDAP服务器/客户端)
java實現(xiàn)ldap服務(wù)器
本教程將向您展示如何編寫Java代碼以與LDAP交互。 但是在執(zhí)行此操作之前,我們需要在計算機上設(shè)置LDAP服務(wù)器和客戶端。
如果此時您不確定到底是什么LDAP,建議您使用這篇文章,其中提供了一個很好的定義示例。 (簡而言之,將LDAP服務(wù)器視為專門的數(shù)據(jù)庫很有幫助)。
安裝LDAP服務(wù)器
我在MBP上運行。 環(huán)顧了一會后,我發(fā)現(xiàn)最容易安裝的LDAP服務(wù)器是ApacheDirectory,您可以從此處下載。 (安裝和啟動服務(wù)器應(yīng)少于5分鐘)
安裝完成后,它將自動啟動守護程序。 然后,您可以使用此命令運行服務(wù)器。
sudo launchctl start org.apache.directory.server有關(guān)更多安裝說明,請參見此處 。
LDAP客戶端
您將要查看LDAP服務(wù)器的內(nèi)容。 最容易安裝的LDAP客戶端是Apache Directory Studio,可以從此處下載。
下載完成后,您需要創(chuàng)建與服務(wù)器的連接-有關(guān)說明,請參見此處 。
連接后,Apache Directory Studio應(yīng)該如下所示:
現(xiàn)在可以從Java程序訪問LDAP。 向您展示如何執(zhí)行此操作的最佳方法是通過示例程序。 該程序?qū)?zhí)行以下任務(wù):
- 創(chuàng)建一個新的LDAP對象
- 查看LDAP對象
- 將新屬性添加到LDAP對象
- 修改LDAP對象上的屬性
- 刪除LDAP對象上的屬性
- 刪除LDAP對象
注意:此類將在其自身之后進行清除,即,它將LDAP服務(wù)器保持在其被發(fā)現(xiàn)的狀態(tài)。 如果要查看正在執(zhí)行的各種任務(wù),只需運行其中一項任務(wù),然后通過LDAP客戶端查看LDAP對象。 不要忘記,您可以在LDAP客戶端中修改對象并進行測試。
package test;import java.util.Properties; import javax.naming.Context; import javax.naming.NamingException; import javax.naming.directory.*;public class LDAPTest {public void run() {try {DirContext context = getContext();String name = "employeeNumber=00001,ou=system";createLDAPObject(context, name);createAttribute(context, name, "displayName", "JOBS");viewAttribute(context, name, "displayName");updateAttribute(context, name, "displayName", "STEVE");viewAttribute(context, name, "displayName");removeAttribute(context, name, "displayName");removeLDAPObject(context, name);} catch (NamingException e) {e.printStackTrace();}}private void removeLDAPObject(DirContext context, String name) throws NamingException {context.destroySubcontext(name);}private void createLDAPObject(DirContext context, String name) throws NamingException {Attributes attributes = new BasicAttributes();Attribute attribute = new BasicAttribute("objectClass");attribute.add("inetOrgPerson");attributes.put(attribute);Attribute sn = new BasicAttribute("sn");sn.add("Steve");attributes.put(sn);Attribute cn = new BasicAttribute("cn");cn.add("Jobs");attributes.put(cn);attributes.put("telephoneNumber", "123456");context.createSubcontext(name, attributes);}private void removeAttribute(DirContext context, String name , String attrName) throws NamingException {Attribute attribute = new BasicAttribute(attrName);ModificationItem[] item = new ModificationItem[1];item[0] = new ModificationItem(DirContext.REMOVE_ATTRIBUTE, attribute);context.modifyAttributes(name, item);}private void createAttribute(DirContext context, String name , String attrName, Object attrValue) throws NamingException {Attribute attribute = new BasicAttribute(attrName, attrValue);ModificationItem[] item = new ModificationItem[1];item[0] = new ModificationItem(DirContext.ADD_ATTRIBUTE, attribute);context.modifyAttributes(name, item);}private void updateAttribute(DirContext context, String name , String attrName, Object attrValue) throws NamingException {Attribute attribute = new BasicAttribute(attrName, attrValue);ModificationItem[] item = new ModificationItem[1];item[0] = new ModificationItem(DirContext.REPLACE_ATTRIBUTE, attribute);context.modifyAttributes(name, item);}private void viewAttribute(DirContext context, String name , String attrName) throws NamingException {Attributes attrs = context.getAttributes(name);System.out.println(attrName + ":" + attrs.get(attrName).get());}private DirContext getContext() throws NamingException {Properties properties = new Properties();properties.put(Context.INITIAL_CONTEXT_FACTORY,"com.sun.jndi.ldap.LdapCtxFactory");properties.put(Context.PROVIDER_URL, "ldap://localhost:10389");return new InitialDirContext(properties);}public static void main(String[] args) {new LDAPTest().run();} }該代碼在下面,應(yīng)該可以自我解釋。
翻譯自: https://www.javacodegeeks.com/2015/09/java-to-ldap-tutorial-including-how-to-install-an-ldap-server-client.html
java實現(xiàn)ldap服務(wù)器
總結(jié)
以上是生活随笔為你收集整理的java实现ldap服务器_Java到LDAP教程(包括如何安装LDAP服务器/客户端)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 无食品备案证罚款(无食品备案证)
- 下一篇: java 程序增加 防盗_防盗Java