【问题标题】:Import Users and user groups from LDAP in Liferay 6.1在 Liferay 6.1 中从 LDAP 导入用户和用户组
【发布时间】:2012-08-12 18:55:41
【问题描述】:

我正在尝试将 LDAP 用户和组导入 Liferay 6.1。

跟随portal-ext.properties,只能从LDAP导入不Usergroups的用户

有什么建议吗?

portal-ext.properties

ldap.auth.enabled=true
ldap.export.enabled=false
ldap.import.method=user
ldap.user.impl=com.liferay.portal.security.ldap.LDAPUser
ldap.server.ids=1

ldap.server.name.1=STAFF
ldap.base.provider.url.1=ldap://X.X.X.X:XXX
ldap.base.dn.1=ou=ABCD,ou=wdf,o=aaa
ldap.security.principal.1=cn=XXXX,ou=users,o=aaa
ldap.security.credentials.1=XXXXX

ldap.auth.search.filter.1=(mail=@email_address@)
ldap.import.user.search.filter.1=(&(objectClass=inetOrgPerson)(!(loginDisabled=true)))
ldap.user.mappings.1=screenName=cn\npassword=userPassword\nemailAddress=mail\nfirstName=givenName\nlastName=sn\ngroup=groupMembership\njobTitle=title
ldap.user.custom.mappings.1=university=company

ldap.import.group.search.filter.1=(&(objectClass=inetOrgPerson)(!(loginDisabled=true)))
ldap.group.mappings.1=groupName=company\ndescription=description\nuser=groupMembership

错误信息: 出现错误:

   ERROR [liferay/scheduler_dispatch-2][PortalLDAPImporterImpl:698] Unable to import user cn=xxxx: null:null:{cn=cn: xxxx}
java.lang.NullPointerException
at com.liferay.portal.security.ldap.PortalLDAPImporterImpl.importGroup(PortalLDAPImporterImpl.java:753)
at com.liferay.portal.security.ldap.PortalLDAPImporterImpl.importGroups(PortalLDAPImporterImpl.java:849)
at com.liferay.portal.security.ldap.PortalLDAPImporterImpl.importFromLDAPByUser(PortalLDAPImporterImpl.java:693)
at com.liferay.portal.security.ldap.PortalLDAPImporterImpl.importFromLDAP(PortalLDAPImporterImpl.java:198)
at com.liferay.portal.security.ldap.PortalLDAPImporterImpl.importFromLDAP(PortalLDAPImporterImpl.java:135)
at com.liferay.portal.security.ldap.PortalLDAPImporterImpl.importFromLDAP(PortalLDAPImporterImpl.java:95)
at com.liferay.portal.security.ldap.PortalLDAPImporterUtil.importFromLDAP(PortalLDAPImporterUtil.java:39)
at com.liferay.portlet.admin.messaging.LDAPImportMessageListener.doReceive(LDAPImportMessageListener.java:28)
at com.liferay.portal.kernel.messaging.BaseMessageListener.receive(BaseMessageListener.java:25)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.liferay.portal.kernel.bean.ClassLoaderBeanHandler.invoke(ClassLoaderBeanHandler.java:67)
at $Proxy285.receive(Unknown Source)
at com.liferay.portal.kernel.scheduler.messaging.SchedulerEventMessageListenerWrapper.receive(SchedulerEventMessageListenerWrapper.java:73)
at com.liferay.portal.kernel.messaging.InvokerMessageListener.receive(InvokerMessageListener.java:63)
at com.liferay.portal.kernel.messaging.ParallelDestination$1.run(ParallelDestination.java:114)
at com.liferay.portal.kernel.concurrent.ThreadPoolExecutor$WorkerTask._runTask(ThreadPoolExecutor.java:671)
at com.liferay.portal.kernel.concurrent.ThreadPoolExecutor$WorkerTask.run(ThreadPoolExecutor.java:582)
at java.lang.Thread.run(Thread.java:619)

用户正在导入,但用户组仍未导入

提前结束

【问题讨论】:

    标签: import ldap liferay


    【解决方案1】:

    您可能想检查一下: https://www.liferay.com/community/forums/-/message_boards/message/15751010

    我也遇到了同样的错误,将屏幕名称映射从 cn 更改为 uid 解决了我的问题。 cn 可以包含空格,我认为这是我的问题。

    问候, 巴林特

    【讨论】:

    • 所以cn不应该包含空格?
    • 这是一个相当老的线程,但我认为您应该在同步组时使用 UID 而不是 CN。如果其中没有空格,您可能也可以使用 CN。
    • #ldap.user.mappings=screenName=cn\npassword=userPassword\nemailAddress=mail\nfirstName=givenName\nlastName=sn ldap.user.mappings=screenName=displayName\npassword=userPassword\nemailAddress=邮件\nfirstName=givenName\nlastName=sn
    • 在属性文件中我做了上面给出的更改。也许我应该尝试使用 ui 而不是 displayName
    【解决方案2】:

    我认为你需要特别注意portal.properties中的以下属性:

    #
    # Set either user or group for import method. If set to user, the portal
    # will import all users and the groups associated with those users. If set
    # to group, the portal import all groups and the users associated those
    # groups. This value should be set based on how your LDAP server stores
    # group membership information.
    #
    ldap.import.method=user
    #ldap.import.method=group // may be you can use this
    
    #
    # If set to true, the group filter will be applied, but only to groups in
    # the specified base DN. If set to false, the filter will not be applied and
    # all groups that are associated with the imported users will be imported
    # regardless of the base DN.
    #
    ldap.import.group.search.filter.enabled=true
    

    另外我认为您可以通过转到控制面板然后...来测试是否正在导入组...

    1. 控制面板
    2. 门户设置
    3. Authentication标签
    4. LDAP标签
    5. 单击“添加”或“编辑”(如果已添加 LDAP)
    6. 进入Groups部分并添加相关映射信息,点击Test LDAP Groups(附截图)。

    希望这对您有所帮助。

    【讨论】:

    • 嗨,Prakash,谢谢您的回复,我已经通过单击“测试 LDAO 组”按钮进行了检查,我可以看到大约 10 个组,但是在导入其不导入用户组时,它只有导入用户谢谢,克里希纳
    • 您是否尝试使用:ldap.import.method=group
    • 是的,我确实尝试过使用 ldap.import.method=group,但没有用
    猜你喜欢
    • 1970-01-01
    • 2012-08-17
    • 2012-08-13
    • 1970-01-01
    • 2014-07-25
    • 2014-02-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多