真的被这个问题坑的好难受。
spirng-data-ldap 基本操作稍微学习以下,看看demo很快就能上手。
可遇到设置用户密码的时候就怎么都不成功。
网上查了才发现,java修改ad域账号的密码需要用ldaps连接。
连接ldaps的过程坚信无比。
首先确认修改密码必须是通过ldaps来连接,开始还在这里徘徊,原来是协议的问题。
需要连接ldaps,就需要服务器开启ldaps服务,还需要配置证书。
对微软的东西实在是不了解,还有网上有大牛帖子:https://yq.aliyun.com/articles/118657
又整了一天,才算是ad这边准备好了,为了验证是否能用ldaps连接,找了一个ldaps的客户端软件。
Ldap Admin Tool 是mac版的,很好用,支持ldaps方式,还有下载证书。
另外ad的密码字段是隐藏的。
存密码的字段:
@Attribute(name = "unicodePwd", type = Attribute.Type.BINARY)
byte[] unicodePwd;
字段名和类型都要注意。
设置密码还需要个函数进行转换:
public byte[] createUnicodePassword(String password) {
try {
return password.getBytes("UTF-16LE");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return null;
}
接下来,就是证书问题,如果服务器是好的,网络没有问题,会提示没有有效的证书。
到这里已经成功一大半了。
从服务器导出证书 用java的工具 keytool 制作证书。
启动时加参数,大牛的帖子里都要详细的描述。