当前位置: 首页 > 知识库问答 >
问题:

无法将用户从Ldap服务器加载到Liferay com.Liferay

丌官嘉良
2023-03-14

我正在尝试从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)

有人能帮我解决这个问题吗?

共有1个答案

袁智明
2023-03-14

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

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

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

如果返回任何已存在的组,则需要更改该组的友好URL,以便导入用户工作。

 类似资料:
  • 我正在尝试建立 PHP 连接,但不断收到此错误。我希望有人能帮忙。 我的代码给出了以下错误: 我的代码是: 而 busca.php 的文件是:

  • 当我尝试将对象内容上载到FTP服务器 [它的值从[T:InputFileUpload]组件中获取] 我的web浏览器中的加载指示器播放并且不会停止 调试时,我发现我的come在一行中冻结 但是我尝试了3个方法(如代码所示)来上载 ,但是所有方法仍然不工作 将文件上载到FTPServer控制器方法

  • 环境 : Windows Eclipse Luna Service Release 2 (4.4.2) Tomcat 8 JDK 8 当我尝试使用

  • 我有一个外部Web服务器,我正在迁移。我试图通过LDAP对内部服务器上的Active Directory进行身份验证。我可以使用相同的代码从旧服务器(Ubuntu 8)进行连接和身份验证,但无法在新服务器(Redhat 7)上进行身份验证。 外部服务器当前运行的是运行PHP 5.4.16并启用LDAP支持(PHP LDAP)的Redhat 7。 内部服务器目前是一个带有LDAP和Active Di

  • 我已经尝试为我的表(jQuery(v1.12.4)、datatable(v1.10.15))实现服务器端分页概念 根据可数据服务器端分页留档 我已经启用了serverSide,分页,处理为true,并指定了sPaginationType以及ajax。 在Custom Data Source Property文章中提到,我们需要使用dataSrc选项作为字符串来从不同的源属性获取数据,在本例中,它可

  • 我有一个nio通道,我的客户机应该从服务器计算机加载一个类文件。它们在相同的IP范围内。我有两个在服务器和客户机上通用的接口。以及在服务器计算机上实现接口的类。我在我的客户机上使用以下代码,但运行时将出现ClassNotFoundException。 这种情况下类加载的完整过程是什么?