system user | Community
Skip to main content
March 28, 2019
Solved

system user

  • March 28, 2019
  • 15 replies
  • 10448 views

Hi Team,

I have created a systemUser and add the same into user mapper configuration like below

com.adobe.aem.guides.aem-guides-wknd.core:systemUser=systemUser

and getting the same via param.put(ResourceResolverFactory.SUBSERVICE,"systemUser");

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 AEMLearner-1989

Sorry..its my bad...

ResourceResolver resourceResolver = resourceResolverFactory.getServiceResourceResolver(param);

Its working now...

15 replies

BrijeshYadav
Level 5
March 29, 2019

As you have verified all system user configurations and mapping, so let's dig into the code.
What are the annotations you are using? Could you please share the complete code for both the java classes?

com.aem.example.core.userTest.java
com.aem.example.core.impl.SearchService.java

AEMLearner-1989
Level 4
March 29, 2019

Hi Yadav,

I am using the same line of code in both the classes . Only difference is usertest is a servlet class and SearchService is a normal java class and calling a addproperty() method from slightly.

Map<String, Object> param = new HashMap<>();

param.put(ResourceResolverFactory.SUBSERVICE,"systemUser");

ResourceResolver resourceResolver = null;

try {

resourceResolver = resourceResolverFactory.getResourceResolver(param);

log.info(resourceResolver.getUserID());

BrijeshYadav
Level 5
March 29, 2019

By normal java UserTest class, you mean Sling Model class for slightly component? i.e.

@Model(adaptables = Resource.class, defaultInjectionStrategy = DefaultInjectionStrategy.OPTIONAL)

public class UserTest {

   @SlingObject
   private ResourceResolver resourceResolver;

  ...........................

  ........................

}


Or how you inject or initialize ResourceResolverFactory?

AEMLearner-1989
Level 4
March 29, 2019

package com.adobe.aem.guides.wknd.core.impl;

import java.util.HashMap;

import java.util.Map;

import javax.jcr.Node;

import javax.jcr.RepositoryException;

import javax.jcr.Session;

import javax.jcr.ValueFormatException;

import javax.jcr.lock.LockException;

import javax.jcr.nodetype.ConstraintViolationException;

import javax.jcr.version.VersionException;

import org.apache.sling.api.resource.LoginException;

import org.apache.sling.api.resource.Resource;

import org.apache.sling.api.resource.ResourceResolver;

import org.apache.sling.api.resource.ResourceResolverFactory;

import org.osgi.service.component.annotations.Component;

import org.osgi.service.component.annotations.Reference;

import org.slf4j.Logger;

import org.slf4j.LoggerFactory;

import com.adobe.aem.guides.wknd.core.SearchService;

@Component

public class SearchServiceImpl implements SearchService {

   

@Reference

ResourceResolverFactory resourceResolverFactory;

protected final Logger log = LoggerFactory.getLogger(this.getClass());

    @Override

public void addProperty() {

// TODO Auto-generated method stub

Map<String, Object> param = new HashMap<>();

param.put(ResourceResolverFactory.SUBSERVICE,"systemUser");

ResourceResolver resourceResolver = null;

try {

resourceResolver = resourceResolverFactory.getResourceResolver(param);

log.info(resourceResolver.getUserID());

Resource pageResource = resourceResolver.getResource("/content/wknd/jcr:content");

log.info("page"+pageResource.getPath());

Node myNode = pageResource.adaptTo(Node.class);

myNode.setProperty("author","sathya");

Session session = resourceResolver.adaptTo(Session.class);

session.save();

log.info("Node saved sucessfully");

} catch (LoginException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (ValueFormatException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (VersionException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (LockException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (ConstraintViolationException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (RepositoryException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

AEMLearner-1989
AEMLearner-1989Accepted solution
Level 4
March 29, 2019

Sorry..its my bad...

ResourceResolver resourceResolver = resourceResolverFactory.getServiceResourceResolver(param);

Its working now...