Слинг получает доступ к ресурсу JCR 'var' из кода Java - PullRequest
1 голос
/ 13 марта 2019

Я новичок в Sling и хочу найти способ получить доступ и создать файл в /var ресурсах JCR.

Я пытался использовать ResourceResolver, но не могу найти путькак пример ниже request.getResourceResolver().getResource("var"); возвращает null.

Получение resourceResolver из SlingHttpServletRequest - это хороший способ получить его?

1 Ответ

2 голосов
/ 13 марта 2019

Во-первых, пути JCR всегда должны начинаться с /. Итак, ваш код был почти верным.

Изменение:

request.getResourceResolver().getResource("var");

Кому:

request.getResourceResolver().getResource("/var");

Если у вашего ResourceResolver есть права на чтение /var, вы получите Resource. В противном случае вы получите null. Если вы получаете ResourceResolver от request, разрешения зависят от разрешений пользователя, выполняющего запрос.

Хороший способ получить resourceResolver из SlingHttpServletRequest?

Это зависит. Можно много чего сказать о том, «где взять ваш ResourceResolver», но для простоты:

Если вы хотите ограничить доступ к ресурсу на основе разрешений пользователей, вы должны получить ResourceResolver из request. Во всех остальных ситуациях получите ResourceResolver от ResourceResolverFactory.

ResourceResolverFactory - это собственная кроличья нора. Поэтому я бы указал на документацию для этого:

https://sling.apache.org/apidocs/sling9/org/apache/sling/api/resource/ResourceResolver.html

...