docs: protected void evaluateFinalAuthentication(final AuthenticationBuilder builder,
                                                 final AuthenticationTransaction transaction,
                                                 final Set<AuthenticationHandler> authenticationHandlers) throws AuthenticationException {
          if (builder.getSuccesses().isEmpty()) {
              publishEvent(new CasAuthenticationTransactionFailureEvent(this, builder.getFailures(), transaction.getCredentials()));
              throw new AuthenticationException(builder.getFailures(), builder.getSuccesses());
          }
  
          val authentication = builder.build();
          val failures = evaluateAuthenticationPolicies(authentication, transaction, authenticationHandlers);
          if (!failures.getKey()) {
              publishEvent(new CasAuthenticationPolicyFailureEvent(this, builder.getFailures(), transaction, authentication));
              failures.getValue().forEach(e -> handleAuthenticationException(e, e.getClass().getSimpleName(), builder));
              throw new AuthenticationException(builder.getFailures(), builder.getSuccesses());
          }
      }