从JCR会话对象获取JackrabbitSession对象

时间:2017-06-19 06:07:46

标签: aem jcr jackrabbit

我的目标是在独立的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实例中。

提前谢谢

1 个答案:

答案 0 :(得分:3)

您可以通过调整resourceResolver来获取UserManager:

userManager = resolver.adaptTo(UserManager.class);