3

我正在尝试编写一个使用 Jackrabbit 存储库对用户进行身份验证的 LoginModule。但是,我希望它检查存储在存储库本身中的凭据。所以问题是,在我的 LoginModule 中,我必须再次连接到存储库,使其成为无限循环。有什么我可以做的吗?

4

2 回答 2

4

有两种基本方法:

  1. 为 LoginModule 配置的 Jackrabbit 存储库提供管理员登录名,以便它始终能够连接到存储库。当以管理员用户身份连接时,使用提供的凭据(对于正在验证的普通用户)查询存储库以对其进行身份验证。

  2. 或者,让所有用户都设置一个 Jackrabbit 登录名,因此不要使用管理员登录名连接,而是尝试使用提供的凭据进行连接,如果连接,则用户已成功连接(使用这种方法,我经常会做一个简单的查询仔细检查连接是否有效,例如在存储库中查找用户的真实姓名)。

在这两种情况下,LoginModule 都应该包含直接连接到 Jackrabbit 的代码,并且不应该要求 LoginModule 将自身连接到存储库。

于 2010-01-01T10:43:59.123 回答
1

JeCARS项目中有一个自定义 LoginModule (org.jecars.CARS_LoginModule)。它使用硬编码的管理员用户进行首次访问,并且由于只能通过 servlet 访问存储库,因此此时执行检查以防止管理员用户的外部使用。

于 2010-01-06T08:12:22.600 回答