Как экспортировать jcr:security в Jackrabbit?

Я занимаюсь разработкой Apache Sling WCMS. Я хочу экспортировать содержимое безопасности (пользователи и группы) в файл XML.

Я использовал следующий код, но есть исключение:

OutputStream output = new FileOutputStream("d:\\bk.xml");
session.exportSystemView("/rep:security", output, false, false);
output.flush();
output.close();

И исключение здесь:

javax.jcr.PathNotFoundException: /rep:security
        at org.apache.jackrabbit.core.ItemManager.getItem(ItemManager.java:545)
        at org.apache.jackrabbit.core.SessionImpl.getItem(SessionImpl.java:876)
        at org.apache.jackrabbit.commons.AbstractSession.export(AbstractSession.
java:541)
        at org.apache.jackrabbit.commons.AbstractSession.exportDocumentView(Abst
ractSession.java:237)
        at org.apache.jackrabbit.commons.AbstractSession.exportDocumentView(Abst
ractSession.java:279)....

Это верный способ экспортировать пользователей и группы?

Любая помощь приветствуется.

1 ответ

Решение

Я обнаружил, что меня игнорировали, где rep:security расположен. rep:security в security Рабочая область хранилища, поэтому, если я хочу экспортировать его содержимое, я должен войти в рабочую область безопасности раньше.

Я исправил код следующим образом и мог экспортировать rep:security:

Session securitySession = session.getRepository().login(new SimpleCredentials("admin", "XXX".toCharArray()), "security");
OutputStream output = new FileOutputStream("d:\\bk.xml");
securitySession.exportSystemView("/rep:security", output, false, false);
output.flush();
output.close(); 
Другие вопросы по тегам