@Override
    public CompletableFuture<String> authenticateAsync(AuthenticationDataSource authData) {
        CompletableFuture<String> roleFuture = new CompletableFuture<>();
        authenticateRemainingAuthProviders(roleFuture, authData, null, providers.isEmpty() ? -1 : 0);
        return roleFuture;
    }
@Test
    public void testAuthenticateAsync() throws Exception {
        testAuthenticateAsync(tokenAA, SUBJECT_A);
        testAuthenticateAsync(tokenAB, SUBJECT_B);
        testAuthenticateAsync(tokenBA, SUBJECT_A);
        testAuthenticateAsync(tokenBB, SUBJECT_B);
    }