Hi Rohit,
You can check attached sample code for your implementation.
import java.util.Collections;
import org.apache.jackrabbit.api.security.user.Authorizable;
import org.apache.jackrabbit.api.security.user.UserManager;
import org.apache.sling.api.resource.LoginException;
import javax.jcr.Session;
import javax.jcr.Value;
import org.apache.sling.api.resource.ResourceResolver;
import org.apache.sling.api.resource.ResourceResolverFactory;
import org.apache.sling.jcr.resource.JcrResourceConstants;
import org.osgi.framework.Constants;
import org.osgi.service.component.annotations.Component;
import org.osgi.service.component.annotations.Reference;
import com.day.cq.workflow.WorkflowException;
import com.day.cq.workflow.WorkflowSession;
import com.day.cq.workflow.exec.WorkItem;
import com.day.cq.workflow.exec.WorkflowProcess;
import com.day.cq.workflow.metadata.MetaDataMap;
@Component(service=WorkflowProcess.class, property={Constants.SERVICE_DESCRIPTION + "=Sample Workflow",
"process.label" + "=Sample Workflow Process"})
public class SampleWorkflow implements WorkflowProcess{
@Reference
ResourceResolverFactory resourceResolverFactory;
@Override
public void execute(WorkItem workItem, WorkflowSession workflowSession, MetaDataMap dataMap) throws WorkflowException {
ResourceResolver resourceResolver = null;
try {
// Get the ResourceResolver from workflow session
resourceResolver = getResourceResolver(workflowSession.getSession());
UserManager manager = resourceResolver.adaptTo(UserManager.class);
Authorizable authorizable = manager.getAuthorizable(workItem.getWorkflow().getInitiator());
Value[] email = authorizable.getProperty("./profile/email");
System.out.println(email);
}catch(Exception e){
}
}
private ResourceResolver getResourceResolver(Session session) throws LoginException {
return resourceResolverFactory.getResourceResolver(Collections.<String, Object>singletonMap(JcrResourceConstants.AUTHENTICATION_INFO_SESSION,
session));
}
}
This code would help!
Regards,Himanshu