我尝试从Ldap服务器验证用户。
这是我的Ldap用户:
我的管理员的路径是cn = admin,dc = ldap,dc = agem,dc = com
这是我的liferay身份验证设置:
我可以连接到我的ldap服务器,我可以通过测试操作从ldap获取用户。同时重启liferay几次,ldap中的用户被复制到liferay,我可以在用户下看到这些。 但是我无法使用此用户登录liferay。我收到的错误如下:
08:32:56,457 ERROR [http-bio-8180-exec-3][LDAPAuth:341] Problem accessing LDAP server
com.liferay.portal.kernel.ldap.LDAPFilterException: Invalid filter cn=agem,cn=admin,dc=ldap,dc=agem,dc=com
at com.liferay.portal.kernel.ldap.LDAPUtil.validateFilter(LDAPUtil.java:285)
我缺少什么?
答案 0 :(得分:1)
检查提供异常的Liferay代码(LDAPUtil.validateFilter),您可以看到以下代码:
if (!filter.startsWith(StringPool.OPEN_PARENTHESIS) ||
!filter.endsWith(StringPool.CLOSE_PARENTHESIS)) {
return false;
}
因此,您遇到的问题是,身份验证过滤器需要以括号开头和结尾,您的过滤器以cn = ...开头。此外,Liferay从基本DN开始用户搜索,因此您应该只在身份验证过滤器中输入以下内容:(cn = @ screen_name @),而不是完整的DN
答案 1 :(得分:0)
您的身份验证过滤器应该有点像这样
(&(objectCategory=inetOrgPerson)(cn=@screen_name@))
HTH