Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-49980

Whitelist standard Kotlin classes to ensure compatibility with JEP-200 in 2.102+

      It is a follow-up to the discussion in HOSTING-492 with casz . The plugin does not whitelist base classes, and it's high risk of regressions in API user plugins. E.g. see JENKINS-49699

      > What to serialize? It is a complicated topic. Jenkins 2.102+ will reject serialization of classes over Remoting and XStream, so the rule would be the following:

      • Every class plugin developers persist on the disk
      • Every class plugin developers send over the channel to agents

      > I would say that the most of the classes should be whitelisted by plugin developers, but the library could whitelist Kotlin base classes (like kotlin.collections.EmptyList in JENKINS-49699). You can find examples of whitelisted base classes for Java here: https://github.com/jenkinsci/jenkins/blob/master/core/src/main/resources/jenkins/security/whitelisted-classes.txt

          [JENKINS-49980] Whitelist standard Kotlin classes to ensure compatibility with JEP-200 in 2.102+

          Oleg Nenashev created issue -
          Oleg Nenashev made changes -
          Link New: This issue relates to JENKINS-49699 [ JENKINS-49699 ]
          Oleg Nenashev made changes -
          Link New: This issue relates to HOSTING-492 [ HOSTING-492 ]
          Oleg Nenashev made changes -
          Labels New: JEP-200

          Oleg Nenashev added a comment -

          casz IIUC the discussion in JENKINS-49699, you have already done some whitelisting prototyping, right?
          Do you think it makes sense to close this ticket?

          Oleg Nenashev added a comment - casz IIUC the discussion in JENKINS-49699 , you have already done some whitelisting prototyping, right? Do you think it makes sense to close this ticket?

          Yup, closing

          Joseph Petersen (old) added a comment - Yup, closing
          Joseph Petersen (old) made changes -
          Resolution New: Fixed [ 1 ]
          Status Original: Open [ 1 ] New: Resolved [ 5 ]
          Joseph Petersen made changes -
          Assignee Original: Joseph Petersen (old) [ casz ] New: Joseph Petersen [ jetersen ]

            jetersen Joseph Petersen
            oleg_nenashev Oleg Nenashev
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: