Package org.apache.jmeter.protocol.http.control

Examples of org.apache.jmeter.protocol.http.control.HeaderManager


    // Instantiate the sampler
    HTTPSamplerBase sampler = HTTPSamplerFactory.newInstance(httpSamplerName);
   
    HttpRequestHdr request = new HttpRequestHdr(sampler);
    SampleResult result = null;
    HeaderManager headers = null;

    try {
      request.parse(new BufferedInputStream(clientSocket.getInputStream()));

      // Populate the sampler. It is the same sampler as we sent into
      // the constructor of the HttpRequestHdr instance above
            request.getSampler(pageEncodings, formEncodings);

      /*
       * Create a Header Manager to ensure that the browsers headers are
       * captured and sent to the server
       */
      headers = request.getHeaderManager();
      sampler.setHeaderManager(headers);
     
      /*
       * If we are trying to spoof https, change the protocol
       */
      if (httpsSpoof) {
        sampler.setProtocol("https");
      }
      sampler.threadStarted(); // Needed for HTTPSampler2
      result = sampler.sample();
     
      /*
       * If we're dealing with text data, and if we're spoofing https,
       * replace all occurences of "https" with "http" for the client.
       */
      if (httpsSpoof && SampleResult.TEXT.equals(result.getDataType()))
      {
        String noHttpsResult = new String(result.getResponseData());
        result.setResponseData(noHttpsResult.replaceAll("https", "http").getBytes());
      }

            // Find the page encoding and possibly encodings for forms in the page
            // in the response from the web server
            String pageEncoding = addPageEncoding(result);
            addFormEncodings(result, pageEncoding);

      writeToClient(result, new BufferedOutputStream(clientSocket.getOutputStream()));
      /*
       * We don't want to store any cookies in the generated test plan
       */
      headers.removeHeaderNamed("cookie");// Always remove cookies // $NON-NLS-1$
    } catch (UnknownHostException uhe) {
      log.warn("Server Not Found.", uhe);
      writeErrorToClient(HttpReplyHdr.formServerNotFound());
    } catch (Exception e) {
      log.error("", e);
View Full Code Here


    }
    return 0;
  }

  private HeaderManager createHeaderManager() {
    HeaderManager manager = new HeaderManager();
    Iterator keys = headers.keySet().iterator();
    while (keys.hasNext()) {
      String key = (String) keys.next();
      if (!key.equals(PROXY_CONNECTION) && !key.equals(CONTENT_LENGTH)) {
        manager.add((Header) headers.get(key));
      }
    }
    manager.setName("Browser-derived headers");
    manager.setProperty(TestElement.TEST_CLASS, HeaderManager.class.getName());
    manager.setProperty(TestElement.GUI_CLASS, HeaderPanel.class.getName());
    return manager;
  }
