in src/main/java/org/apache/sling/jcr/base/AbstractSlingRepository2.java [160:179]
private Session createServiceSession(Bundle usingBundle, String subServiceName, String workspaceName) throws RepositoryException {
final ServiceUserMapper serviceUserMapper = this.getSlingRepositoryManager().getServiceUserMapper();
if (serviceUserMapper != null) {
Session session = null;
final Iterable<String> principalNames = serviceUserMapper.getServicePrincipalNames(usingBundle, subServiceName);
if (principalNames != null) {
session = createServiceSession(principalNames, workspaceName);
} else {
final String userName = serviceUserMapper.getServiceUserID(usingBundle, subServiceName);
if (userName != null) {
session = createServiceSession(userName, workspaceName);
}
}
if (session != null) {
Repository repository = getRepository();
return repository instanceof ProxyRepository ? ((ProxyRepository) repository).wrap(session) : session;
}
}
return null;
}