/**
  * @see org.eclipse.jetty.server.Authentication.Deferred#login(java.lang.String, java.lang.String)
  */
 public Authentication login(String username, Object password, ServletRequest request) {
   UserIdentity identity = _authenticator.login(username, password, request);
   if (identity != null) {
     IdentityService identity_service = _authenticator.getLoginService().getIdentityService();
     UserAuthentication authentication = new UserAuthentication("API", identity);
     if (identity_service != null) _previousAssociation = identity_service.associate(identity);
     return authentication;
   }
   return null;
 }
  /**
   * @see
   *     org.eclipse.jetty.server.Authentication.Deferred#authenticate(javax.servlet.ServletRequest,
   *     javax.servlet.ServletResponse)
   */
  public Authentication authenticate(ServletRequest request, ServletResponse response) {
    try {
      LoginService login_service = _authenticator.getLoginService();
      IdentityService identity_service = login_service.getIdentityService();

      Authentication authentication = _authenticator.validateRequest(request, response, true);
      if (authentication instanceof Authentication.User && identity_service != null)
        _previousAssociation =
            identity_service.associate(((Authentication.User) authentication).getUserIdentity());
      return authentication;
    } catch (ServerAuthException e) {
      LOG.debug(e);
    }
    return this;
  }