一:通過訪問的workflowSession獲取
ResourceResolver resourceResolver = workflowSession.adaptTo(ResourceResolver.class);
二:通過系統(tǒng)中保存的賬戶獲取
- 去
localhost:<port>/crx/explorer
=>User Administration
=>Create System User
創(chuàng)建一個用戶
創(chuàng)建用戶 -
為用戶配置目錄訪問權(quán)限
配置權(quán)限 - 在 “Apache Sling Service User Mapper Service”中新增一個條目
訪問localhost:<port>/system/console/configMgr
厘托,搜索Apache Sling Service User Mapper Service
新增條目
新增條目的格式:<bundle名稱>:<服務(wù)名>=<用戶ID>
, 服務(wù)名代碼中會用到 - 通過工廠方式以新增的用戶身份獲取ResourceResolver
Map<String, Object> param = new HashMap<String, Object>();
// 服務(wù)名在這里用到
param.put(ResourceResolverFactory.SUBSERVICE, “writeService”);
ResourceResolver resolver = resolverFactory.getServiceResourceResolver(param);
resolverFactory可直接通過reference注解引進(jìn)來
@Reference
private ResourceResolverFactory resolverFactory;
總結(jié):
第一種方式有局限性能真,如果登陸的用戶沒有某個目錄的操作權(quán)限杠步,那么就不能進(jìn)行后續(xù)的操作鸟顺。
第二種是先建立有權(quán)限的用戶,然后以這個用戶進(jìn)行獲取Resolver亥贸,確保操作可順利進(jìn)行躬窜。