我是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 。因为存储库不是数据库。
由于
答案 0 :(得分:0)
上述错误表示如果用户存在于第三方系统中但凭据不匹配则抛出LoginException。
java.util.concurrent.ExecutionException:org.springframework.dao.DataAccessResourceFailureException:无法打开Jcr Session;嵌套异常是javax.jcr.LoginException:LoginModule忽略了凭据
JAAS Authentication and Login Modules
不需要在PersistenManager或工作区中的其他内容中更改某些内容。