2013-07-17 60 views
1

如何使用WebSphere服務器中配置的LDAP註冊表登錄到應用程序後從AD中獲取用戶的其他詳細信息。我有Java EE應用程序,它使用單點登錄。我想獲得其他詳細信息,例如在Active Directory中配置的用戶的電子郵件,辦公地點。我如何獲得?如何從Websphere獲取用戶詳細信息UserRegistry

 // Retrieves the default InitialContext for this server. 
     javax.naming.InitialContext ctx = new javax.naming.InitialContext(); 

     // Retrieves the local UserRegistry object. 
     com.ibm.websphere.security.UserRegistry reg = (com.ibm.websphere.security.UserRegistry) ctx 
       .lookup("UserRegistry"); 

從這個註冊表中,有機會得到它嗎?

回答

2

在WebSphere Application Server中,您可以訪問用戶註冊表信息並對其進行修改,通過Virtual Member Manager組件可以訪問其API。

IBM Infocenter上有大量文檔和示例。從那裏,代碼片段,以獲得一個實體的屬性等的用戶:

DataObject root = SDOHelper.createRootDataObject(); 
DataObject entity = SDOHelper.createEntityDataObject(root, null, DO_PERSON_ACCOUNT); 
entity.createDataObject(DO_IDENTIFIER).set(PROP_UNIQUE_NAME, 
          "uid=SalesManager,cn=users,dc=yourco,dc=com"); 
DataObject propCtrl = SDOHelper.createControlDataObject(root, null, DO_PROPERTY_CONTROL);   
propCtrl.getList(PROP_PROPERTIES).add("sn"); 
propCtrl.getList(PROP_PROPERTIES).add("uid"); 
propCtrl.getList(PROP_PROPERTIES).add("cn"); 
propCtrl.getList(PROP_PROPERTIES).add("telephoneNumber"); 
propCtrl.getList(PROP_PROPERTIES).add("createTimestamp"); 

root = service.get(root); 

要獲得你需要先執行API的Programming Prerequisites註冊表通信的服務實例。我建議您查看Infocenter文檔。

+0

有沒有其他的方式來獲得沒有虛擬成員管理器的細節?因爲wer不能去編輯現有的系統配置。我們沒有提供太多的預先計劃。 – Jothi

+0

您可以使用外部API進行連接:我已經試過了Spring LDAP並且效果很好 –

+0

嗨carlos,請與我分享Spring LDAP實現以查詢基於WebSphere文件的存儲庫。 –

相關問題