code: protected Set<Event> resolveMultifactorProviderViaPredicate(final Optional<RequestContext> context,
                                                                  final RegisteredService service,
                                                                  final Principal principal,
                                                                  final Collection<MultifactorAuthenticationProvider> providers) {
          val attributeNames = commaDelimitedListToSet(casProperties.getAuthn().getMfa().getGlobalPrincipalAttributeNameTriggers());
          return multifactorAuthenticationProviderResolver.resolveEventViaPrincipalAttribute(principal, attributeNames, service, context, providers,
              input -> providers.stream().anyMatch(provider -> input != null && provider.matches(input)));
      }
docs: Resolve multifactor provider by regex predicate set.
  
  @param context   the context
  @param service   the service
  @param principal the principal
  @param providers the providers
  @return the set