Jackrabitt:设置用户名和密码

时间:2018-02-26 08:28:48

标签: spring apache jackrabbit

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

我找到了 jackrabbit-repo.xml 文件。但我不知道在哪里添加这些参数。 (在安全性> LoginModule或Filesystem或任何地方)。 如果有可能,请通过示例代码指导我。

更新

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

<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:无法打开Jcr Session;嵌套异常是javax.jcr.LoginException:LoginModule忽略了凭据

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

由于

1 个答案:

答案 0 :(得分:0)

上述错误表示如果用户存在于第三方系统中但凭据不匹配则抛出LoginException。

  

java.util.concurrent.ExecutionException:org.springframework.dao.DataAccessResourceFailureException:无法打开Jcr Session;嵌套异常是javax.jcr.LoginException:LoginModule忽略了凭据

JAAS Authentication and Login Modules

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