Your achievements

Level 1

0% to

Level 2

Tip /
Sign in

Sign in to Community

to gain points, level up, and earn exciting badges like the new
Bedrock Mission!

Learn more

View all

Sign in to view all badges

SOLVED

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

pillaivinit
Level 3
Level 3

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?

1 Accepted Solution
Manjunath_K
Correct answer by
Community Advisor
Community Advisor

Hi @pillaivinit ,

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!

View solution in original post

6 Replies
Arun_Patidar
Community Advisor
Community Advisor

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

pillaivinit
Level 3
Level 3

<?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
Correct answer by
Community Advisor
Community Advisor

Hi @pillaivinit ,

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!

View solution in original post

pillaivinit
Level 3
Level 3

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

shelly-goel
Community Advisor
Community Advisor

@pillaivinit  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