无法使用Spring LDAP从LDAP获取sambaSID

时间:2014-01-05 16:38:04

标签: java ldap samba spring-ldap

我正在尝试根据一些用户信息在LDAP中填充一些samba值。 除此之外,我还要为用户创建一个'sambaSID'。 它由两个值组成:前缀是sambaDomainName对象的sambaSID,后缀是用户的1000 +(2 * uid)。

我可以使用ldapsearch从我的sambaDomainName中看到sambaSID属性,如下所示:

ldapsearch -x  -D {adminUser} -W -H ldap://...:389 -b $base -s sub "sambaDomainName=TRON" sambaSID

正确提供了adminUser和base。

现在,如果我尝试使用Spring LDAP在Java中执行相同的操作,我会看到SambaSID的所有属性除了。对于LDAP组对象也会发生相同的行为,我还需要SambaSID。

由于我可以阅读任何其他财产,我相信SambaSID有一些特别之处。

有没有人有任何想法?

提前致谢! DodoFXP

1 个答案:

答案 0 :(得分:0)

我解决了这个问题:

我正在使用spring-ldap,创建一个LdapContextSource,使用主体和密码对其进行配置,然后将其传递给LdapTemplate。

LdapTemplate不使用执行身份验证的.getReadWriteContext()。 因此,我使用的是匿名访问。当对getReadWriteContext()返回的DirContext进行操作时,我得到所有属性。

另外,身份验证已在LDAP上重新启用,因此匿名现在显示更少的属性。