首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >LDAP ModifyAttributes by email

LDAP ModifyAttributes by email
EN

Stack Overflow用户
提问于 2010-07-28 07:15:34
回答 2查看 1.6K关注 0票数 1

我需要修改LDAP中现有记录的属性。似乎tI获取记录的唯一方法是使用查找:

代码语言:javascript
复制
ctx.modifyAttributes(CN=Joe blue,cn=user,DC=foo,DC=com" , mods); 

但我需要通过电子邮件(或登录)获得它。我尝试了几种变体,但得到了一个命名异常,例如:

代码语言:javascript
复制
ctx.modifyAttributes(&(objectClass=user)(mail=jblow*)),cn=user,DC=foo,DC=com)

javax.naming.InvalidNameException:(&(objectClass=user)(mail=jblow*)),cn=user,DC=foo,DC=com:[LDAP:错误代码34 - 0000208F: NameErr: DSID-031001BA,问题2006 (BAD_NAME),数据8349,最佳匹配:'(&(objectClass=user)(mail=jblow*)),cn=user,DC=foo,DC=COM,

任何建议都将不胜感激。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-07-28 12:00:48

不能为修改操作提供搜索筛选器。您需要提供一个完整的DN,如您的第一个示例所示。

因此,您必须首先在cn=user,dc=foo,dc=com的基本DN中搜索(mail=jblow*),以查找感兴趣对象的完整DN。

然后,您可以根据完整的DN进行修改。

票数 1
EN

Stack Overflow用户

发布于 2011-02-15 23:57:28

正如geoffc所说,您需要将"distinguishedName“与mods一起传递给modifyAttributes函数。

您可以创建一个单独的函数,根据搜索约束(mail=jblow*)查询LDAP,并返回"distinguishedName“字符串。然后将函数传递给ctx.modifyAttributes()。

代码语言:javascript
复制
String dn = distinguishedNameQuery();
ctx.modifyAttributes(dn, mods);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3348733

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档