我需要使用组织LDAP配置Liferay。
我的要求是按需(登录时)将用户导入Liferay数据库。
当我尝试使用在LDAP中映射到 sAMAccountNumber 的屏幕名称进行登录时,我得到了
身份验证失败错误
我也没有在db中看到任何用户导入。
经过大量调试后,看起来生活LDAP连接成功完成。但是没有从LDAP返回结果。
我在日志中看到类似的内容。
转换前搜索过滤器 (sAMAccountName = @screen_nameâ€'<@)搜索过滤器后 转换(sAMAccountName = @screen_name’<@)>
我不知道为什么最后会附加垃圾字符。
应该只是
“sAMAccountName = @ screen_name @”
任何快速指针都会有所帮助。
谢谢!
答案 0 :(得分:1)
经过大量的调试和服务器重启后,我终于知道了这个问题。希望它可以帮助别人。
如我的问题所示,有一些垃圾字符被附加到认证搜索过滤器,这就是它没有用我在登录屏幕上输入的实际值替换SAMAccountNamr的原因。
这个垃圾字符在我使用的文本编辑器中不可见,因此对人眼来说是不可见的。
只有当我将文本编辑器编码更改为ANSI时,我才能看到这些垃圾字符。我真的不知道字符编码是如何工作的,我试着想一想文本编辑器是否隐藏了什么。我从教程即网页中复制了这个字符串,这可能是这些垃圾字符被附加的原因。
删除后,一切都很好。感谢Pavel在调试过程中提出的建议。