displayName没有按原样添加到使用API​​的apached中

时间:2014-12-08 09:53:47

标签: ldap apacheds

我正在使用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。)

2 个答案:

答案 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。