@Audit(
        action = AuditableActions.PROTOCOL_SPECIFICATION_VALIDATE,
        actionResolverName = AuditActionResolvers.VALIDATE_PROTOCOL_SPECIFICATION_RESOLVER,
        resourceResolverName = AuditResourceResolvers.VALIDATE_PROTOCOL_SPECIFICATION_RESOURCE_RESOLVER)
    @Override
    public boolean isSatisfiedBy(final Assertion assertion, final HttpServletRequest request) {
        if (this.canBeSatisfiedByAnySpecification) {
            return this.specifications
                .stream()
                .peek(spec -> spec.setRenew(this.renew))
                .anyMatch(spec -> spec.isSatisfiedBy(assertion, request));
        }
        return this.specifications.stream()
            .peek(spec -> spec.setRenew(this.renew))
            .allMatch(spec -> spec.isSatisfiedBy(assertion, request));
    }
This is {@link ChainingCasProtocolValidationSpecification}.

@author Misagh Moayyed
@since 6.1.0
core/cas-server-core-validation-api/src/main/java/org/apereo/cas/validation/ChainingCasProtocolValidationSpecification.java