@Override
    public void populateAttributes(final AuthenticationBuilder builder, final AuthenticationTransaction transaction) {
        var successes = builder.getSuccesses().keySet();
        if (successes.isEmpty()) {
            builder.mergeAttribute(AuthenticationHandler.SUCCESSFUL_AUTHENTICATION_HANDLERS, new HashSet<>());
        } else {
            builder.mergeAttribute(AuthenticationHandler.SUCCESSFUL_AUTHENTICATION_HANDLERS, CollectionUtils.wrap(successes));
        }
    }
Sets an authentication attribute containing the collection of authentication handlers (by name) that successfully
authenticated credential. The attribute name is given by {@link AuthenticationHandler#SUCCESSFUL_AUTHENTICATION_HANDLERS}.
This component provides a simple method to inject successful handlers into the CAS ticket validation
response to support level of assurance and MFA use cases.

@author Marvin S. Addison
@author Alaa Nassef
@since 4.0.0
core/cas-server-core-authentication-api/src/main/java/org/apereo/cas/authentication/metadata/SuccessfulHandlerMetaDataPopulator.java