AEM 自定义工作流程步骤:如何获取启动器的 ResourceResolver?

问题描述 投票:0回答:1

我正在 AEMaaCS 中创建一个自定义 WorkflowProcess,它代表工作流发起者进行一些更改。如何获得具有工作流发起者权限的ResourceResolver?

在 WorkflowProcess 中我可以获得一个 ResourceResolver,例如像这样:

resourceResolverFactory.getResourceResolver(
    Collections.singletonMap(JcrResourceConstants.AUTHENTICATION_INFO_SESSION,
        workflowSession.getSession())

但是这个解析器似乎是针对用户ID的

workflow-process-service
。但出于安全原因,我想将解析器限制为发起者权利。怎么做?我尝试了这个,但这会引发“不允许冒充”LoginException:

resourceResolverFactory.getResourceResolver(
    Collections.singletonMap(ResourceResolverFactory.USER_IMPERSONATION,
        workItem.getWorkflow().getInitiator())

对于

getResourceResolver
ResourceResolverFactory.USER
我没有密码...... 非常感谢!

aem sling
1个回答
0
投票

我很确定这是不可能的。

我有一个类似的用例,最终编写代码来在工作流程执行期间检查启动器权限,而不是获取包含启动器身份验证信息的会话。

另一种方法是通过 servlet 而不是工作流来实现逻辑(如果需要,将批处理委托给 sling 作业),您可以在其中从请求中获取用户。

© www.soinside.com 2019 - 2024. All rights reserved.