onAuthenticate
Authenticates a request based on AuthenticationContext. Implementations should either add a new AuthenticationContext.principal for successful authentication or register AuthenticationContext.challenge for failed ones.