как получить объект сеанса из фабрики распознавателя ресурсов? - PullRequest
0 голосов
/ 17 января 2019
@Component
public class AddNode {
    @Reference
    static ResourceResolverFactory resolverFactory;
    static Session session;

    public static void main(String[] args) throws Exception { 


        ResourceResolver resourceResolver = resolverFactory.getServiceResourceResolver(null);

        session = resourceResolver.adaptTo(Session.class);        
          Node root = session.getRootNode(); 

          Node adobe = root.addNode("ProgramNode"); 
          Node day = adobe.addNode("subnode"); 
          day.setProperty("jcr:title", "programNode"); 

          Node node = root.getNode("ProgramNode/subnode"); 
          System.out.println(node.getPath()); 
          System.out.println(node.getProperty("jcr:title").getString()); 
          session.save(); 
          session.logout();


        }

}

здесь resolverFactory.getServiceResourceResolver (null); Мне нужно передать любой параметр в null. Пожалуйста, приведите несколько примеров, чтобы получить доступ к хранилищу.

Ответы [ 2 ]

0 голосов
/ 17 января 2019

Ознакомьтесь с документацией ResourceResolverFactory.

https://sling.apache.org/apidocs/sling7/org/apache/sling/api/resource/ResourceResolverFactory.html

0 голосов
/ 17 января 2019

Мы должны использовать Системные пользователи для доступа к хранилищу при доступе через Factory. Вам нужно будет

  1. Создать системного пользователя, предоставить соответствующие разрешения
  2. Сопоставить символическое имя пакета с системным пользователем
  3. Использование системного пользователя для получения сеанса через ResourceResolverFactory

    Map<String, Object> param = new HashMap<String, Object>();
    param.put(ResourceResolverFactory.SUBSERVICE, "<sub-service-name>");
    ResourceResolver resolver = null;         
    resolver = resolverFactory.getServiceResourceResolver(param);
    session = resolver.adaptTo(Session.class);
    

Вы можете обратиться к этой справочной статье helpx , чтобы получить представление об использовании пользователей службы для создания сеанса

...