Java Liferay LDAP验证未按预期工作

Java Liferay LDAP验证未按预期工作,java,ldap,liferay-6,apacheds,Java,Ldap,Liferay 6,Apacheds,我正在使用Liferay 6.1 CE,我有以下与以下博客相关的问题 参考: 我正在尝试进行LDAP身份验证,我不应该导入LDAP用户密码,我还想只使用LDAP作为身份验证源,而不是第二次进行liferay身份验证 以下是我在portal-ext.properties中的设置: ldap.factory.initial=com.sun.jndi.ldap.LdapCtxFactory ldap.referral=follow ldap.base.provider.url=ldap://local

我正在使用Liferay 6.1 CE,我有以下与以下博客相关的问题

参考:

我正在尝试进行LDAP身份验证,我不应该导入LDAP用户密码,我还想只使用LDAP作为身份验证源,而不是第二次进行liferay身份验证

以下是我在portal-ext.properties中的设置:

ldap.factory.initial=com.sun.jndi.ldap.LdapCtxFactory
ldap.referral=follow
ldap.base.provider.url=ldap://localhost:10389
ldap.base.dn=dc=example,dc=com
ldap.security.principal=uid=admin,ou=system
ldap.security.credentials=secret

auth.pipeline.enable.liferay.check=false

ldap.auth.enabled=true
ldap.auth.required=true
ldap.auth.method=bind

ldap.import.enabled=false
ldap.import.on.startup=false
ldap.import.interval=10
ldap.export.enabled=false
ldap.export.group.enabled=false

ldap.auth.search.filter=(mail=@email_address@)

ldap.user.mappings=screenName=cn\npassword=userPassword\nemailAddress=mail\nfirstName=givenName\nlastName=sn
ldap.user.custom.mappings=screenName=cn\npassword=userPassword\nemailAddress=mail\nfirstName=givenName\nlastName=sn
ldap.group.mappings=groupName=cn\ndescription=description\nuser=uniqueMember

ldap.import.user.search.filter=(objectClass=inetOrgPerson)
ldap.import.group.search.filter=(objectClass=groupOfUniqueNames)

ldap.password.policy.enabled=false
ldap.import.user.password.enabled=false
ldap.import.user.password.autogenerated=false
ldap.import.user.password.default=test
发生的情况是,如果我保持auth.pipeline.enable.liferay.check=false,那么即使使用test@liferay.com由于用户不在ldap中,其他用户也无法登录,原因见下面的问题1。如果启用该属性,则liferay会在ldap之后执行第二次验证,并且会失败,因为ldap中的密码与本地虚拟passwordtest不同,这是由于密码未导入设置造成的

另外,我还有两个问题

当我使用这个属性文件加载ldap道具时,只有在测试用户第一次登录并转到控制面板ldap页面后,我才能在portalproperties表中看到它。如果我不这样做,其他用户都无法进行ldap身份验证,因为props文件未加载到该portalproperties表中

在liferay中有没有一种方法可以让我只进行ldap身份验证而不创建liferay用户


差不多晚了两年!!但是,如果其他人发现此线程,Liferay始终会通过身份验证管道,如果通过,则总是根据其数据库再次检查密码,除非

auth.pipeline.enable.liferay.check=false

在portal.properties中。在这种情况下,与存储在Liferay User_uu表中的密码无关,密码将仅根据LDAP进行检查


对不起,迟到了两年

二,。否,liferay需要用户实体才能使用它进行操作。但您可以在注销后或登录前自动删除用户。