ldapjava,ldapjava創建賬號

本文目錄一覽:

Java獲取Ldap葉子節點

使用netscape的ldap工具包。使用其它的工具包,寫法類似。

註:必須知道base dn,以下假定ou=admin為base dn。若有明確的base dn,那寫法比如:ou=admin,o=test1

源代碼如下:

==========================

import netscape.ldap.*;

public class SearchTest {

public static void main(String[] args) {

LDAPConnection lc = null;

LDAPEntry findEntry = null;

int status = -1;

try {

// lc = ConnectionPool.

lc = new LDAPConnection();

/* Connect to server */

String MY_HOST = “localhost”;

int MY_PORT = 389;

lc.connect(MY_HOST, MY_PORT);

System.out.println(“1=========” +lc.isConnected());

lc.authenticate(“cn=Directory Manager”,”password”);

System.out.println(“2=========” +lc.isConnected());

/* search for all entries with surname of Jensen */

String MY_FILTER = “(objectclass=*)”;

String MY_SEARCHBASE = “ou=admin”;

LDAPSearchConstraints cons = lc.getSearchConstraints();

cons.setBatchSize(0);

cons.setMaxResults(5);

MY_FILTER = “(objectclass=*)” ;

LDAPSearchResults res = lc.search(MY_SEARCHBASE,

LDAPConnection.SCOPE_ONE,

MY_FILTER,

null,

false,

cons);

while (res.hasMoreElements()) {

LDAPEntry cLDAPEntry = res.next() ;

System.out.println(“” + cLDAPEntry.getDN());

System.out.println(“” + cLDAPEntry.toString());

}

status = 0;

} catch (LDAPException e) {

System.out.println(“Error: ” + e.toString());

e.printStackTrace();

}

/* Done, so disconnect */

if ((lc != null) lc.isConnected()) {

try {

lc.disconnect();

System.out.println(“3=========” +lc.isConnected());

} catch (LDAPException e) {

System.out.println(“Error: ” + e.toString());

}

}

System.out.println(“4=========” +lc.isConnected());

System.exit(status);

}

}

LDAP在JAVA中如何模糊查詢

