in src/main/java/org/apache/sling/serviceusermapping/impl/ServiceUserMapperImpl.java [460:495]
private String internalGetUserId(final String serviceName, final String subServiceName) {
log.debug(
"internalGetUserId: {} active mappings, looking for mapping for {}/{}",
new Object[] { this.activeMappings.length, serviceName, subServiceName });
for (final Mapping mapping : this.activeMappings) {
final String userId = mapping.map(serviceName, subServiceName);
if (userId != null) {
log.debug("Got userId [{}] from {}/{}", new Object[] { userId, serviceName, subServiceName });
return userId;
}
}
// second round without serviceInfo
log.debug(
"internalGetUserId: {} active mappings, looking for mapping for {}/<no subServiceName>",
this.activeMappings.length, serviceName);
for (Mapping mapping : this.activeMappings) {
final String userId = mapping.map(serviceName, null);
if (userId != null) {
log.debug("Got userId [{}] from {}/<no subServiceName>", userId, serviceName);
return userId;
}
}
// use default mapping if configured and no default user
if (this.useDefaultMapping && this.defaultUser == null) {
final String userName = "serviceuser--" + serviceName + (subServiceName == null ? "" : "--" + subServiceName);
log.debug("internalGetUserId: no mapping found, using default mapping [{}]", userName);
return userName;
}
log.debug("internalGetUserId: no mapping found, fallback to default user [{}]", this.defaultUser);
return this.defaultUser;
}