【发布时间】:2016-11-04 10:37:58
【问题描述】:
我配置了多个域控制器,想修改所有域中用户的用户属性。
我的配置如下所示:
<bean id="writeLdapContextSource"
class="org.springframework.ldap.core.support.LdapContextSource">
<property name="url" value="ldap://123.12.123.3:389" />
<property name="base" value="" />
<property name="userDn" value="domainx\userabc" />
<property name="password" value="secret124" />
<property name="pooled" value="false"/>
<property name="referral" value="follow"/>
</bean>
我可以成功修改本地域内的用户。没问题。
但如果我尝试修改不同域中的用户,我会收到一条错误消息。
注意: ldap 服务用户“domainx\userabc”具有在所有域中进行修改的正确授权。
例子:
1.) 修改另一个域中用户的属性
原因:javax.naming.OperationNotSupportedException: [LDAP: error code 53 - 00000057: LdapErr: DSID-0C04214C, comment: Error in attribute conversion operation, data 0, v1db1
2.) 将配置更改为使用端口 3268 而不是 389
原因:javax.naming.OperationNotSupportedException: [LDAP: error code 53 - 00002035: LdapErr: DSID-0C090B45, comment: Operation not allowed through GC port, data 0, v1db1
注意:我可以修改本地域中的用户属性。所以我的修改代码是正确的。
片段:
DirContextOperations context = writeLdapTemplate.lookupContext(ldapUser.getDistinguishedName());
context.addAttributeValue(attributeName, attributeValue);
writeLdapTemplate.modifyAttributes(context);
这非常适合本地域用户。
有人知道如何修改其他域中的用户吗?
我还使用 LDAP 浏览器检查了用户,他能够看到所有域...
【问题讨论】:
标签: java spring active-directory ldap