boolean areValidPrincipals()

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;
        }
    }