Impersonate user in AEM 6.2 | Community
Skip to main content
This post is no longer active and is closed to new replies. Need help? Start a new post to ask your question.
Best answer by rohitj47970932

This worked for us:

@Reference

    private ResourceResolverFactory resourceResolverFactory;

@Reference

    private SlingRepository repository;

   

public void execute(WorkItem workItem, WorkflowSession workflowSession, MetaDataMap args) throws WorkflowException {

        Session session = workflowSession.getSession();

        ResourceResolver resourceResolver = resourceResolver = getResourceResolver(resourceResolverFactory, session);

        final String initiator = workItem.getWorkflow().getInitiator();

        Session userSession = repository.impersonateFromService("workflow-process-service", new SimpleCredentials(initiator, "".toCharArray()), null);

//other logic

}

4 replies

cquser1
Level 7
May 31, 2017

Hi,

The below should work in AEM 6.2

(repository.impersonateFromService(Constants.WORKFLOW_USER,

  new SimpleCredentials(item.getWorkflow().getInitiator();, "".toCharArray()), null), resolverFactory)

veereswaras8249
May 31, 2017

HI cquser1,

Can you explain how it works?

smacdonald2008
Level 10
May 31, 2017
rohitj47970932Accepted solution
October 25, 2017

This worked for us:

@Reference

    private ResourceResolverFactory resourceResolverFactory;

@Reference

    private SlingRepository repository;

   

public void execute(WorkItem workItem, WorkflowSession workflowSession, MetaDataMap args) throws WorkflowException {

        Session session = workflowSession.getSession();

        ResourceResolver resourceResolver = resourceResolver = getResourceResolver(resourceResolverFactory, session);

        final String initiator = workItem.getWorkflow().getInitiator();

        Session userSession = repository.impersonateFromService("workflow-process-service", new SimpleCredentials(initiator, "".toCharArray()), null);

//other logic

}