in src/main/java/org/apache/sling/serviceusermapping/impl/ServiceUserMapperImpl.java [523:547]
boolean areValidPrincipals(final Iterable<String> principalNames, final String serviceName, final String subServiceName, boolean require) {
if (principalNames == null) {
log.debug("areValidPrincipals: principalNames are null -> invalid");
return false;
}
List<ServicePrincipalsValidator> validators = getPrincipalsValidators();
if (validators.isEmpty()) {
if (require) {
log.debug("areValidPrincipals: No active validators for principal names [{}] and require -> invalid", principalNames);
return false;
} else {
log.debug("areValidPrincipals: No active validators for principal names [{}] -> valid", principalNames);
return true;
}
} else {
for (final ServicePrincipalsValidator validator : validators) {
if (!validator.isValid(principalNames, serviceName, subServiceName)) {
log.debug("areValidPrincipals: Validator {} doesn't accept principal names [{}] -> invalid", validator, principalNames);
return false;
}
}
log.debug("areValidPrincipals: All validators accepted principal names [{}] -> valid", principalNames);
return true;
}
}