Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Compatibility for ChainedServletFilter #9696

Merged
merged 2 commits into from
Sep 9, 2024
Merged

Conversation

basil
Copy link
Member

@basil basil commented Sep 5, 2024

Problem

As of #9672, oic-auth started failing with e.g.

java.lang.NoSuchMethodError: 'void hudson.security.ChainedServletFilter.<init>(javax.servlet.Filter[])'
        at org.jenkinsci.plugins.oic.OicSecurityRealm.createFilter(OicSecurityRealm.java:828)
        at hudson.security.SecurityRealm.createFilter(SecurityRealm.java:626)
        at hudson.security.HudsonFilter.reset(HudsonFilter.java:145)
        at jenkins.model.Jenkins.resetFilter(Jenkins.java:2820)
        at jenkins.model.Jenkins.setSecurityRealm(Jenkins.java:2802)
        at org.jenkinsci.plugins.oic.PluginTest.testLoginWithMissingIdTokenShouldBeRefused(PluginTest.java:911)
        at java.base/java.lang.reflect.Method.invoke(Method.java:569)
        at org.jvnet.hudson.test.JenkinsRule$1.evaluate(JenkinsRule.java:706)
        at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
        at java.base/java.lang.Thread.run(Thread.java:840)

I verified that Reverse Proxy Authentication is also affected:

java.lang.NoSuchMethodError: 'void hudson.security.ChainedServletFilter.<init>(javax.servlet.Filter[])'
	at org.jenkinsci.plugins.reverse_proxy_auth.ReverseProxySecurityRealm.createFilter(ReverseProxySecurityRealm.java:579)
	at hudson.security.SecurityRealm.createFilter(SecurityRealm.java:626)
	at hudson.security.HudsonFilter.reset(HudsonFilter.java:145)
	at jenkins.model.Jenkins.resetFilter(Jenkins.java:2820)
	at jenkins.model.Jenkins.setSecurityRealm(Jenkins.java:2802)
	at org.jenkinsci.plugins.reverse_proxy_auth.ReverseProxySecurityRealmTest.basicAuthenticate(ReverseProxySecurityRealmTest.java:52)

Evaluation

ChainedServletFilter broke binary compatibility.

Solution

Restore the original ChainedServletFilter (perfectly binary compatible) and add a new ChainedServletFilter2 for Jakarta.

Testing done

I also tested reverse-proxy-auth-plugin in PCT with 2.475, saw the failure mentioned above, and confirmed it was fixed with this PR. I will add reverse-proxy-auth to jenkinsci/bom once I finish adding oic-auth.

Proposed changelog entries

Restore compatibility with the OpenId Connect Authentication and Reverse Proxy Authentication plugins (regression in 2.475).

Proposed upgrade guidelines

N/A

Submitter checklist

Desired reviewers

@mention

Before the changes are marked as ready-for-merge:

Maintainer checklist

Fixes jenkinsci/oic-auth-plugin#387

@basil basil added the regression-fix Pull request that fixes a regression in one of the previous Jenkins releases label Sep 5, 2024
basil added a commit to basil/build-user-vars-plugin that referenced this pull request Sep 6, 2024
basil added a commit to basil/build-user-vars-plugin that referenced this pull request Sep 6, 2024
@basil
Copy link
Member Author

basil commented Sep 7, 2024

Thanks for the reviews, everyone! With Tuesday's release coming up in a few days and given the impact this regression has had on three plugins, I am going to start the countdown timer now with the intention to merge on Monday if there is no negative feedback. Please see the merge process documentation for more information about the merge process. Thanks!

@basil basil added the ready-for-merge The PR is ready to go, and it will be merged soon if there is no negative feedback label Sep 7, 2024
@timja timja merged commit 85d6358 into jenkinsci:master Sep 9, 2024
16 checks passed
@basil basil deleted the oic-auth branch September 9, 2024 15:30
basil added a commit to jenkinsci/build-user-vars-plugin that referenced this pull request Sep 10, 2024
janfaracik added a commit to janfaracik/jenkins that referenced this pull request Sep 12, 2024
commit c5128f4
Author: Jan Faracik <43062514+janfaracik@users.noreply.github.com>
Date:   Thu Sep 12 14:39:02 2024 +0100

    Use notice for views lacking jobs