View Full Code Here

        setConnectionCookies(url, getCookieManager());
        setByte((byte)0xff); // Attributes not supported
    }

    private int getHeaderSize(String method, URL url) {
        HeaderManager headers = getHeaderManager();
        CookieManager cookies = getCookieManager();
        AuthManager auth = getAuthManager();
        int hsz = 1; // Host always
        if(method.equals(POST)) {
            String fn = getFilename();
            if(fn != null && fn.trim().length() > 0) {
                hsz += 3;
            } else {
                hsz += 2;
            }
        }
        if(headers != null) {
            hsz += headers.size();
        }
        if(cookies != null) {
            hsz += cookies.getCookieCount();
        }
        if(auth != null) {
View Full Code Here

    }


    private String setConnectionHeaders(URL url, String host, String method)
    throws IOException {
        HeaderManager headers = getHeaderManager();
        AuthManager auth = getAuthManager();
        StringBuffer hbuf = new StringBuffer();
        // Allow Headers to override Host setting
        hbuf.append("Host").append(COLON_SPACE).append(host).append(NEWLINE);//$NON-NLS-1$
        setInt(0xA00b); //Host
        setString(host);
        if(headers != null) {
            CollectionProperty coll = headers.getHeaders();
            PropertyIterator i = coll.iterator();
            while(i.hasNext()) {
                Header header = (Header)i.next().getObjectValue();
                String n = header.getName();
                String v = header.getValue();
View Full Code Here

    public AuthManager getAuthManager() {
        return (AuthManager) getProperty(AUTH_MANAGER).getObjectValue();
    }

    public void setHeaderManager(HeaderManager value) {
        HeaderManager mgr = getHeaderManager();
        if (mgr != null) {
            value = mgr.merge(value, true);
            if (log.isDebugEnabled()) {
                log.debug("Existing HeaderManager '" + mgr.getName() + "' merged with '" + value.getName() + "'");
                for (int i=0; i < value.getHeaders().size(); i++) {
                    log.debug("    " + value.getHeader(i).getName() + "=" + value.getHeader(i).getValue());
                }
            }
        }
View Full Code Here

    }
    return 0;
  }

  private HeaderManager createHeaderManager() {
    HeaderManager manager = new HeaderManager();
    Iterator keys = headers.keySet().iterator();
    while (keys.hasNext()) {
      String key = (String) keys.next();
      if (!key.equals(PROXY_CONNECTION) && !key.equals(CONTENT_LENGTH)) {
        manager.add((Header) headers.get(key));
      }
    }
    manager.setName("Browser-derived headers");
    manager.setProperty(TestElement.TEST_CLASS, HeaderManager.class.getName());
    manager.setProperty(TestElement.GUI_CLASS, HeaderPanel.class.getName());
    return manager;
  }
View Full Code Here

    // Instantiate the sampler
    HTTPSamplerBase sampler = HTTPSamplerFactory.newInstance(httpSamplerName);
   
    HttpRequestHdr request = new HttpRequestHdr(sampler);
    SampleResult result = null;
    HeaderManager headers = null;

    try {
      request.parse(new BufferedInputStream(clientSocket.getInputStream()));

      // Populate the sampler. It is the same sampler as we sent into
      // the constructor of the HttpRequestHdr instance above
            request.getSampler(pageEncodings, formEncodings);

      /*
       * Create a Header Manager to ensure that the browsers headers are
       * captured and sent to the server
       */
      headers = request.getHeaderManager();
      sampler.setHeaderManager(headers);
     
      /*
       * If we are trying to spoof https, change the protocol
       */
      boolean forcedHTTP = false; // so we know when to revert
      if (httpsSpoof) {
        if (httpsSpoofMatch.length() > 0){
          String url = request.getUrl();
          if (url.matches(httpsSpoofMatch)){
            sampler.setProtocol(HTTPConstants.PROTOCOL_HTTPS);
            forcedHTTP = true;
          }
        } else {
            sampler.setProtocol(HTTPConstants.PROTOCOL_HTTPS);
          forcedHTTP = true;
        }
      }
      sampler.threadStarted(); // Needed for HTTPSampler2
      result = sampler.sample();
     
      /*
       * If we're dealing with text data, and if we're spoofing https,
       * replace all occurences of "https://" with "http://" for the client.
       * TODO - also check the match string to restrict the changes further?
       */
      if (forcedHTTP && SampleResult.TEXT.equals(result.getDataType()))
      {
        final String enc = result.getDataEncodingWithDefault();
        String noHttpsResult = new String(result.getResponseData(),enc);
        final String HTTPS_HOST = // match https://host[:port]/ and drop default port if present
          "https://([^:/]+)(:"+HTTPConstants.DEFAULT_HTTPS_PORT_STRING+")?"; // $NON-NLS-1$ $NON-NLS-2$
        noHttpsResult = noHttpsResult.replaceAll(HTTPS_HOST, "http://$1"); // $NON-NLS-1$
        result.setResponseData(noHttpsResult.getBytes(enc));
      }

            // Find the page encoding and possibly encodings for forms in the page
            // in the response from the web server
            String pageEncoding = addPageEncoding(result);
            addFormEncodings(result, pageEncoding);

      writeToClient(result, new BufferedOutputStream(clientSocket.getOutputStream()));
    } catch (UnknownHostException uhe) {
      log.warn("Server Not Found.", uhe);
      writeErrorToClient(HttpReplyHdr.formServerNotFound());
      result = generateErrorResult(result, uhe); // Generate result (if nec.) and populate it
    } catch (IllegalArgumentException e) {
      log.error("Not implemented (probably used https)", e);
      writeErrorToClient(HttpReplyHdr.formNotImplemented());     
      result = generateErrorResult(result, e); // Generate result (if nec.) and populate it
    } catch (Exception e) {
      log.error("Exception when processing sample", e);
      writeErrorToClient(HttpReplyHdr.formTimeout());
      result = generateErrorResult(result, e); // Generate result (if nec.) and populate it
    } finally {
      if (log.isDebugEnabled()) {
        log.debug("Will deliver sample " + sampler.getName());
      }
      /*
       * We don't want to store any cookies in the generated test plan
       */
      if (headers != null) {
        headers.removeHeaderNamed("cookie");// Always remove cookies // $NON-NLS-1$
        headers.removeHeaderNamed("Authorization");// Always remove authorization // $NON-NLS-1$
        // Remove additional headers
        for(int i=0; i < headersToRemove.length; i++){
          headers.removeHeaderNamed(headersToRemove[i]);
        }
        }
      target.deliverSampler(sampler, new TestElement[] { captureHttpHeaders ? headers : null }, result);
      try {
        clientSocket.close();
View Full Code Here

  public AuthManager getAuthManager() {
    return (AuthManager) getProperty(AUTH_MANAGER).getObjectValue();
  }

  public void setHeaderManager(HeaderManager value) {
    HeaderManager mgr = getHeaderManager();
    if (mgr != null) {
      log.warn("Existing Manager " + mgr.getName() + " superseded by " + value.getName());
    }
    setProperty(new TestElementProperty(HEADER_MANAGER, value));
  }
View Full Code Here

  private JButton loadButton;

  private JButton saveButton;

  public HeaderPanel() {
    headerManager = new HeaderManager();
    tableModel = new InnerTableModel(headerManager);
    init();
  }
View Full Code Here

        setConnectionCookies(url, getCookieManager());
        setByte((byte)0xff); // Attributes not supported
    }

    private int getHeaderSize(String method, URL url) {
        HeaderManager headers = getHeaderManager();
        CookieManager cookies = getCookieManager();
        AuthManager auth = getAuthManager();
        int hsz = 1; // Host always
        if(method.equals(POST)) {
            String fn = getFilename();
            if(fn != null && fn.trim().length() > 0) {
                hsz += 3;
            } else {
                hsz += 2;
            }
        }
        if(headers != null) {
            hsz += headers.size();
        }
        if(cookies != null) {
            hsz += cookies.getCookieCount();
        }
        if(auth != null) {
View Full Code Here

TOP

Related Classes of org.apache.jmeter.protocol.http.control.HeaderManager

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.