我是JackRabbit的新手。我有一个问题,我需要添加用户名和密码才能访问存储库。目前,我可以访问每个密码和用户,但是,根据我的需要,它不安全。
我找到了jackrabbit-repo.xml文件。但我不知道在哪里添加这些参数。 (在安全性> LoginModule或Filesystem或任何地方)。如果有可能,请通过示例代码指导我。
更新:
在jackrabbit-repository.xml中使用了simpleAccessManager,并且没有任何登录凭据。因此我将其更改为DefaultSecurityManager并在LoginModule中添加“adminId”参数,因为只有admin可以登录到Repository。
<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忽略了Credentials
注意:PersistenManager dataType是derby。因为存储库不是数据库。
谢谢
提到的错误意味着如果用户存在于第三方系统中但凭据不匹配则抛出LoginException。
java.util.concurrent.ExecutionException:org.springframework.dao.DataAccessResourceFailureException:无法打开Jcr Session;嵌套异常是javax.jcr.LoginException:LoginModule忽略了Credentials
JAAS Authentication and Login Modules
不需要在PersistenManager或工作区中的其他内容中更改某些内容。