我正在尝试编写一个 LoginModule 来使用 Jackrabbit 存储库对用户进行身份验证。但是,我希望它检查存储在存储库本身中的凭据。所以问题是,在我的 LoginModule 中,我必须再次连接到存储库,使其成为一个无限循环。有什么我可以做的吗?
最佳答案
有两种基本方法:
为 LoginModule 配置的 Jackrabbit 存储库提供管理员登录,以便它始终能够连接到存储库。当以管理员用户身份连接时,使用提供的凭据(对于正在验证的普通用户)查询存储库以对其进行身份验证。
或者让所有用户都设置 Jackrabbit 登录名,这样您就可以尝试使用提供的凭据连接,而不是使用管理员登录名连接,如果您连接,则用户已成功连接(使用这种方法我通常会做一个简单的查询来仔细检查连接是否有效,例如在存储库中查找用户的真实姓名)。
在这两种情况下,LoginModule 都应该包含直接连接到 Jackrabbit 的代码,并且不应该要求 LoginModule 将其自身连接到存储库。
关于java - 使用自定义 LoginModule 登录 Jackrabbit,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1953995/