Uploaded image for project: 'Dev - Nexus Repo'
  1. Dev - Nexus Repo
  2. NEXUS-17834

nexus platform plugin repository manager operations do not include an appropriate user agent

Details

    Description

      1. Global Configuration of Jenkins, try to add a new Nexus Repository Manager 3 Connection for the Nexus Platform Plugin for Jenkins.
      2. After entering the Server URL, the server is validated. Nexus RM receives this request:

      127.0.0.1 - - [23/Aug/2018:10:29:52 -0300] "GET //service/rest/wonderland/status HTTP/1.1" 404 - 1789 5 "Java/1.8.0_152"
      

      The user agent is "Java/1.8.0_152".

      Pipeline script that includes staging operations for NXRM 3, for example

      node {
         echo 'Hello World'
         createTag nexusInstanceId: 'nx3-release', tagAttributesJson: '{"createdBy": "JohnSmith"}', tagName: 'build-120'
      }
      

      When this is run, Nexus receives this request:

      127.0.0.1 - admin [23/Aug/2018:10:35:08 -0300] "POST /service/rest/v1/tags? HTTP/1.1" 200 59 181 80 "Apache-HttpClient/4.5.3 (Java/1.8.0_152)"
      

      The user agent is "Apache-HttpClient/4.5.3 (Java/1.8.0_152)".

      The user agent in both cases does not include the version of the Nexus platform plugin sending the request.

      In contrast, when IQ Server pipeline operations are performed, requests like this are sent with a more useful user agent value:

      127.0.0.1 - admin [23/Aug/2018:10:52:29 -0300] "GET /rest/integration/applications?goal=EVALUATE_APPLICATION HTTP/1.1" 200 130 10 "Sonatype_CLM_CI_Jenkins/3.3.20180801-112343.4970c8a (Java 1.8.0_152; Mac OS X 10.13.6)"
      

      Use Case

      The user agent helps both support and the customer verify what specific versions of our products are accessing our server products.

      Some customers even have use cases where http requests are filtered through firewalls and proxies based on user agent values.

      Expected

      ALL HTTP operations by the Nexus Platform Plugin should include the same user agent.
      The user agent should reflect the client product and version regardless of the server being accessed.

      Historically the user agent has been a merging of "<Sonatype Product ID>/<Sonatype Product version> (<technology user agent>)".

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              plynch Peter Lynch
              Peter Lynch Peter Lynch
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

                Created:
                Updated:

                tigCommentSecurity.panel-title