我知道这是一个旧帖子,但我找到了解决此问题的另一种方法。
此wolution适用于ApacheDirectory服务器(对于org.apache实现类,但我认为您可以为每个openldap找到拦截器)。
如果您在使用ldappasswd时默认使用SHA加密,则可以更改密码的拦截器实现。
您必须修改以下dn条目:
ads-interceptorId=passwordHashingInterceptor,ou=interceptors,ads-directoryServiceId=default,ou=config
并更改值:
ads-interceptorclassname: arg.apache.directory.server.core.hash.ShaPasswordHashingInterceptor
默认情况下,openldap正在使用:
ads-interceptorclassname: org.apache.directory.server.core.hash.SshaPasswordHashingInterceptor
要修改的命令:
ldapmodify -h -p -D "" -w "" <
dn: ads-interceptorId=passwordHashingInterceptor,ou=interceptors,ads-directoryServiceId=default,ou=config
changetype: modify
replace: ads-interceptorclassname
ads-interceptorclassname: org.apache.directory.server.core.hash.ShaPasswordHashingInterceptor
EOF
然后您必须重新启动LDAP服务器。 ldappasswd添加的所有新密码都位于SHA中,而不是SSHA。