Matrix Authorization Strategy

What's Changed

  • Require Jenkins 2.479.1 and Folders Plugin 6.976.v4dc79fb_c458d to be able to use Java EE 9 APIs. (#167)

Full Changelog: https://github.com/jenkinsci/matrix-auth-plugin/compare/matrix-auth-3.2.3...matrix-auth-3.2.4


Installation options

What's Changed

  • Require Jenkins 2.426.3 or newer. Don't use browser popups when adding a user or group. (#159)
  • Ensure compatibility with future YUI removal from Jenkins. (#152)
  • Update parent and plugin dependencies. (#164)

Installation options

🎁 Improvements

  • Adapt to jenkinsci/jenkins#8979 coming in Jenkins 2.449, ensuring continued correct tracking of ambiguous permissions through agent configuration changes (#158)

Installation options

🐛 Bugfixes

🔧 Internal Changes

  • Remove MatrixAuthorizationStrategyConfigurator#getLegacyPermissions (#153)

Installation options

💥 Major Changes 💥

This release changes the syntax for configuring permissions with Configuration as Code, Job DSL, and Pipeline plugins (#145, #144)

[!WARNING]
This is a breaking change for anyone currently configuring matrix authorization using these plugins.

In all three cases, the permissions list has been replaced with the entries list and a more elaborate element syntax decoupled from the serialized XML configuration format. See examples below for the new syntax.

Configuration as Code

authorizationStrategy:
  projectMatrix:
    entries:
      - user:
          name: "admin"
          permissions:
            - "Overall/Administer"
      - group:
          name: "authenticated"
          permissions:
            - "Overall/Read"

Job DSL

properties {
  authorizationMatrix {
    inheritanceStrategy {
        nonInheriting()
    }
    entries {
      group {
        name('authenticated')
        permissions([
          'Job/Read'
        ])
      }
    }
  }
}

Pipeline

properties([
  authorizationMatrix([
    group(name: 'authenticated', permissions: ['Job/Read']),
    user(name: 'alice', permissions: [
      'Job/Configure',
      'hudson.scm.SCM.Tag'
    ])
  ])
])

For a more comprehensive example of the new configuration syntax for Configuration as Code and Job DSL, see this file. Use the Pipeline Snippet Generator to see the new format for arguments to the authorizationMatrix(…) property.

[!NOTE]
This change only affects Job DSL configuring jobs using properties/authorizationMatrix (provided by Matrix Authorization Plugin), not authorization (provided by Job DSL Plugin). See JENKINS-67411 for known problems with the latter.

Internal Changes 🔧

  • Use newer parent POM to allow building on Java 21, also updating the Configuration as Code Plugin dependency from 1647.ve39ca_b_829b_42 to 1670.v564dc8b_982d0 (#147)
  • Remove obsolete code (#149)
  • Address test flakiness in Security2180Test (#150)

Installation options
  • Update look of permissions table to more nicely integrate with recent Jenkins UI improvements (#147)
    • Update require Jenkins version to 2.387.3 and add dependency on ionicons-api
  • Fix sidepanel links shown on the page listing ambiguous permissions assignments (#148)

Installation options
  • JENKINS-71368: Return the full list of groups from AuthorizationStrategy#getGroups even if the caller has low permissions, as can be the case with Active Directory Plugin (#141)
  • Internal: Update parent POM from 4.61 to 4.66 to upgrade HTMLUnit from 2.x to 3.x (#143)

Installation options

Installation options
  • JENKINS-67368: Refer to user ID instead of name where appropriate (#137)
  • Various internal fixes and improvements
    • Suppress Jenkins Security Scan warnings (#134)
    • Switch JCasC test to RealJenkinsRule (#136)
    • Upgrade Job DSL dependency to 1.82 (#135)
    • Bump parent pom (#138)

Installation options

Installation options
Installation options
Installation options
Installation options
Installation options
Installation options
Installation options
Installation options
Installation options
Installation options
Installation options
Installation options
Installation options
Installation options
Installation options
Installation options
Installation options
Installation options
Installation options
Installation options
Installation options
Installation options
Installation options
Installation options
Installation options
Installation options
Installation options
Installation options
Installation options
Installation options
Installation options
Installation options
Installation options
Installation options
Installation options
Installation options
Installation options
Installation options
Installation options
Installation options
Installation options
Installation options
Installation options
Installation options