如何使用在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");
从这个注册表中,是否有机会获得它?
答案 0 :(得分: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文档。
答案 1 :(得分:0)
我写了一篇关于这个问题的文章:
http://veithen.github.io/2012/12/13/retrieving-custom-user-attributes-from.html
请注意,结论与Carlos所写的内容兼容:您必须使用VMM。