docs: @Override
      public boolean authenticate() {
          UndertowLogger.SECURITY_LOGGER.debugf("Attempting to authenticate %s, authentication required: %s", exchange.getRequestPath(), isAuthenticationRequired());
          if(authenticationState == AuthenticationState.ATTEMPTED || (authenticationState == AuthenticationState.CHALLENGE_SENT && !exchange.isResponseStarted())) {
              //we are re-attempted, so we just reset the state
              //see UNDERTOW-263
              authenticationState = AuthenticationState.NOT_ATTEMPTED;
          }
          return !authTransition();
      }