2

我们在 Liferay 上托管了一个门户,并且 Active Directory 通过 LDAP 与 Liferay 同步。我们面临的问题是,当用户从 AD 中删除时,它既不会被停用也不会从 Liferay 中删除。我希望用户在从 AD 中删除时被停用而不是从 Liferay 中删除。

尽管 Liferay 强烈建议您在从 AD 中删除用户时停用/删除该用户,因为可能存在对其他用户、站点或组织的依赖或可能导致的意外行为。

我检查了 AD 与 Liferay 同步所需的所有必填字段。由于声誉较低,我无法上传屏幕截图。

我怎样才能达到上述要求?

请提出可能的方法。

谢谢

4

2 回答 2

2

当您与 LDAP 交互时,您不应该依赖 Liferay 来告诉您用户是否已停用 - 例如,只需在 LDAP 中查找用户的存在以确定帐户是否有效。

我的建议是要求这些用户使用 LDAP,并且不要将他们的密码保存在 Liferay 的数据库中——因此,无论用户是激活还是停用,他们都无法登录 Liferay,因为 Liferay 会使用 LDAP 对他们进行身份验证(这会失败)

如果这是 - 由于某种原因 - 真的是强制性的,您可以在随后的登录尝试中停用它们,或者不时针对 LDAP 批量导入/验证所有用户。

还有一种可能性取决于您维护 LDAP 数据库的方式——您还可以使用 LDAP 维护软件中的 Liferay API 来在从 AD 中删除用户时停用用户。

但关键是:已删除的 LDAP 用户应该无法登录 Liferay——当他们登录 Liferay 时,会导入他们所有的数据,这是行不通的。当 Liferay 无法验证他们的密码时,他们无法在没有 LDAP 的情况下登录,因此您不应该面临任何实际问题

于 2013-10-19T14:41:54.327 回答
1

为了自定义 Liferay 的这种默认行为,您需要通过扩展 PortalLDAPImporterImpl.java创建一个插件 ext 。

以下链接将对您有所帮助 - http://www.liferay.com/community/forums/-/message_boards/message/10755176

于 2013-10-24T06:17:58.533 回答