Modeshape 2.8程序化配置

时间:2012-10-01 06:45:35

标签: authentication configuration jcr modeshape

您好我要做什么对存储库进行编程配置,因为存储库中配置的大部分参数只能在运行时确定。

似乎我无法使用匿名凭据当我尝试打印会话时它会抛出NPE 代码

   config.repositorySource("store")
          .usingClass(DiskSource.class)
          .setProperty("repositoryRootPath", "c:/x/repo1")
          .setProperty("defaultWorkspaceName","default");

          config.repository("content")
          .setOption(JcrRepository.Option.USE_ANONYMOUS_ACCESS_ON_FAILED_LOGIN, "true")
          .setSource("store");

    Session session  =  engine.getRepository("content").login("default");

我可以将自定义身份验证器添加到JcrConfiguration吗?

1 个答案:

答案 0 :(得分:0)

配置ModeShape引擎的正确方法是使用JcrConfiguration对象,如here所述。这似乎就是你正在做的事情,因此这部分是正确的。

创建配置后,您可以检查问题:

if ( !configuration.getProblems().isEmpty() ) {
    for ( Problem problem : configuration.getProblems() ) {
         // Report these problems!
    }
}

假设没有问题,您可以使用您的配置创建新的JcrEngine实例(请参阅documentation):

JcrConfiguration config = ...
JcrEngine engine = config.build();
engine.start();

然后,按名称查找存储库并使用JCR API登录:

javax.jcr.Repository repository = engine.getRepository("Name of repository");

Credentials credentials = ...; // JCR credentials
String workspaceName = ...;  // Name of repository workspace
Session session = repository.login(credentials,workspaceName);