Getting cannot derive user name for bundle and sub service while creating resource resolver | Community
Skip to main content
Level 3
November 25, 2020
Solved

Getting cannot derive user name for bundle and sub service while creating resource resolver

  • November 25, 2020
  • 4 replies
  • 16341 views

Hi.

I'm using AEM 6.3

I have followed this correctly I think. and also followed Ensure authhorizable


I don't know if only one is required or both are required. I'm new at this.

 

Map<String, Object> params = new HashMap<>();
params.put(ResourceResolverFactory.SUBSERVICE, SERVICE);
ResourceResolver resourceResolver = resourceResolverFactory.getServiceResourceResolver(params)

 The above line is where I get the error. Have I missed something?

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 Manjunath_K

Hi @vinit_pillai ,

Please cross check below points once.

 

1. Bundle symbolic name (project.core) defined in ServiceUserMapperImpl config xml is same as defined in core pom.xml 

<?xml version="1.0" encoding="UTF-8"?> <jcr:root xmlns:sling="http://sling.apache.org/jcr/sling/1.0" xmlns:jcr="http://www.jcp.org/jcr/1.0" jcr:primaryType="sling:OsgiConfig" user.mapping="[project.core:ServiceUser=ServiceUser]"/>

 

core pom.xml:

<Bundle-SymbolicName>project.core</Bundle-SymbolicName>

 

2. Access user admin (http://localhost:4502/useradmin ) & check whether service user created by EnsureServiceUser config xml

 

3. same subServiceName is used in backend java as defined in  ServiceUserMapperImpl config xml.

user.mapping="[project.core:ServiceUser=ServiceUser]

 

params.put(ResourceResolverFactory.SUBSERVICE, "ServiceUser");

 

Hope this helps!

4 replies

arunpatidar
Community Advisor
Community Advisor
November 25, 2020

Can you share the Apache sling Service User Mapper Service Amendmentmapping.

Make sure the system user is available and your code have the SERVICE name same as mapping

 

Please http://www.sgaemsolutions.com/2017/10/sling-service-authentication-in-aem-63.html

Arun Patidar
Level 3
November 25, 2020

<?xml version="1.0" encoding="UTF-8"?> <jcr:root xmlns:sling="http://sling.apache.org/jcr/sling/1.0" xmlns:jcr="http://www.jcp.org/jcr/1.0" jcr:primaryType="sling:OsgiConfig" user.mapping="[project.core:ServiceUser=ServiceUser]"/>

Manjunath_K
Manjunath_KAccepted solution
Level 7
November 27, 2020

Hi @vinit_pillai ,

Please cross check below points once.

 

1. Bundle symbolic name (project.core) defined in ServiceUserMapperImpl config xml is same as defined in core pom.xml 

<?xml version="1.0" encoding="UTF-8"?> <jcr:root xmlns:sling="http://sling.apache.org/jcr/sling/1.0" xmlns:jcr="http://www.jcp.org/jcr/1.0" jcr:primaryType="sling:OsgiConfig" user.mapping="[project.core:ServiceUser=ServiceUser]"/>

 

core pom.xml:

<Bundle-SymbolicName>project.core</Bundle-SymbolicName>

 

2. Access user admin (http://localhost:4502/useradmin ) & check whether service user created by EnsureServiceUser config xml

 

3. same subServiceName is used in backend java as defined in  ServiceUserMapperImpl config xml.

user.mapping="[project.core:ServiceUser=ServiceUser]

 

params.put(ResourceResolverFactory.SUBSERVICE, "ServiceUser");

 

Hope this helps!

Level 3
November 30, 2020

Symbolic name was the issue. I solved it before reading your answer but thanks. You were right.

shelly-goel
Adobe Employee
Adobe Employee
November 28, 2020

@vinit_pillai  Since you're on AEM6.3, migrating to Sling RepoInit would be better to ensure authorizables https://sling.apache.org/documentation/bundles/repository-initialization.html