使用WebSphere服务器中配置的LDAP注册表登录到应用程序后,如何从AD中获取用户的其他详细信息。我有使用单一登录的Java EE应用程序。我想获取其他详细信息,例如电子邮件,在Active Directory中配置的用户的办公地点。我怎么得到的?

        // 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");


从此注册表中,有机会获得它吗?

最佳答案

在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。我强烈建议您阅读信息中心文档。

关于java - 如何从Websphere UserRegistry获取用户详细信息,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17703814/

10-15 22:52