Java Liferay授权
我需要对LDAP组织实施liferay身份验证。一旦用户成功登录,我希望根据在liferay中创建的本地组检查用户 例如,某些团队中的用户应该只能进入应用程序。由于LDAP中没有任何东西能够将这些用户与LDAP中的其他用户区分开来,因此我需要在liferay中本地实现一些东西 当用户登录时,应根据LDAP对其进行身份验证,然后应查找本地liferay组以检查用户是否属于该组。liferay管理员应可配置此组。只有当他/她是该组的一部分时,才应显示带有数据的应用程序主页Java Liferay授权,java,liferay,liferay-6,Java,Liferay,Liferay 6,我需要对LDAP组织实施liferay身份验证。一旦用户成功登录,我希望根据在liferay中创建的本地组检查用户 例如,某些团队中的用户应该只能进入应用程序。由于LDAP中没有任何东西能够将这些用户与LDAP中的其他用户区分开来,因此我需要在liferay中本地实现一些东西 当用户登录时,应根据LDAP对其进行身份验证,然后应查找本地liferay组以检查用户是否属于该组。liferay管理员应可配置此组。只有当他/她是该组的一部分时,才应显示带有数据的应用程序主页 任何关于这方面的建议都会有
任何关于这方面的建议都会有所帮助。谢谢。以下是我的理解:
希望这有帮助,让我知道我所理解的是否正确。需要记住的一点是,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组。您对我如何使其工作有任何线索吗?另外,在生产中如何进行?谢谢。