【问题标题】:Unable to load user from Ldap server in to Liferay com.liferay无法将用户从 Ldap 服务器加载到 Liferay com.liferay
【发布时间】:2015-06-18 11:28:17
【问题描述】:

我正在尝试将用户从 ldap 服务器验证到 liferay。我的要求是使用 screename 登录到 liferay。

ldap.base.provider.url= ldap://localhost:389
ldap.base.dn= dc=soas,dc=schoolx
ldap.security.principal= cn=admin
ldap.security.credentials= blahblah
auth.pipeline.pre=com.liferay.portal.security.auth.LDAPAuth

ldap.auth.enabled=true
ldap.auth.required=true
ldap.password.policy.enabled=true
ldap.users.dn= dc=soas,dc=schoolx
ldap.groups.dn= dc=soas,dc=schoolx

ldap.import.enabled=true
ldap.import.interval=1
ldap.import.on.startup=true

ldap.import.method=group
ldap.import.group.search.filter.enabled=true
ldap.import.group.cache.enabled=false
#ldap.export.enabled=true

ldap.auth.password.encryption.algorithm=

ldap.user.mappings=screenName=cn\npassword=userPassword\nemailAddress=mail\nfirstName=givenName\nlastName=sn

ldap.group.mappings=groupName=cn\ndescription=description\nuser=member

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

ldap.import.group.search.filter=(objectClass=groupOfEntries)

ldap.auth.search.filter=(cn=@screen_name@)

当我使用来自 ldap 服务器的用户登录时,出现以下异常。

07:20:28,513 ERROR [liferay/scheduler_dispatch-2][PortalLDAPImporterImpl:1061] Unable to load user {createtimestamp=createTimestamp: 20150331045703Z, mail=mail: vimekvanamali@gmail.com, userpassword=userPassword: [B@6c01fb, creatorsname=creatorsName: cn=Directory Manager,cn=Root DNs,cn=config, givenname=givenName: vimekedited, sn=sn: vanamali, cn=cn: vimekeditedmali}
com.liferay.portal.GroupFriendlyURLException
    at com.liferay.portal.service.impl.UserLocalServiceImpl.validateScreenName(UserLocalServiceImpl.java:6181)
    at com.liferay.portal.service.impl.UserLocalServiceImpl.validate(UserLocalServiceImpl.java:5897)
    at com.liferay.portal.service.impl.UserLocalServiceImpl.addUserWithWorkflow(UserLocalServiceImpl.java:746)
    at com.liferay.portal.service.impl.UserLocalServiceImpl.addUser(UserLocalServiceImpl.java:608)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at com.liferay.portal.spring.aop.ServiceBeanMethodInvocation.proceed(ServiceBeanMethodInvocation.java:115)
    at com.liferay.portal.spring.transaction.DefaultTransactionExecutor.execute(DefaultTransactionExecutor.java:62)
    at com.liferay.portal.spring.transaction.TransactionInterceptor.invoke(TransactionInterceptor.java:51)
    at com.liferay.portal.spring.aop.ServiceBeanMethodInvocation.proceed(ServiceBeanMethodInvocation.java:111)
    at com.liferay.portal.spring.aop.ServiceBeanAopProxy.invoke(ServiceBeanAopProxy.java:175)
    at com.sun.proxy.$Proxy105.addUser(Unknown Source)
    at com.liferay.portal.service.UserLocalServiceUtil.addUser(UserLocalServiceUtil.java:1166)
    at com.liferay.portal.security.ldap.PortalLDAPImporterImpl.addUser(PortalLDAPImporterImpl.java:521)
    at com.liferay.portal.security.ldap.PortalLDAPImporterImpl.importUser(PortalLDAPImporterImpl.java:930)
    at com.liferay.portal.security.ldap.PortalLDAPImporterImpl.importUsers(PortalLDAPImporterImpl.java:1042)
    at com.liferay.portal.security.ldap.PortalLDAPImporterImpl.importFromLDAPByGroup(PortalLDAPImporterImpl.java:664)
    at com.liferay.portal.security.ldap.PortalLDAPImporterImpl.importFromLDAP(PortalLDAPImporterImpl.java:197)

谁能帮我解决这个问题?

【问题讨论】:

标签: ldap liferay liferay-6 portal liferay-ide


【解决方案1】:

Liferay 为每个用户创建一个私有组,并将他们的用户名作为唯一的友好 URL。 我想这里的问题是已经存在一个与用户的屏幕名称相同的友好 URL 的组。 因此,liferay 无法将此用户导入其数据库。

在 liferay 数据库中,尝试执行这个查询,看看它是否返回任何组。

select groupId, name, friendlyURL from Group_ where friendlyURL like '%vimekeditedmali%';

如果返回任何已存在的组,那么您需要更改该组的友好 URL 以使导入用户起作用。

【讨论】:

  • 是的,我试过了,它确实返回了一行。我清理了数据库并再次启动了服务器。现在可以了
猜你喜欢
  • 1970-01-01
  • 2012-08-13
  • 1970-01-01
  • 2015-06-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多