Package org.owasp.webscarab.model

Examples of org.owasp.webscarab.model.Response


  public Object getValue(ConversationID key) {
    try {
      manager.declareBean("id", key, ConversationID.class);
      Request request = model.getRequest(key);
      manager.declareBean("request", request, Request.class);
      Response response = model.getResponse(key);
      manager.declareBean("response", response, Response.class);
      Object result = manager.eval(language, name, 0, 0, expression);
      manager.undeclareBean("id");
      manager.undeclareBean("request");
      manager.undeclareBean("response");
View Full Code Here


    }

    @Override
    public Response fetchResponse(Request request) throws IOException {
        if (false == this.openIdProxyConfig.doSomething()) {
            Response response = this.httpClient.fetchResponse(request);
            return response;
        }

        String openIdProxyHeader = "";

        if (this.openIdProxyConfig.doCorruptSignature()) {
            openIdProxyHeader += corruptSignature(request);
        }
        if (this.openIdProxyConfig.doRemoveSignature()) {
            openIdProxyHeader += removeSignature(request);
        }
        if (this.openIdProxyConfig.doRemoveRequestedAttribute()) {
            openIdProxyHeader += removeRequestedAttribute(request);
        }
        if (this.openIdProxyConfig.doAppendAttribute()) {
            openIdProxyHeader += appendAttribute(request);
        }
        if (this.openIdProxyConfig.doRemoveRequestAssociationHandle()) {
            openIdProxyHeader += removeRequestAssociationHandle(request);
        }
        if (this.openIdProxyConfig.doRemoveResponseAssociationHandle()) {
            openIdProxyHeader += removeResponseAssociationHandle(request);
        }

        if (false == openIdProxyHeader.isEmpty()) {
            request.addHeader("X-OpenIDProxy", openIdProxyHeader);
        }

        Response response = this.httpClient.fetchResponse(request);
        return response;
    }
View Full Code Here

                    id = _selected;
                    _model.setBusy(true);
                    HttpUrl baseUrl = cmodel.getRequestUrl(id);
                    if (baseUrl.getQuery() != null)
                      baseUrl = baseUrl.getParentUrl();
                    Response baseResponse = cmodel.getResponse(id);
                    byte[] baseBytes = baseResponse.getContent();
                    String type = baseResponse.getHeader("Content-Type");
                    if (type == null || !type.startsWith("text")) {
                        _logger.warning("Base response is not text, skipping!");
                        return;
                    }
                    List<String> baseline = tokenize(baseBytes);
                    _diff = new LevenshteinDistance<String>(baseline);
                   
                    count = cmodel.getConversationCount();
                    _logger.info("Checking " + count + " conversaitons");
                    for (int i=0; i<count; i++) {
                        ConversationID cid = cmodel.getConversationAt(i);
                        HttpUrl curl = cmodel.getRequestUrl(cid);
                        if (curl.getQuery() != null)
                          curl = curl.getParentUrl();
                        if (!curl.equals(baseUrl))
                          continue;
                        _logger.info("Checking conversation " + i + " == " + cid);
                        if (cid.equals(id)) {
                            _model.setDistance(cid, 0);
                        } else {
                            Response response = cmodel.getResponse(cid);
                            String ctype = response.getHeader("Content-Type");
                            _logger.info("Content-type is " + ctype);
                            if (ctype != null && ctype.startsWith("text")) {
                                byte[] bytes = response.getContent();
                                List<String> target = tokenize(bytes);
                                _model.setDistance(cid, _diff.getDistance(target));
                            }
                        }
                    }
View Full Code Here

    public Response fetchResponse(Request request) throws IOException {
        /*
         * We want a very fast fall-through in case nothing needs to be done.
         */
        if (false == this.samlProxyConfig.doSomething()) {
            Response response = this.in.fetchResponse(request);
            return response;
        }

        changeSamlResponse(request);

        Response response = this.in.fetchResponse(request);
        return response;
    }
View Full Code Here

        public void run() {
            if (null == this.id) {
                return;
            }
            Request request = _model.getRequest(id);
            Response response = _model.getResponse(id);
            String origin = _model.getConversationOrigin(id);
            Iterator<Plugin> it = _plugins.iterator();
            while (it.hasNext()) {
                Plugin plugin = it.next();
                if (this.longRunning) {
View Full Code Here

            public void actionPerformed(ActionEvent e) {
                Object o = baseComboBox.getSelectedItem();
                if (o instanceof ConversationID) {
                    ConversationID id = (ConversationID) o;
                    ConversationModel cModel = _model.getConversationModel();
                    Response response = cModel.getResponse(id);
                    String cType = response.getHeader("Content-Type");
                    if (cType == null || !cType.startsWith("text")) {
                        JOptionPane.showMessageDialog(ComparePanel.this, "Selected conversation is not text", "Error", JOptionPane.ERROR_MESSAGE);
                        return;
                    }
                    byte[] content = response.getContent();
                    if (content == null || content.length == 0) {
                        JOptionPane.showMessageDialog(ComparePanel.this, "Selected conversation has no content", "Error", JOptionPane.ERROR_MESSAGE);
                        return;
                    }
                    _compare.setBaseConversation(null, id);
                    _base = new String(content);
                }
            }
        });
       
        conversationTable.getSelectionModel().addListSelectionListener(new ListSelectionListener() {
            public void valueChanged(ListSelectionEvent evt) {
                int selected = conversationTable.getSelectedRow();
                _diffPanel.clear();
                if (selected == -1) {
                    return;
                }
                selected = _conversationSorter.modelIndex(selected);
                ConversationModel cmodel = _model.getComparisonModel();
               
                ConversationID id = cmodel.getConversationAt(selected);
                Response response = cmodel.getResponse(id);
                String contentType = response.getHeader("Content-Type");
                if (contentType == null || !contentType.startsWith("text")) {
                    JOptionPane.showMessageDialog(ComparePanel.this, "Selected conversation is not text", "Error", JOptionPane.ERROR_MESSAGE);
                    return;
                }
                byte[] content = response.getContent();
                if (content == null || content.length == 0) {
                    JOptionPane.showMessageDialog(ComparePanel.this, "Selected conversation has no content", "Error", JOptionPane.ERROR_MESSAGE);
                    return;
                }
                final String dst = new String(content);
View Full Code Here

        // pass the request for possible modification or analysis
        connection.setRequest(request);
        connection.setResponse(null);
        _proxy.interceptRequest(connection);
        request = connection.getRequest();
        Response response = connection.getResponse();

        if (request == null)
          throw new IOException("Request was cancelled");
        if (response != null) {
          _proxy.failedResponse(id, "Response provided by script");
          _proxy = null;
        } else {

          // pass the request through the plugins, and return the
          // response
          try {
            response = hc.fetchResponse(request);
            if (response != null && response.getRequest() != null)
              request = response.getRequest();
          } catch (IOException ioe) {
            _logger
                .severe("IOException retrieving the response for "
                    + request.getURL() + " : " + ioe);
            ioe.printStackTrace();
            response = errorResponse(request, ioe);
            // prevent the conversation from being
            // submitted/recorded
            _proxy.failedResponse(id, ioe.toString());
            _proxy = null;
          }
          if (response == null) {
            _logger.severe("Got a null response from the fetcher");
            _proxy.failedResponse(id, "Null response");
            return;
          }
        }

        if (_proxy != null) {
          // pass the response for analysis or modification by the
          // scripts
          connection.setResponse(response);
          _proxy.interceptResponse(connection);
          response = connection.getResponse();
        }

        if (response == null)
          throw new IOException("Response was cancelled");

        try {
          if (_clientOut != null) {
            _logger.fine("Writing the response to the browser");
            response.write(_clientOut);
            _logger
                .fine("Finished writing the response to the browser");
          }
        } catch (IOException ioe) {
          _logger
              .severe("Error writing back to the browser : "
                  + ioe);
        } finally {
          response.flushContentStream(); // this simply flushes the
                          // content from the server
        }
        // this should not happen, but might if a proxy plugin is
        // careless
        if (response.getRequest() == null) {
          _logger.warning("Response had no associated request!");
          response.setRequest(request);
        }
        if (_proxy != null && !request.getMethod().equals("CONNECT")) {
          _proxy.gotResponse(id, response);
        }

        keepAlive = response.getHeader("Connection");
        version = response.getVersion();

        request = null;

        _logger.fine("Version: " + version + " Connection: "
            + connection);
View Full Code Here

      throw e;
    }
  }

  private Response errorResponse(Request request, Exception e) {
    Response response = new Response();
    response.setRequest(request);
    response.setVersion("HTTP/1.0");
    response.setStatus("500");
    response.setMessage("WebScarab error");
    response.setHeader("Content-Type", "text/html");
    response.setHeader("Connection", "Close");
    String template = "<HTML><HEAD><TITLE>WebScarab Error</TITLE></HEAD>";
    template = template
        + "<BODY>WebScarab encountered an error trying to retrieve <P><pre>"
        + HtmlEncoder.encode(request.toString()) + "</pre><P>";
    template = template + "The error was : <P><pre>"
        + HtmlEncoder.encode(e.getLocalizedMessage()) + "\n";
    StackTraceElement[] trace = e.getStackTrace();
    if (trace != null) {
      for (int i = 0; i < trace.length; i++) {
        template = template + "\tat " + trace[i].getClassName() + "."
            + trace[i].getMethodName() + "(";
        if (trace[i].getLineNumber() == -2) {
          template = template + "Native Method";
        } else if (trace[i].getLineNumber() == -1) {
          template = template + "Unknown Source";
        } else {
          template = template + trace[i].getFileName() + ":"
              + trace[i].getLineNumber();
        }
        template = template + ")\n";
      }
    }
    template = template + "</pre><P></HTML>";
    response.setContent(template.getBytes());
    return response;
  }
View Full Code Here

            body.append(Encoding.urlEncode((String)parameterEntry.getValue()));
        }
        request.setHeader("Content-Length", Integer.toString(body.length()));
        request.setContent(body.toString().getBytes());

        Response response = HTTPClientFactory.getInstance().fetchResponse(request);
        if (false == "200".equals(response.getStatus())) {
            throw new RuntimeException("invalid status return code: " + response.getStatus());
        }

        byte[] responseContent = response.getContent();
        ParameterList responseParameterList = ParameterList.createFromKeyValueForm(new String(responseContent));
        AssociationResponse associationResponse = AssociationResponse.createAssociationResponse(responseParameterList);

        Association association = associationResponse.getAssociation(dhSession);
        return association;
View Full Code Here

            setResponse(null, false);
            if (_frame != null)
                _frame.setTitle("WebScarab - no conversation selected");
        } else {
            Request request = _model.getRequest(id);
            Response response = _model.getResponse(id);
            setRequest(request, false);
            setResponse(response, false);
            if (_frame != null)
                _frame.setTitle("WebScarab - conversation " + id);
        }
View Full Code Here

TOP

Related Classes of org.owasp.webscarab.model.Response

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.