Java Liferay授权

Java Liferay授权,java,liferay,liferay-6,Java,Liferay,Liferay 6,我需要对LDAP组织实施liferay身份验证。一旦用户成功登录,我希望根据在liferay中创建的本地组检查用户 例如,某些团队中的用户应该只能进入应用程序。由于LDAP中没有任何东西能够将这些用户与LDAP中的其他用户区分开来,因此我需要在liferay中本地实现一些东西 当用户登录时,应根据LDAP对其进行身份验证,然后应查找本地liferay组以检查用户是否属于该组。liferay管理员应可配置此组。只有当他/她是该组的一部分时,才应显示带有数据的应用程序主页 任何关于这方面的建议都会有

我需要对LDAP组织实施liferay身份验证。一旦用户成功登录,我希望根据在liferay中创建的本地组检查用户

例如,某些团队中的用户应该只能进入应用程序。由于LDAP中没有任何东西能够将这些用户与LDAP中的其他用户区分开来,因此我需要在liferay中本地实现一些东西

当用户登录时,应根据LDAP对其进行身份验证,然后应查找本地liferay组以检查用户是否属于该组。liferay管理员应可配置此组。只有当他/她是该组的一部分时,才应显示带有数据的应用程序主页


任何关于这方面的建议都会有所帮助。谢谢。

以下是我的理解:

  • 用户存储在LDAP中
  • 用户未在LDAP中分类。不存在ldap组
  • 因此,当您针对LDAP进行身份验证时,LDAP中的所有用户都将登录到Liferay
  • 但您需要的是,只有属于Liferay中某个组的用户才能登录,其他用户则不能
  • 如果这是您想要的,那么以下是我的几点建议:

  • 最好的办法就是拥有自己。在维护方面,这会更好,因为身份验证已经通过LDAP进行了。这是你可以做到的。当然,如果采用这种方法,则需要通过任何LDAP客户端(如LDAP admin或jExplorer)手动将用户分配给每个组
  • 但如果这不可能,那么您可以通过liferay对用户进行分组,也可以是liferay中的用户
  • 从LDAP成功进行身份验证后,您可以检查特定用户是否属于所需的组织、用户组或站点。您可以为此目的使用
  • 如果用户不是所需组的成员,则您可以将其从系统中注销,并根据需要将其重新引导到登录页面或其他页面
  • 您还可以使用一个钩子来防止更新和删除用户组、组织或站点,以便管理员不会意外删除或更新可能导致身份验证失败的相关组

  • 希望这有帮助,让我知道我所理解的是否正确。

    需要记住的一点是,Liferay source中已经有一个LDAP验证器类

    如果您想登录到test@liferay.com,您可以将其添加到LDAP。(我意识到这可能会打破LDAP的使用要求)。 为您自己/组织(在LDAP和Liferay中)创建一个特殊的管理员帐户也是很常见的,只要恢复到标准的Liferay身份验证,登录到您的test@liferay.com默认管理员,并确保该用户的Liferay版本具有正确的全局管理员角色

    而且, 您可以在Liferay身份验证管道中添加多个身份验证

    我假设您已将以下行添加到portal-ext.properties(或钩子属性覆盖):

    auth.pipeline.pre=com.YourLDAPAuthenticator
    
    您也可以使用这一行:

    auth.pipeline.enable.liferay.check=false
    
    您可以保持Liferay检查(设置为true),并可以使用默认管理员的Liferay凭据登录,但如果您没有同步所有其他用户的Liferay和LDAP密码,则不建议这样做


    在自定义验证器authenticateBy*()覆盖中,您可以通过编程方式检查尝试登录的当前用户,并且您可以从Liferay(UserLocalServiceUtil)检索该用户并执行一些自定义检查,仅对一个(或几个)不希望存储在LDAP中的用户执行这些检查。

    是,您的理解是正确的。指针部分的第一件事并不像你们说的那个样是不可能的。我已经从理论上理解了第二点和第三点。你能否分享一些在线资源,为第二点和第三点提供一些例子?以及如何指定任何用户为管理员。提前感谢!我用链接编辑了我的答案。liferay中有一个管理员角色,您可以将其分配给用户,默认情况下,用户可以在门户中执行任何操作
    test@liferay.com
    是管理员用户。我建议您阅读Liferay的用户指南,了解Liferay中用户组、站点和组织的概念。在做了一些工作并实施LDAP身份验证后,我看到的是我只能使用LDAP凭据登录,不能使用默认管理员帐户“test”登录由Liferay提供。这是因为我设置了auth required和auth enabled属性。由于我的LDAP帐户在liferay中没有管理员权限,我将无法创建任何组或将任何LDAP帐户添加到本地liferay组。您对我如何使其工作有任何线索吗?另外,在生产中如何进行?谢谢。