搭建LDAP服務器并使用JNDI_百度文庫_第1頁
搭建LDAP服務器并使用JNDI_百度文庫_第2頁
搭建LDAP服務器并使用JNDI_百度文庫_第3頁
搭建LDAP服務器并使用JNDI_百度文庫_第4頁
搭建LDAP服務器并使用JNDI_百度文庫_第5頁
已閱讀5頁,還剩5頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、Windows 下搭建LDAP服務器并使用JNDI訪問一、OpenLDAP安裝和配置安裝還是比較簡單的,一直next就好。這里記得把上面2個都選上,將LDAP注冊為系統(tǒng)的一個服務,默認安裝位置:C:Program FilesOpenLDAP,進入安裝目錄,編輯slapd.conf 文件:找到ucdata-path ./ucdatainclude ./schema/core.schema在下面加入:(注意你的系統(tǒng)路徑,可能隨安裝位置不同而稍有差異 )include ./schema/core.schemainclude ./schema/corba.schemainclude ./schema/

2、dyngroup.schemainclude ./schema/java.schemainclude ./schema/misc.schemainclude ./schema/cosine.schemainclude ./schema/nis.schemainclude ./schema/inetorgperson.schemainclude ./schema/openldap.schema這個搞定以后,在同一文件后面的(大概65-66行,修改)suffix “o=anotherbug,c=com”rootdn “cn=manager,o=anotherbug,c=com”還有第70行的位置

3、: rootpw secret,這里要修改為加密后的密碼。具體操作:打開命令行,定位到安裝目錄下,輸入:slappasswd -h MD5 s “替換為你想要設置的密碼,無引號”將生成的MD5密文:MD5Xr4ilOzQ4PCOq3aQ0qbuaQ=填入原來secret位置。OK至此配置已經(jīng)搞定,可以測試一下服務了。打開命令行轉到安裝目錄下輸入:sldapd -d 1二、建立條目(Entry) ,導入 ldif 后綴名文件ldif:LDAP Data Interchange Format,基于文本。有兩種類型的 LDIF 文件:第一種是描述 Directory 條目數(shù)據(jù)的,第二種是描述更新條目

4、的。我們主要看怎么描述條目的。打開編輯器(如Editplus,UltraEdit等),新建test.ldif內容如下:dn: o=anotherbug,c=comobjectClass: dcObjectobjectClass: organizationo: anotherbugdc: comdn: uid=mousepoato, o=anotherbug,c=comuid: mousepoatoobjectClass: inetOrgPersonmail: vicky.chenuserPassword: admin sn: Licn: test注意ldif文件對格式的要求非常嚴格,屬性要以冒

5、號和空格與值隔開 ,并且其他地方不允許有空格 。否則當你導入ldif文件時,會提示出現(xiàn)“l(fā)dap_add: Invalid syntax (21 ”等諸多錯誤,另外在我機器上測試,ldif對中文支持也還不好 ,比如我將最后的cn: test改為 cn: 鼠標土豆,導入就會報錯。寫完保存到安裝目錄下。在命令行輸入:ldapadd -c -x -D “cn=manager,o=anotherbug,c=com” -w “剛才替換secret出的密碼明文” -f test.ldif運行命令后結果如下:注意我們在ldapadd后面加上了 ”c “ 參數(shù),他會一直運行不會因錯誤而終止,比如對系統(tǒng)已經(jīng)存在

6、的entry命令會提示但不會中止。三、LDAP查看工具可能大家看了這么多感覺還是很抽象,我們需要一個GUI看看LDAP到底是個什么東東。這里推薦兩個瀏覽工具1、LdapBrowser這是個Java 開發(fā)的 LDAP Browser/Editor 工具,不但跨平臺(Windows, Unix-like,而且功能非常完整,速度又快。運行起來的界面時這個樣子的。2、Softrra LDAP Administrator 2009這是一個比較強大和專業(yè)的客戶端,涵蓋了大多數(shù)企業(yè)的LDAP服務類型。一直下一步安裝成功后,它的配置也是比較簡單的:新建一個profile,命名為Local_LDAP配置連接信息

7、這是完整配置好后的效果四、通過 JNDI api操作LDAP例子參考代碼:importimportimportimportimportimportimportpublic class LdapTest public static void main(String args / LDAP連接對象LDAPConnection ld = null;LDAPEntry findEntry = null;int status = -1;try ld = new LDAPConnection(;/ 連接LDAP服務器的IP及端口號final String MY_HOST = "localhost

8、"final int MY_PORT = 389;/ 連接LDAP服務器ld.connect(MY_HOST, MY_PORT;/ 欲查詢的條目final String ENTRYDN = "cn=vicky,dc=sino,dc=com"/ 條目的屬性final String attrNames = "sn", "telephonenumber", "name", "mail"/ LDAP查詢操作結果集合LDAPSearchResults res = ld.search(ENTRYD

9、N,LDAPConnection.SCOPE_BASE,"objectclass=*",attrNames,false;/ 循環(huán)遍歷集合,獲取屬性名,只能遍歷一次while (res.hasMoreElements(tryfindEntry = res.next(;catch (LDAPException eSystem.out.println("Error: " + e.toString(;continue;/ 條目屬性名集合LDAPAttributeSet findAttrs = findEntry.getAttributeSet(;/ 屬性名列表E

10、numeration enumAttrs = findAttrs.getAttributes(;/ 循環(huán)遍歷屬性名列表以獲取每個屬性名while (enumAttrs.hasMoreElements(LDAPAttribute anAttr = (LDAPAttribute enumAttrs.nextElement(;String attrName = anAttr.getName(;if (attrName.equals("cn"System.out.println("Full name:"else if (attrName.equals("

11、;sn"System.out.println("Last name (surname:"/ 斷開與LDAP服務器的連接if (ld != null && ld.isConnected(tryld.disconnect(;catch (LDAPException eSystem.out.println("Error: " + e.toString(;System.exit(status; catch(Exception eSystem.out.println("=成功!"五、通過SpringLDAP訪問LDAP

12、服務的例子參考代碼:1、spring配置文件代碼xml version="1.0" encoding="UTF-8"?>DOCTYPE beans PUBLIC "-/SPRING/DTD BEAN/EN" ><beans><bean id="ladpContextSource"class><property name="url" value="ldap:/localhost:389" /> <property name=

13、"base" value="dc=sino,dc=com"> property> <property name="userDn" value="cn=vicky,dc=sino,dc=com" /><property name="password" value="123456" />bean><bean id="ldapTemplate"class><property name="con

14、textSource" ref="ladpContextSource" />bean><bean id="userDao" class><property name="ldapTemplate"><ref bean="ldapTemplate" />property>bean>beans>2、訪問LDAP服務的java代碼importimportimportimportimport/* 2011-03-04* author vicky*/p

15、ublic class UserDaoImpl private LdapTemplate ldapTemplate;public void setLdapTemplate(LdapTemplate ldapTemplate this.ldapTemplate = ldapTemplate;public List getAllContactNames( return ldapTemplate.search("", "(objectclass=person",new AttributesMapper(public Object mapFromAttributes(Attributes attrsthrows NamingExceptionreturn attrs.get("cn".get(;3、測試代碼importimportimportimportpublic class Test public static void main(String args ApplicationCon

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論