Expand my Community achievements bar.

Adobe Summit 2025: AEM Session Recordings Are Live! Missed a session or want to revisit your favorites? Watch the latest recordings now.

Mark Solution

This conversation has been locked due to inactivity. Please create a new post.

SOLVED

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

Avatar

Level 4

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

Avatar

Correct answer by
Level 8

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!

View solution in original post

6 Replies

Avatar

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

Arun Patidar

AEM LinksLinkedIn

Avatar

Level 4

<?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]"/>

Avatar

Correct answer by
Level 8

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!

Avatar

Level 4

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

Avatar

Community Advisor

Avatar

Employee Advisor

@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