我正在使用APACHE DS api在LDAP服务器中添加一个条目。但是,不会按原样添加displayName属性,而是添加“displayname”(所有小型大写)。以下是我的输入集:
Entry entry = new DefaultEntry(
"cn=" + cn + "," + this.base_dn,
"displayName",name.trim(),
"objectclass:top",
"objectclass:person",
"objectclass:inetOrgPerson",
"objectclass:organizationalPerson",
"cn",cn,
"sn",cn,
"description:Gerrit User",
"mail",cn +"@org.com",
"userPassword",password
);
知道为什么会这样吗?
具有讽刺意味的是,当userPassword被错误地写为“userpassword”时,正确的属性名称(即“userPassword”)会进入LDAP。
(另外,在下面的标签中找不到apache-ldap-api。)
答案 0 :(得分:1)
LDAP属性名称不区分大小写,因此'displayname' == 'displayName'
和'userpassword' == 'userPassword'
。它们在功能上是相同的,区别仅在于美学。 Apache DS 可能使用模式中列出的名称。
答案 1 :(得分:0)
我正面临这个问题,因为我在与LDAP结合时使用了gerrit。默认情况下,gerrit将 ldap.accountFullName 属性作为 displayName 用于显示登录后的用户名。因此,当'displayname'属性被插入到ldap中时,gerrit无法搜索此属性(gerrit case sensitivity)。将此gerrit属性更改为'displayname'解决了我的目的。
在LDAP方面,属性是CASE INSENSITIVE。