2020-10-13 AEM Workflow中获取Resour

2020-10-13  本文已影响0人  tanbin_tech

一:通过访问的workflowSession获取

ResourceResolver resourceResolver = workflowSession.adaptTo(ResourceResolver.class);

二:通过系统中保存的账户获取

  1. localhost:<port>/crx/explorer=>User Administration=>Create System User创建一个用户
    创建用户
  2. 为用户配置目录访问权限


    配置权限
  3. 在 “Apache Sling Service User Mapper Service”中新增一个条目
    访问localhost:<port>/system/console/configMgr,搜索Apache Sling Service User Mapper Service
    新增条目
    新增条目的格式:<bundle名称>:<服务名>=<用户ID>, 服务名代码中会用到
  4. 通过工厂方式以新增的用户身份获取ResourceResolver
Map<String, Object> param = new HashMap<String, Object>();
// 服务名在这里用到
param.put(ResourceResolverFactory.SUBSERVICE, “writeService”);
ResourceResolver resolver = resolverFactory.getServiceResourceResolver(param);

resolverFactory可直接通过reference注解引进来

@Reference
private ResourceResolverFactory resolverFactory;

总结:

第一种方式有局限性,如果登陆的用户没有某个目录的操作权限,那么就不能进行后续的操作。
第二种是先建立有权限的用户,然后以这个用户进行获取Resolver,确保操作可顺利进行。

上一篇下一篇

猜你喜欢

热点阅读