connector/src/main/java/org/jboss/as/connector/security/ElytronCallbackHandler.java
private SecurityIdentity authenticate(final String username, final char[] credential) throws IOException {
        final ServerAuthenticationContext context = this.securityDomain.createNewAuthenticationContext();
        final PasswordGuessEvidence evidence = new PasswordGuessEvidence(credential != null ? credential : null);
        try {
            context.setAuthenticationName(username);
            if (context.verifyEvidence(evidence)) {
                if (context.authorize()) {
                    context.succeed();
                    return context.getAuthorizedIdentity();
                } else {
                    context.fail();
                    throw new SecurityException("Authorization failed");
                }
            } else {
                context.fail();
                throw new SecurityException("Authentication failed");
            }
        } catch (IllegalArgumentException | IllegalStateException | RealmUnavailableException e) {
            context.fail();
            throw e;
        } finally {
            if (!context.isDone()) {
                context.fail();
            }
            evidence.destroy();
        }
    }
private SecurityIdentity authenticate(final String username, final char[] credential) throws IOException {
        final ServerAuthenticationContext context = this.securityDomain.createNewAuthenticationContext();
        final PasswordGuessEvidence evidence = new PasswordGuessEvidence(credential != null ? credential : null);
        try {
            context.setAuthenticationName(username);
            if (context.verifyEvidence(evidence)) {
                if (context.authorize()) {
                    context.succeed();
                    return context.getAuthorizedIdentity();
                } else {
                    context.fail();
                    throw new SecurityException("Authorization failed");
                }
            } else {
                context.fail();
                throw new SecurityException("Authentication failed");
            }
        } catch (IllegalArgumentException | IllegalStateException | RealmUnavailableException e) {
            context.fail();
            throw e;
        } finally {
            if (!context.isDone()) {
                context.fail();
            }
            evidence.destroy();
        }
    }
private SecurityIdentity authenticate ( final String username , final char [ ] credential ) throws IOException { final ServerAuthenticationContext context = this . securityDomain . createNewAuthenticationContext ( ) ; final PasswordGuessEvidence evidence = new PasswordGuessEvidence ( credential != null ? credential : null ) ; try { context . setAuthenticationName ( username ) ; if ( context . verifyEvidence ( evidence ) ) { if ( context . authorize ( ) ) { context . succeed ( ) ; return context . getAuthorizedIdentity ( ) ; } else { context . fail ( ) ; throw new SecurityException ( "Authorization failed" ) ; } } else { context . fail ( ) ; throw new SecurityException ( "Authentication failed" ) ; } } catch ( IllegalArgumentException | IllegalStateException | RealmUnavailableException e ) { context . fail ( ) ; throw e ; } finally { if ( ! context . isDone ( ) ) { context . fail ( ) ; } evidence . destroy ( ) ; } }
Authenticate the user with the given credential against the configured Elytron security domain.

@param username the user being authenticated.
@param credential the credential used as evidence to verify the user's identity.
@return the authenticated and authorized {@link SecurityIdentity}.
@throws IOException if an error occurs while authenticating the user.
Authenticate the user with the given credential against the configured Elytron security domain .