Skip to content
This repository was archived by the owner on May 14, 2021. It is now read-only.
This repository was archived by the owner on May 14, 2021. It is now read-only.

Library assumes XML being returned, not always true #1

@brandonprry

Description

@brandonprry

The library currently assumes that the response will be XML, this isn't true for ad-hoc reports. Reports are returned in a multipart MIME message. The library currently breaks wen trying to pull down an ad-hoc report with a SAX error.

The following code repro's the issue:

import org.rapid7.nexpose.api.APIException;
import org.rapid7.nexpose.api.APIResponse;
import org.rapid7.nexpose.api.APISession;
import org.rapid7.nexpose.api.APISession.APISupportedVersion;
import org.rapid7.nexpose.api.ReportAdhocGenerateRequest;
import org.rapid7.nexpose.api.ReportConfigRequest;
import org.rapid7.nexpose.api.ReportListingRequest;
import org.rapid7.nexpose.api.generators.IContentGenerator;
import org.rapid7.nexpose.api.generators.ReportFiltersContentGenerator;
import org.rapid7.nexpose.api.generators.ReportFiltersContentGenerator.ReportFilter;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;

public class Main
{

   /**
    * @param args
    */
   public static void main(String[] args)
   throws Exception
   {
      URL url;
      APISession session;
      
      try
      {
         url = new URL("https://127.0.0.1:3780");
         session = new APISession(url, "xml", APISupportedVersion.V1_2, "username", "password");
      }
      catch (MalformedURLException ex)
      {
         throw new Exception(ex);
      }
      
      try
      {
         session.login(null);
      }
      catch (Exception e)
      {
         System.exit(1);
      }
      
      String sessionID = session.getSessionID();
      ReportFiltersContentGenerator filters = new ReportFiltersContentGenerator();
      
      List f = new ArrayList();
      f.add(new ReportFilter("site", "1"));
      filters.setFilters(f);
      
      ReportAdhocGenerateRequest req = new ReportAdhocGenerateRequest(sessionID, null, "pdf", "audit-report", null, filters);
      //String fdsa = req.toXML();
      APIResponse resp = session.executeAPIRequest(req);
      
      String requestXML = req.toXML();
      resp = session.sendRawXMLRequest(requestXML, APISupportedVersion.V1_0);
      String xml = resp.getResponse();
      System.out.println(xml);
   }
   /////////////////////////////////////////////////////////////////////////
   // Public methods
   /////////////////////////////////////////////////////////////////////////

   /////////////////////////////////////////////////////////////////////////
   // Non-public methods
   /////////////////////////////////////////////////////////////////////////

   /////////////////////////////////////////////////////////////////////////
   // Non-public fields
   /////////////////////////////////////////////////////////////////////////

}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions