The installNecessaryPlugins REST API needs to return HTTP 400 when plugin name is wrong

This issue is archived. You can view it, but you can't modify it. Learn more

XMLWordPrintable

      This is an Improvement ticket to address the following problem:

      When the plugin name is wrong, the installNecessaryPlugin REST API silently accepts it.

      CRUMB=$(curl $JENKINS_REST_ENDPOINT/crumbIssuer/api/xml?xpath=concat\(//crumbRequestField,%22:%22,//crumb\))
      
      curl -v -L -X POST \
          -d "<jenkins><install plugin=\"extended-read-permission@1.0\" /></jenkins>" \
          -H "Content-Type: text/xml" \
          -H "$CRUMB" \
          "http://localhost:8080/pluginManager/installNecessaryPlugins"

      This returns:

       > POST /pluginManager/installNecessaryPlugins HTTP/1.1
      > Host: localhost:8080
      > User-Agent: curl/7.47.0
      > Accept: */*
      > Content-Type: text/xml
      > Jenkins-Crumb:cfeaec07a1a12decfd5ceff525cd8b01
      > Content-Length: 69
      >
      * upload completely sent off: 69 out of 69 bytes
      < HTTP/1.1 302 Found
      < Date: Sun, 21 Jul 2019 12:53:56 GMT
      < X-Content-Type-Options: nosniff
      < Location: http://localhost:8080/updateCenter
      < Content-Length: 0
      < Server: Jetty(9.4.z-SNAPSHOT)
      <
      * Connection #0 to host localhost left intact
      * Issue another request to this URL: 'http://localhost:8080/updateCenter'
      * Switch from POST to GET
      * Found bundle for host localhost: 0x56026f0db330 [can pipeline]
      * Re-using existing connection! (#0) with host localhost
      * Connected to localhost (127.0.0.1) port 8080 (#0)
      > POST /updateCenter HTTP/1.1
      > Host: localhost:8080
      > User-Agent: curl/7.47.0
      > Accept: */*
      > Content-Type: text/xml
      > Jenkins-Crumb:cfeaec07a1a12decfd5ceff525cd8b01
      >
      < HTTP/1.1 302 Found
      < Date: Sun, 21 Jul 2019 12:53:56 GMT
      < X-Content-Type-Options: nosniff
      < Location: http://localhost:8080/updateCenter/
      < Content-Length: 0
      < Server: Jetty(9.4.z-SNAPSHOT)
      <
      * Connection #0 to host localhost left intact
      * Issue another request to this URL: 'http://localhost:8080/updateCenter/'
      * Found bundle for host localhost: 0x56026f0db330 [can pipeline]
      * Re-using existing connection! (#0) with host localhost
      * Connected to localhost (127.0.0.1) port 8080 (#0)
      > POST /updateCenter/ HTTP/1.1
      > Host: localhost:8080
      > User-Agent: curl/7.47.0
      > Accept: */*
      > Content-Type: text/xml
      > Jenkins-Crumb:cfeaec07a1a12decfd5ceff525cd8b01
      >
      < HTTP/1.1 200 OK
      < Date: Sun, 21 Jul 2019 12:53:56 GMT
      < X-Content-Type-Options: nosniff
      < Content-Type: text/html;charset=utf-8
      < Expires: Thu, 01 Jan 1970 00:00:00 GMT
      < Cache-Control: no-cache,no-store,must-revalidate
      < X-Hudson-Theme: default
      < Referrer-Policy: same-origin
      < Set-Cookie: JSESSIONID.7b3dc8aa=node01vbzel0qvprdl90tcyx4l56f66.node0;Path=/;HttpOnly
      < X-Hudson: 1.395
      < X-Jenkins: 2.176.2
      < X-Jenkins-Session: 8868fc82
      < X-Hudson-CLI-Port: 36861
      < X-Jenkins-CLI-Port: 36861
      < X-Jenkins-CLI2-Port: 36861
      < X-Frame-Options: sameorigin
      < X-Instance-Identity: MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqB7RCj4V0Ify29GRMl0wCp7Lj7FLz0QJ8am1DKx3li0ohcKDc4zIVn7bHtxC4OOa+hwaoY2yCNMXlbWelPuhQjhXZO2pSnBX3IacxQU/Q8fvHmYJ/H0p+Wn7ALj7PvWFG/exRBPYVBnn7vXmwViaUbk9P5r+hPz7NRON5l2A6A8OHBiTxcgMxNT+mh5h++JTmM0dwNTkOyoEev8UFAhsVObJPYKdfcLaMs6d8VYVc/meVNxRmlXVAutJKKpMye+YnxgImeU0uMqo45OXmzpjlQsPL/6GG3Z/24/BkqXo6Lqhq3hVYCj1rgo+oOhEAiqoqAgxpUDCJe/6Jx4392GxdwIDAQAB
      < Content-Length: 12343
      < Server: Jetty(9.4.z-SNAPSHOT)
      

      But in the log we see:

      WARNING: No such plugin extended-read-permissions to install
      

      The REST API should return a HTTP code indicating an error. Otherwise, the REST API silently ignores errors and it cannot be automated.

            Assignee:
            Unassigned
            Reporter:
            Martin d'Anjou
            Archiver:
            Jenkins Service Account

              Created:
              Updated:
              Archived: