(一) 开发配置场景
LDAPServer | OpenLDAP |
配置密码存储方式 | MD5 |
LDAP Client测试 | JNDI |
LDAP Client测试 | JLDAP |
(二)实践
- 确认LDAP Server 密码存储方式,如MD5、SHA、SSHA等
- 确认LDAP Server密码存储规则,如OpenLDAP支持的MD5密码串必须还得经过Base64编码。
- 基于MD5的LDAP Server条目密码存储实践。
- 流程图
- 示例代码
- 出现的问题
- 缓存问题,我用客户端修改了某用户的密码,但从其它客户端查询时密码并没有改变。
- 需要重启LDAP Server之后才真正看到变更。
- 这个问题如果直接使用JNDI倒是很正常。
- 由此说来问题出在JLDAP连接配置管理那块。
- OpenLDAP 存储的密码以MD5举例,它的MD5不是普通的MD5它有自己的规则,如下所述:
- 首先将明文转为MD5字节组
- 将字节组进行Base64处理
- 给经Base64处理完成的字符串加前缀{MD5}
- 同理,SHA、SSHA应该也是做类似操作吧?(还未进行验证)
- 缓存问题,我用客户端修改了某用户的密码,但从其它客户端查询时密码并没有改变。
(三) 参考资料
- 示例代码下载