Package com.maverick.http

Examples of com.maverick.http.HttpResponse


  private void connectAgent() throws IOException, HttpException,
      UnsupportedAuthenticationException,
      AuthenticationCancelledException {

    HttpResponse response = null;
    HttpAuthenticator authenticator = null;
    String ticketToSend = ticket;
   
    boolean doPreemptive = ticketIsPassword;

    try {
           
      for (int i = 0; i < 3; i++) {

              HttpClient client = getHttpClient();
              if (doPreemptive) {
                  client.setCredentials(new PasswordCredentials(username,
                          ticket));
                  client.setPreferredAuthentication("Basic");
              }
              else {
                  client.setCredentials(null);
              }

        // #ifdef DEBUG
        log.info("Registering with the server"); //$NON-NLS-1$
        log.info("Server is " + (isSecure ? "https://" : "http://") + getAditoHost() //$NON-NLS-1$
            + ":" + getAditoPort()); //$NON-NLS-1$
        // #endif
        GetMethod post = new GetMethod("/agent"); //$NON-NLS-1$

              client.setPreemtiveAuthentication(doPreemptive);
        if (!doPreemptive && ticket != null) {
          post.setParameter("ticket", ticket); //$NON-NLS-1$
        }

        post.setParameter(
            "agentType", getConfiguration().getAgentType()); //$NON-NLS-1$ //$NON-NLS-2$
        post.setParameter("locale", Locale.getDefault().toString()); //$NON-NLS-1$

        response = client.execute(post);

        if (response.getStatus() == 302) {
          // Reset the client
          this.client = null;

          URL url = new URL(response.getHeaderField("Location")); //$NON-NLS-1$
          aditoHostname = url.getHost();
          if (url.getPort() > 0)
            aditoPort = url.getPort();
          continue;
        } else if (response.getStatus() == 200) {
          con.addListener(this);
          httpConnection = response.getConnection(); // Preserve the
          // connection
          con.registerRequestHandler(MESSAGE_REQUEST, this);
          con.registerRequestHandler(SHUTDOWN_REQUEST, this);
          con.registerRequestHandler(OPEN_URL_REQUEST, this);
          con.registerRequestHandler(UPDATE_RESOURCES_REQUEST, this);

          // Start the protocol

          con.startProtocol(
              response.getConnection().getInputStream(), response
                  .getConnection().getOutputStream(), true);

          // Synchronize and read back server information
          Request syncRequest = new Request(SYNCHRONIZED_REQUEST);
          con.sendRequest(syncRequest, true);
          if (syncRequest.getRequestData() == null)
            throw new IOException(
                "Server failed to return version data");

          ByteArrayReader reader = new ByteArrayReader(syncRequest
              .getRequestData());
          serverVersion = reader.readString();

          /**
           * Initialize the managers. Tunnels are no longer recorded
           * here unless they are active. This simplifies the agent by
           * making it respond to start and stop requests from the new
           * persistent connection with Adito.
           */
          tunnelManager = new TunnelManager(this);
          applicationManager = new ApplicationManager(this);
          webForwardManager = new WebForwardManager(this);
          networkPlaceManager = new NetworkPlaceManager(this);
          updateResources(-1);
          return;
        } else if (response.getStatus() == 401) {
          authenticator = HttpAuthenticatorFactory
              .createAuthenticator(
                  response.getConnection(),
                  response
                      .getHeaderFields("WWW-Authenticate"),
                  "WWW-Authenticate", "Authorization",
                  HttpAuthenticatorFactory.BASIC, post
                      .getURI());
          if (authenticator.wantsPrompt()) {
            if ( !( defaultAuthenticationPrompt != null ? defaultAuthenticationPrompt.promptForCredentials(false, authenticator) :
                getGUI().promptForCredentials(false, authenticator) ) ) {
              throw new AuthenticationCancelledException();
            }
          }
        } else if(response.getStatus() == 403) {
            if(doPreemptive || ticket != null) {
                doPreemptive = false;
                ticket = null;
            }
            else {
              throw new IOException(MessageFormat.format(Messages
                  .getString("VPNClient.register.failed"),
                  new Object[] {
                      String.valueOf(response.getStatus()),
                      response.getReason() }));
            }
        }
      }

      throw new IOException(Messages
View Full Code Here


    return requestDispatcher;
  }

  public void processResponse() throws Exception {

    HttpResponse serverResponse = requestDispatcher.getServerResponse();
    headers = new ArrayList();

    // Determine if the response can be cached, and if so, for how long
    expiryDate = maxAge == 0 ? null : new Date(System.currentTimeMillis() + maxAge);
    cacheable = false;
    if (cache != null && HttpConstants.METHOD_GET.equals(requestProcessor.getRequestMethod())
      && requestDispatcher.getResponseCode() == HttpConstants.RESP_200_OK) {
      cacheable = true;

      // HTTP 1.0
      String cacheControl = serverResponse.getHeaderField(HttpConstants.HDR_PRAGMA);
      if (cacheControl != null && cacheControl.equalsIgnoreCase("no-cache")) {
        if (log.isDebugEnabled())
          log.debug("Not caching as server explicitly requested not to.");
        cacheable = false;
      } else {
        String expires = serverResponse.getHeaderField(HttpConstants.HDR_EXPIRES);
        if (expires != null) {
          try {
            expiryDate = sdf.parse(expires);
          } catch (Exception e2) {
          }
        }
      }

      // HTTP 1.1
      if (cacheable) {
        cacheControl = serverResponse.getHeaderField(HttpConstants.HDR_CACHE_CONTROL);
        if (cacheControl != null) {
          StringTokenizer tok = new StringTokenizer(cacheControl, ";");
          while (tok.hasMoreTokens()) {
            String t = tok.nextToken().trim();
            String tl = t.toLowerCase();
            if (t.startsWith("no-cache") || t.startsWith("no-store")) {
              cacheable = false;
              if (log.isDebugEnabled())
                log.debug("Not caching as server explicitly requested not to.");
            } else if (tl.startsWith("max-age")) {
              try {
                expiryDate.setTime(expiryDate.getTime() - (Integer.parseInt(Util.valueOfNameValuePair(tl))));
              } catch (Exception e2) {
              }
            }
          }
        }
      }
    }

    String contentEncoding = serverResponse.getHeaderField(HttpConstants.HDR_CONTENT_ENCODING);
    serverIn = serverResponse.getInputStream();

    if ("gzip".equals(contentEncoding)) {
      serverIn = new GZIPInputStream(serverIn);
    } else if ("identity".equals(contentEncoding) || contentEncoding == null) {
      // Plain
    } else {
      throw new Exception("Invalid content encoding " + serverResponse.getHeaderField(HttpConstants.HDR_CONTENT_ENCODING));
    }

    String[] challenges = serverResponse.getHeaderFields("www-authenticate");

    if (challenges != null) {
      serverResponse.removeFields("www-authenticate");

      for (int i = 0; i < challenges.length; i++) {
        if (challenges[i].toLowerCase().startsWith("basic") || challenges[i].toLowerCase().startsWith("digest")
          || challenges[i].toLowerCase().startsWith("ntlm")) {
          if(i==0)
            serverResponse.setHeaderField("WWW-Authenticate", challenges[i]);
          else
            serverResponse.addHeaderField("WWW-Authenticate", challenges[i]);
        }
      }
    }

    // response.setStatus(serverResponse.getStatus());
    // response.setReason(serverResponse.getReason());

    serverResponse.removeFields("Server");
    serverResponse.removeFields("Date");

    for (Enumeration e = serverResponse.getHeaderFieldNames(); e.hasMoreElements();) {
      String hdr = (String) e.nextElement();
      if (log.isDebugEnabled())
        log.debug("Received header " + hdr);
      String[] val = serverResponse.getHeaderFields(hdr);

      for (int i = 0; i < val.length; i++) {

        if (hdr.equalsIgnoreCase("Content-Type")) {
View Full Code Here

        String password = isEmpty(entry.getPassword()) ? container.getDefaultPassword() : entry.getPassword();

        GetMethod usernameLogon = new GetMethod("/usernameLogon.do");
        usernameLogon.setParameter("username", username);
        usernameLogon.setParameter("password", password);
        HttpResponse usernameLogonResponse = client.execute(usernameLogon);
        assertEquals("Authenticated Failed", 200, usernameLogonResponse.getStatus());

        GetMethod logon = new GetMethod("/logon.do");
        logon.setParameter("username", username);
        logon.setParameter("password", password);
        HttpResponse logonResponse = client.execute(logon);
        assertEquals("Authenticated Failed", 200, logonResponse.getStatus());
    }
View Full Code Here

        assertEquals("Authenticated Failed", 200, logonResponse.getStatus());
    }

    private static void logOff(HttpClient client) throws Exception {
        GetMethod getMethod = new GetMethod("/logoff.do");
        HttpResponse httpResponse = client.execute(getMethod);
        assertEquals("Log Off Failed", 302, httpResponse.getStatus());
        assertRedirect(httpResponse, "showHome.do");
    }
View Full Code Here

        HttpMethod get = step.isPost() ? new PostMethod(url) : new GetMethod(url);
        for (Map.Entry<String, String> entry : step.getParameters().entrySet()) {
            get.setParameter(entry.getKey(), entry.getValue());
        }

        HttpResponse response = client.execute(get);
        int responseCode = response.getStatus();
        assertEquals("Unexpected Status", step.getExpectedCode(), responseCode);
        assertRedirect(response, step.getRedirectUrl());

        Collection<String> messages = getActionMessages(response, "unitTestMessages");
        assertEquals("The messages differ", step.getMessages(), messages);
View Full Code Here

           
            if(log.isDebugEnabled())
                log.debug("Completed sending request content");
        }

        return new HttpResponse(connection);
    }
View Full Code Here

        HttpClient client = new HttpClient("127.0.0.1", 443, true);
        GetMethod get = new GetMethod("AGENT", "/");
        client.setCredentials(new PasswordCredentials("lee", "xxxxxxxxxx"));
        client.setPreemtiveAuthentication(true);
       
        HttpResponse response = client.execute(get);
       
        c = new MultiplexedConnection(new SocketChannelFactory());

            c.startProtocol(response.getConnection().getInputStream(), response.getConnection().getOutputStream(), false);

        } catch (Exception ex) {
            ex.printStackTrace();
        }
View Full Code Here

                    credentials.setUsername(proxyUsername);
                    credentials.setPassword(proxyPassword);

                    client.setCredentials(credentials);

                    HttpResponse response = client.execute(method);
                    socket = response.getConnection().getSocket();
                } catch (HttpException ex) {
                    // #ifdef DEBUG
                    log.info(MessageFormat.format(Messages.getString("HttpsURLConnection.proxyConnectionFailed"), new Object[] { ex.getMessage(), new Integer(ex.getStatus()) })); //$NON-NLS-1$
                    // #endif
                    throw new IOException(MessageFormat.format(Messages.getString("HttpsURLConnection.proxyConnectionFailed"), new Object[] { ex.getMessage(), new Integer(ex.getStatus()) })); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
View Full Code Here

         
          if(log.isDebugEnabled())
            log.debug("Completed sending request content");
        }

        return new HttpResponse(connection);
    }
View Full Code Here

TOP

Related Classes of com.maverick.http.HttpResponse

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.