@Override
    public String authenticate(AuthenticationDataSource authData) throws AuthenticationException {
        return applyAuthProcessor(
            providers,
            provider -> provider.authenticate(authData)
        );
    }
@Test
    public void testAuthenticate() throws Exception {
        testAuthenticate(tokenAA, SUBJECT_A);
        testAuthenticate(tokenAB, SUBJECT_B);
        testAuthenticate(tokenBA, SUBJECT_A);
        testAuthenticate(tokenBB, SUBJECT_B);
    }