Во-первых, пути 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