java - 莱福瑞授权

标签 java liferay liferay-6

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

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

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

对此的任何指示都会有帮助。谢谢。

最佳答案

这是我的理解:

  1. 用户存储在 LDAP 中。
  2. 用户未在 LDAP 中分类。不存在 LDAP 组。
  3. 因此,当您针对 LDAP 进行身份验证时,LDAP 中存在的所有用户都将登录到 Liferay。
  4. 但您想要的是,只有属于 Liferay 中特定组的用户才能登录,而其他用户则不能登录。

如果这是您想要的,那么这里是我的一些建议:

  1. 最好的办法就是拥有groups in LDAP本身。就维护而言,这会更好,因为身份验证已经通过 LDAP 进行。您可以这样做leverage Liferay with LDAP groups 。当然,如果您采用这种方法,则需要通过任何 LDAP 客户端(例如 LDAP admin 或 jExplorer)手动将用户分配到每个组。
  2. 但如果这是不可能的,那么您可以通过 Organizations 对用户进行分组或UserGroups或者可能是Site (with or without pages)在liferay中。
  3. 成功通过 LDAP 进行身份验证后,您可以检查特定用户是否属于所需的组织、用户组或站点。您可以使用LoginPostAction hook为此目的。
  4. 如果用户不是所需群组的成员,那么您可以将其从系统中注销,然后根据您的要求将其重新定向到登录页面或其他页面。
  5. 您还可以设置一个 Hook 来防止更新和删除用户组、组织或网站,这样管理员就不会意外删除或更新相关组,从而导致身份验证失败。

希望这对您有所帮助,请告诉我我所理解的是否正确。

关于java - 莱福瑞授权,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23421740/

相关文章:

java - 如何通过java代码设置Weka网格搜索的评价标准

java - 在数据库中审计错误的日期时间

elasticsearch - 将参数传递给Liferay的服务搜索功能

Java8 : Transform Map<String, List<String>> 通过连接值进入 Map<String,String>

java - 如何查找列表中每个单词的字符数? ( java )

liferay - 自定义门户的导航栏

Liferay 用户管理/隐藏 portlet

ldap - 如何在 liferay 6.1 中为 LDAPAuth 类创建 Hook

java - 如何覆盖 Liferay ext-plugin 中的 portal-impl jar 类

jsp - Liferay:创建一个 portlet 配置页面。如何提供正确的jsp路径?