[我正在尝试为AEM 6.5的14.0.0 groovy版本编写一个groovy脚本,以在使用工作区的路径发布下复制节点
def resolverFactory = osgi.getService(ResourceResolverFactory.class);
def resourceResolver = getServiceResolver("admin",resolverFactory);
def session = resourceResolver.adaptTo(Session.class);
srcPath = "/abc/def"
desPath = "/tyu/amg/tpo"
Workspace workspace = session.getWorkspace();
workspace.copy(srcPath,desPath);
但是resolverFactory本身的代码抛出错误
如何进行设置,以便可以在AEM的groovy脚本中将所有节点从srcPath复制到desPath?
我认为,在Groovy控制台中使用内置的admin
帐户不是一个好主意。即使对于捆绑代码,通常也要依靠具有明确定义的,针对特定服务应做的工作的最小权限集的服务用户。
我发现在Groovy控制台中,依靠用户执行脚本是最安全的。用户需要某种级别的访问权限才能看到控制台本身。人们还会期望这样的用户看到内容树的重要部分,但这与admin
帐户的功能相去甚远。
在用于开发的AEM实例上将脚本作为admin
执行可能是可以接受的,但是即使那样,我还是希望有人只使用admin
凭据登录,而不是以编程方式获取它们。
获得与当前用户的会话相关联的资源解析器很简单,通常不会引起问题。如果有您不能使用它的原因,我建议您配置服务用户。