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