簡體   English   中英

以適當的情況檢索JNDI dn

[英]Retrieving a JNDI dn with its proper case

我想檢索存儲在LDAP服務器中的用戶DN,並保留原始字符大小寫。 例如,假設服務器中的DN為“ cn = Bob,o = MyOrg”。 我想使用“ cn = bob,o = myorg”查詢服務器,並因此檢索原始的“ cn = Bob,o = MyOrg”。

DirContext.getAttributes(dn)方法可以返回一組屬性,但這不包括DN本身。 另一方面,DirContext.search()使用getNameInNamespace()返回具有此信息的SearchResult。 不幸的是,搜索表達式似乎不允許我在DN上搜索。

我知道我可以通過首先使用getAttributes()檢索唯一屬性,然后在search()中使用此屬性值來實現此目的。 但這導致2個連接。 另外,我需要確保我具有可以搜索()的唯一屬性,而不是null。

讓我用找到的解決方案回答我的問題。

它涉及search()函數,其中name參數(搜索上下文)應為DN,查詢過濾器為空或類似(objectClass = *)。 然后,它返回一行,對應於正在搜索的DN。 然后,原始DN在SearchResult中可用。

只需查找DN。 結果DirContext在正確的情況下應具有其getNameInNamespace()

搜索也可以,但是效率較低,代碼更多。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM