Jackrabitt:设置用户名和密码

Jackrabitt: set Username and Password

我是 JackRabbit 的新手。我有一个问题,我需要添加 用于访问存储库的用户名和密码。此刻,我可以 访问每个密码和用户,但根据我的需要,它不是 安全。

我找到了 jackrabbit-repo.xml 文件。但我不知道我必须在哪里添加这些参数。 (在安全>登录模块或文件系统或任何地方)。 如果可能的话,请通过示例代码指导我。

更新:

jackrabbit-repository.xml 中使用了 simpleAccessManager 并且没有任何登录凭据。所以我将其更改为 DefaultSecurityManager 并在 LoginModule 中添加“adminId”参数,因为它告诉存储库只有 adminUsers 可以登录。

<SecurityManager class="org.apache.jackrabbit.core.DefaultSecurityManager" 
            workspaceName="security" />
<AccessManager class="org.apache.jackrabbit.core.security.DefaultAccessManager"/>
<LoginModule class="org.apache.jackrabbit.core.security.authentication.DefaultLoginModule">
    <param name="adminId" value="admin"/>
</LoginModule>

现在,它运行良好,除非匿名用户想要登录,在这种情况下会显示错误。这很好。 但是我遇到了一个新的错误。当应用程序尝试访问存储库中的文件时,它将遇到以下错误。

java.util.concurrent.ExecutionException: org.springframework.dao.DataAccessResourceFailureException: Could not open Jcr Session; nested exception is javax.jcr.LoginException: LoginModule ignored Credentials

注意: PersistenManager 数据类型是 derby。因为存储库不是数据库。

谢谢

上述错误意味着如果用户存在于第 3 方系统中但凭据不匹配,则会抛出 LoginException。

java.util.concurrent.ExecutionException: org.springframework.dao.DataAccessResourceFailureException: Could not open Jcr Session; nested exception is javax.jcr.LoginException: LoginModule ignored Credentials

JAAS Authentication and Login Modules

不需要更改 PersistenManager 中的某些内容或工作区中的其他内容。