首次登录时在jcr中添加节点

时间:2015-07-28 07:22:56

标签: jcr jackrabbit sling


我想在首次登录时在jcr存储库中创建节点。我创建了自己的LoginModulePlugin来验证用户身份。我在验证时收到了SystemSession(包org.apache.jackrabbit.core)。但是,这没有关于我想要添加节点的存储库的信息 在登录时将节点添加到jcr的推荐方法是什么?

2 个答案:

答案 0 :(得分:0)

Presumably you mean javax.jcr.Session since SystemSession is not public.

Session s = ...;
Node node = s.getRootNode().addNode("some/relative/path");

答案 1 :(得分:0)

您必须从相应的存储库获取会话。 对我来说,这样的事情有效:

private static Session instance = null;    
public static void login() {
  if (instance == null) {
    try {
      final Repository repository = JcrUtils.getRepository();
      instance = repository.login(new SimpleCredentials("admin", "admin".toCharArray()));
    } catch (RepositoryException e) {
      log.error(e.getMessage(),e);
    }
  }
}

然后,当您的程序启动时,您会输入类似的内容

Session s = login();
s.getRootNode().addNode("your/node/path");
s.save();

从JcrUtils获取存储库是关键。