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

rohitj47970932Accepted solution
New Participant
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

}

smacdonald2008
New Participant
May 31, 2017
veereswaras8249
New Participant
May 31, 2017

HI cquser1,

Can you explain how it works?

cquser1
New Participant
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)