Всякий раз, когда я попытался получить доступ к корневому узлу в JCR сессии я сталкиваюсь за исключениемjavax.jcr.AccessDeniedException с Apache Oak с MongoDB на JBoss Wildfly
javax.jcr.AccessDeniedException: Корневой узел не доступен
у нас есть следующие настройки: JBoss wildfly в качестве сервера приложений, апач дубовой 1.3.2 и мы управляем JCR сессии с использованием JcrTemplate от Spring Framework, используя код:
jcrTemplate.execute(new JcrCallback() {
@Override
public Object doInJcr(Session session) throws IOException, RepositoryException {
Node rootNode = session.getRootNode();
}
}
Несмотря на то, что в модульном тесте у меня нет проблем с доступом к корневому узлу в среде сервера приложений, я столкнулся с отказом доступа.
Я упоминаю, что для создания фабрики сеансов JCR требуется имя пользователя и пароль, которые делегированы компоненту JAAS, который определен на сервере приложений. Я уже добавил имя пользователя, используя скрипт add-user от JBoss. Еще одно упоминание о том, что дуб Apache использует MongoDB, за исключением того, что в JBoss не было никакой настройки. Управление всеми соединениями осуществляется с помощью драйвера Java monogodb, который находится в пути класса приложения.
У вас есть предложения по данной проблеме? Если вам нужно получить подробную информацию, не стесняйтесь спросить
Благодаря
способ предоставления доступа на корневом узле, чтобы настроить внутри JBoss, в это файл конфигурации домена безопасности, который будет обрабатывать вызов JAAS, который Apache Oak будет сделать, чтобы получить пользователь. I _jboss 8.2.0_ Я настроил один, но, похоже, не принимаю его. Обходной задачей является настройка пользовательского поставщика безопасности для дуба apache. Что-то вроде этого: 'Jcr jcr = new Jcr (новый Oak (nodeStore)); // настройка безопасности jcr.with (configureSecurityProvider()); ' – dumitru