我的目标是在独立的Java应用程序中从JCR会话中获取JackrabbitSession。我花了几个小时但却找不到一个有效的例子。
例如this one这样的帖子暗示可以从JCR会话转换为JackrabbitSession,但是它实际上不起作用并抛出ClassCastException。
Repository repository = JcrUtils.getRepository("http://localhost:4502/crx/server");
session = repository.login( new SimpleCredentials("admin", "admin".toCharArray()), "crx.default");
JackrabbitSession js = (JackrabbitSession) session;
final UserManager userManager = session.getUserManager();
final User user = userManager.createUser(userName, userName);
session.save();
我想要原生JackrabbitSession的原因是因为在上面的代码中我想访问UserManager对象。在我的用例中,JCR存储库位于我想要创建/删除用户的AEM实例中。
提前谢谢
答案 0 :(得分:3)
您可以通过调整resourceResolver来获取UserManager:
userManager = resolver.adaptTo(UserManager.class);