commit bb7a30a
Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Date:   Thu Sep 12 09:02:10 2024 +0100

    Update dependency org.jenkins-ci.plugins:script-security to v1361 (jenkinsci#9719)

    Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

commit 5fc92c6
Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Date:   Thu Sep 12 09:01:59 2024 +0100

    Update jenkins/ath Docker tag to v5992 (jenkinsci#9720)

    Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

commit 36c155e
Author: Alexander Brandes <mc.cache@web.de>
Date:   Thu Sep 12 10:01:35 2024 +0200

    Automate the since updater (jenkinsci#7240)

    Co-authored-by: Tim Jacomb <timjacomb1@gmail.com>

commit 65f374c
Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Date:   Wed Sep 11 05:13:32 2024 -0600

    Update dependency org.jenkins-ci.plugins:junit to v1300 (jenkinsci#9716)

    Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

commit 35d7677
Author: Vincent Latombe <vincent@latombe.net>
Date:   Wed Sep 11 04:32:36 2024 +0200

    Introduce `HistoricalBuild` interface (jenkinsci#9674)

    * Introduce HistoricalBuild interface

    This allows to display Run-like objects in build history without having concrete Run present in the Jenkins instance.

    * Remove BuildHistoryWidget#entries.jelly

    * JDK17 level

    Co-authored-by: Jesse Glick <jglick@cloudbees.com>

    ---------

    Co-authored-by: Jesse Glick <jglick@cloudbees.com>

commit 78e132d
Author: Basil Crow <me@basilcrow.com>
Date:   Tue Sep 10 19:32:04 2024 -0700

    Build tests without forking the compiler (jenkinsci#9717)

commit 66a7810
Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Date:   Tue Sep 10 20:31:40 2024 -0600

    Update dependency org.jenkins-ci.plugins:cloudbees-folder to v6.951.v5f91d88d76b_b_ (jenkinsci#9715)

    Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

commit 53f3203
Author: Daniel Beck <1831569+daniel-beck@users.noreply.github.com>
Date:   Tue Sep 10 22:52:20 2024 +0200

    [JENKINS-73709] Build without forking the compiler (jenkinsci#9709)

    Co-authored-by: Daniel Beck <daniel-beck@users.noreply.github.com>

commit 905df3d
Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Date:   Tue Sep 10 09:40:46 2024 -0700

    Update dependency org.jenkins-ci.plugins:junit to v1299 (jenkinsci#9714)

    Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

commit 11c405b
Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Date:   Tue Sep 10 09:40:08 2024 -0700

    Update dependency org.apache.maven.plugins:maven-jarsigner-plugin to v3.1.0 (jenkinsci#9712)

    Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

commit eb6be17
Author: Jenkins Release Bot <66998184+jenkins-release-bot@users.noreply.github.com>
Date:   Tue Sep 10 14:10:20 2024 +0000

    [maven-release-plugin] prepare for next development iteration

commit 561231f
Author: Jenkins Release Bot <66998184+jenkins-release-bot@users.noreply.github.com>
Date:   Tue Sep 10 14:09:56 2024 +0000

    [maven-release-plugin] prepare release jenkins-2.476

commit 0c49380
Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Date:   Mon Sep 9 16:47:09 2024 -0700

    Update eslint monorepo to v9.10.0 (jenkinsci#9710)

    Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

commit 1b8c198
Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Date:   Mon Sep 9 11:19:46 2024 -0700

    Update dependency io.jenkins.plugins:font-awesome-api to v6.6.0-2 (jenkinsci#9708)

    Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

commit 85d6358
Author: Basil Crow <me@basilcrow.com>
Date:   Mon Sep 9 08:14:48 2024 -0700

    Compatibility for `ChainedServletFilter` (jenkinsci#9696)

commit 4334aa0
Author: Juan Jesús Alejo Sillero <juanjesusalejosillero@gmail.com>
Date:   Mon Sep 9 17:13:51 2024 +0200

    fix(i18n): correct typo in Spanish translation for 'Preparation' (jenkinsci#9702)

commit 2431b7c
Author: Markus Winter <m.winter@sap.com>
Date:   Mon Sep 9 17:13:20 2024 +0200

    [JENKINS-72988] validate displayname against items in the same ItemGroup (jenkinsci#9152)

    Co-authored-by: Kris Stern <krisstern@outlook.com>

commit bfcb874
Merge: b56e5d7 2f6d77c
Author: Vincent Latombe <vincent@latombe.net>
Date:   Mon Sep 9 16:57:03 2024 +0200

    Merge pull request jenkinsci#9645 from Vlatombe/with-console-url

commit b56e5d7
Merge: c05d756 6b88bfc
Author: Vincent Latombe <vincent@latombe.net>
Date:   Mon Sep 9 11:21:50 2024 +0200

    Merge pull request jenkinsci#9673 from Vlatombe/computerListener.onIdle

commit 2f6d77c
Merge: 49618a0 307f680
Author: Vincent Latombe <vincent@latombe.net>
Date:   Wed Sep 4 10:48:53 2024 +0200

    Merge branch 'master' into with-console-url

commit 6b88bfc
Author: Vincent Latombe <vincent@latombe.net>
Date:   Wed Aug 28 16:22:14 2024 +0200

    Spotless

commit ed93ad0
Author: Vincent Latombe <vincent@latombe.net>
Date:   Wed Aug 28 16:12:09 2024 +0200

    Revert "Call listener synchronously, but outside synchronized"

    This reverts commit 75242cf.

commit 75242cf
Author: Vincent Latombe <vincent@latombe.net>
Date:   Wed Aug 28 15:47:51 2024 +0200

    Call listener synchronously, but outside synchronized

commit 9823b8e
Author: Vincent Latombe <vincent@latombe.net>
Date:   Wed Aug 28 15:40:43 2024 +0200

    Execute ComputerListener#onIdle in another thread.

commit 64667af
Author: Vincent Latombe <vincent@latombe.net>
Date:   Wed Aug 28 09:54:25 2024 +0200

    Implement ComputerListener#onIdle

    Introduces a new computer listener fired whenever a Computer becomes idle.

commit 49618a0
Author: Vincent Latombe <vincent@latombe.net>
Date:   Fri Aug 23 08:14:22 2024 +0200

    Updating the test to note the behavioural change

commit 2d30cfc
Author: Vincent Latombe <vincent@latombe.net>
Date:   Thu Aug 22 17:20:38 2024 +0200

    Fix review

commit 44602bb
Author: Vincent Latombe <vincent@latombe.net>
Date:   Thu Aug 22 17:12:59 2024 +0200

    Typo spotted by @dwnusbaum

    Co-authored-by: Devin Nusbaum <dwnusbaum@users.noreply.github.com>

commit 39d30c8
Author: Vincent Latombe <vincent@latombe.net>
Date:   Tue Aug 13 15:04:12 2024 +0200

    Add WithConsoleUrl interface

    This simplifies the logic of `Functions#getConsoleUrl` and makes it pluggable.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
ready-for-merge The PR is ready to go, and it will be merged soon if there is no negative feedback regression-fix Pull request that fixes a regression in one of the previous Jenkins releases
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Unable to start Jenkins 2.475
6 participants