class AuthenticationChain {

    public static AuthenticationChain getInstance(final Collection<AuthenticationProvider<?>> authenticationProviders,
            final AuthenticationFailureAggregator authenticationFailureAggregator,
            final Executor authenticationDispatcher) {

        return new AuthenticationChain(authenticationProviders, authenticationFailureAggregator,
                authenticationDispatcher);
    }

    private  AuthenticationChain(final Collection<AuthenticationProvider<?>> authenticationProviders,
            final AuthenticationFailureAggregator authenticationFailureAggregator,
            final Executor authenticationDispatcher);

}