/** * 獲得LDAP連接(不通過連接池,直接獲得連接) * @return * @throws Exception */ private javax.naming.directory.DirContext getDirContext() throws Exception { DirContext ctx = null; java.util.Hashtable env = new java.util.Hashtable(); env.put(Context.INITIAL_CONTEXT_FACTORY, “com.sun.jndi.ldap.LdapCtxFactory”); env.put(Context.PROVIDER_URL, “ldap://localhost:389”); env.put(Context.SECURITY_AUTHENTICATION, “simple”); env.put(Context.SECURITY_PRINCIPAL, user); env.put(Context.SECURITY_CREDENTIALS, pwd); ctx = new InitialDirContext(env); return ctx; } /** * 返回用戶查詢接口 * @param DN 查找範圍 ou=test,dc=abcd,dc=com * @param filter 過濾條件 cn=* * @param myserach 搜索範圍 * @return LDAP標準接口 * @throws Exception */ public javax.naming.NamingEnumeration getFilter(String DN,String filter,int myserach) throws Exception { DirContext ctx = getDirContext(); try { NamingEnumeration em; SearchControls con = new SearchControls(); con.setSearchScope(myserach); em = ctx.search(DN, filter, con); return em; } finally { // } } /** * 設置條件查找 * @param dn 查找的根結點 * @param filter 查找條件 * @param level 查找範圍 * @return 返回一個由DN組成的JAVA STRING 列表 * @throws Exception */ public java.util.Vector getfilterNodes(String dn,String filter,int level) throws Exception { java.util.Vector ve=new java.util.Vector(); NamingEnumeration em=getFilter(dn,filter,level); while(em!=null em.hasMoreElements()) { SearchResult rs=(SearchResult)em.nextElement(); String db=rs.getName(); if (db.trim().equals(“”)) ve.add(dn); else ve.add(db+”,”+dn); } return ve; }

關於ldap java驗證的問題

我寫過這類代碼,與你這段代碼有些不一樣。

env.put(Context.SECURITY_AUTHENTICATION, “none”);這段中我指定他的認證方式是”simple”,也就是採用用戶名/密碼的方式認證,我也不是很清楚採用none是否能夠成功認證。

認證用的用戶名應該要寫全,你需要查看每一個上級節點的屬性,打個比方,IS是CN,FADU是DC,funo.com.cn是DC,那你的認證用戶名就應該是:

DC=funo.com.cn,DC=FADU,CN=IS,CN=caiwei

你先試一下吧,還有問題再討論,令附上LDAP ERROR CODE:

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/186325.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-11-27 05:45
下一篇 2024-11-27 05:45

相關推薦

  • Pythonista共享賬號下載完整指南

    Pythonista是一款在iOS平台上運行的Python集成開發環境(IDE),在Pythonista社區中,用戶可以共享他們編寫的代碼片段和腳本。 Pythonista共享賬號…

    編程 2025-04-27
  • 詳解GitLab管理員賬號功能

    GitLab是一個功能強大的版本控制系統,也是一款團隊協作平台,它可以幫助團隊高效地進行代碼管理和協作。在GitLab中,管理員賬號擁有特殊的權限,可以對GitLab平台的各項功能…

    編程 2025-04-22
  • ebay註冊賬號流程詳解

    一、註冊準備 1、註冊時需要提供真實信息:姓名、地址、電話、電子郵件地址等。 2、選擇一個易於記憶且沒有被用過的用戶ID和密碼。 3、確定註冊類型,是個人賬號還是商家賬號。 二、注…

    編程 2025-02-27
  • 如何申請蘋果開發者賬號

    蘋果開發者賬號是開發iOS應用程序的必要步驟,本文將詳細介紹如何申請蘋果開發者賬號。首先,我們需要準備以下資料: 一、蘋果開發者官網 進入蘋果開發者官網 https://devel…

    編程 2025-02-25
  • 賬號密碼註冊詳解

    賬號密碼註冊是當前互聯網服務的常見形式之一。本文將從多個方面對賬號密碼註冊做詳細的闡述,涵蓋註冊原理、密碼安全、註冊流程優化、註冊成功跳轉和錯誤處理等內容。 一、註冊原理 賬號密碼…

    編程 2025-02-15
  • 手把手教你註冊(拳頭賬號註冊教程)

    拳頭遊戲(Riot Games)是美國一家遊戲製作公司。也是全球非常熱門遊戲league of legends(英雄聯盟)母公司。而且最近雲頂之弈手機遊戲模式的正式測試,因為雲頂之…

  • 賬號註冊步驟詳解(如何steam賬號註冊手機)

    最近我們遊戲風雲的“風雲小店”開張了,新店優惠喲~賣的比steam還要便宜,不過不少的小夥伴是第一次接觸steam,對註冊賬號還有些困惑?就隨着小編我的文章…

  • 從apple賬號登錄看賬號體驗

    如今,我們生活在一個信息化程度越來越高的時代,各種賬號的重要性也越來越突出。Apple作為科技公司的代表之一,其賬號的使用也越來越普遍。接下來,我們將從多個方面,詳細闡述apple…

    編程 2025-02-05
  • 聯通超級管理員賬號完整闡述

    一、聯通超級管理員賬號密碼 聯通超級管理員賬號是聯通公司的特別高權限賬號,對於聯通網絡架構的管理有着重要的作用。在創建聯通超級管理員賬號時,必須設置強密碼來確保賬號的安全性。一般來…

    編程 2025-01-24
  • Oracle賬號解鎖詳解

    一、Oracle解鎖表 在Oracle中,當一張表被鎖定了,其他的用戶就不能對該表進行任何修改操作。為了解鎖表,我們需要使用解鎖表的語句。對於不同的鎖定類型,解鎖表的語句也不同,下…

    編程 2025-01-16

發表回復

登錄後才能評論