我正在尝试编写一个使用JackRabbit存储库来验证用户的登录模块。但是,我希望它检查存储在存储库本身中的凭据。因此,问题是,在我的登录模块中,我必须再次连接到存储库,使其成为无限循环。我可以做些什么吗?

有帮助吗?

解决方案

有两种基本方法:

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

  2. 另外,所有用户都设置了jackrabbit登录名,因此,不要与Admin登录连接,而是尝试与所提供的凭据连接,如果您连接,则可以成功连接用户(使用这种方法,我经常会进行简单的查询要仔细检查连接有效,例如在存储库中查找用户的真实名称)。

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

其他提示

在里面 杰卡 项目有一个自定义LoginModule(org.jecars.cars_loginmodule)。它使用硬编码管理用户进行第一个访问,并且由于仅通过Servlet可以访问存储库,此时进行检查以防止管理用户的外部使用。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top