private void bindAuthenticationProviders(
            Collection<Class<AuthenticationProvider>> authProviders,
            Set<String> tolerateFailures) {

        // Bind each authentication provider within extension
        for (Class<AuthenticationProvider> authenticationProvider : authProviders)
            bindAuthenticationProvider(authenticationProvider, tolerateFailures);

    }
Binds each of the given AuthenticationProvider classes such that any
service requiring access to the AuthenticationProvider can obtain it via
injection.

@param authProviders
    The AuthenticationProvider classes to bind.

@param tolerateFailures
    The set of identifiers of all authentication providers whose
    internal failures should be tolerated during the authentication
    process. If the identifier of an authentication provider is within
    this set, errors during authentication will result in the
    authentication provider being ignored for that authentication
    attempt, with the authentication process proceeding as if that
    authentication provider were not present. By default, errors during
    authentication halt the authentication process entirely.
guacamole/src/main/java/org/apache/guacamole/extension/ExtensionModule.java