Commit Graph
38468 Commits
Author SHA1 Message Date
Jenkins Release Bot ff6ce68714 Merge remote-tracking branch 'origin/master' 2026-07-14 06:08:21 +00:00
Jenkins Release Bot 3eb1523b4e [maven-release-plugin] prepare for next development iteration 2026-07-14 06:08:19 +00:00
Jenkins Release Bot 203312f571 [maven-release-plugin] prepare release jenkins-2.573 jenkins-2.573 2026-07-14 06:08:12 +00:00
RealFakeAccount 1ed9b11983 Fix HttpSessionListener jakarta sessionDestroyed bridge delegating to sessionCreated (#27090) 2026-07-13 22:32:29 -06:00
AbdelHamdyGhanem 45244faa02 [JENKINS-75134] Clarify unclear Spanish translation for 'Unprotected URLs' blurb (#27048) 2026-07-13 22:32:15 -06:00
cac989e705 [JENKINS-69789] Address review feedback for password complexity rule (#27038)
* refactor: Address post-merge review feedback from daniel-beck

- Move password complexity classes from hudson.security to jenkins.security
- Fix special character regex: use \p{Punct} instead of [^a-zA-Z0-9]
  so spaces and Unicode letters are no longer treated as special chars
- Document special character examples on the config UI
- Add violations list to PasswordComplexityException for better UX
- Remove redundant checkMethod="post" (already the default)
- Move message keys to jenkins/security/Messages.properties
- Update copyright year to 2026

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix: Remove unused NonePasswordComplexityRule import

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* refactor: Add @Restricted(NoExternalUse.class) to built-in implementations

Plugins only need to extend PasswordComplexityRule — there is no need
to reference BasicPasswordComplexityRule or NonePasswordComplexityRule
directly.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* docs: Update @since to acknowledge package move from hudson.security

Per daniel-beck's feedback: document that these classes were originally
added in 2.572 and moved from hudson.security to jenkins.security in
this release, so plugin authors are aware of the breaking change.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: Daniel Beck <1831569+daniel-beck@users.noreply.github.com>
Co-authored-by: Mark Waite <mark.earl.waite@gmail.com>
2026-07-13 22:31:59 -06:00
Piyush Joshi d1f2bafb83 Fix flaky ProcessTreeTest#processProperlyKilledUnix by using a random sleep duration (#27080)
Fix flaky ProcessTreeTest#processProperlyKilledUnix

Resolves JENKINS-70781 by using a randomly generated sleep duration instead of a hardcoded 100000. This prevents the test from failing when orphaned sleep processes from previous aborted test runs are present in the host system.
2026-07-13 04:02:56 -06:00
renovate[bot] 8bac187a58 Update dependency com.puppycrawl.tools:checkstyle to v13.8.0 (#27078)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-13 04:02:08 -06:00
renovate[bot]andMark Waite 524141ad27 Update dependency eslint to v10.7.0 (#27076)
* Update dependency eslint to v10.7.0

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

* Update yarn.lock for 10.7.0

---------

Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Mark Waite <mark.earl.waite@gmail.com>
2026-07-13 04:01:52 -06:00
renovate[bot] e821b3985a Update Yarn to v4.17.1 (#27075)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-13 04:01:35 -06:00
renovate[bot] 2b0a2e788d Update dependency prettier to v3.9.5 (#27074)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-13 04:01:19 -06:00
renovate[bot] 63fb1f3a06 Update dependency io.jenkins.plugins:jackson3-api to v3.2.1-92.vd25c2e23c180 (#27073)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-13 04:00:59 -06:00
renovate[bot] e2a0eedaeb Update dependency @babel/cli to v8.0.4 (#27072)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-13 04:00:37 -06:00
Markus Winter 751195849a Refresh the status icons (#23904) 2026-07-12 09:46:52 +01:00
github-actions[bot]andtimja 45a78b5208 Fill in since annotations (#27057)
Co-authored-by: timja <21194782+timja@users.noreply.github.com>
2026-07-10 04:40:00 -06:00
renovate[bot] 2a2e1f8259 Update dependency io.jenkins.plugins:design-library to v444 (#27053)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-10 04:39:46 -06:00
renovate[bot] 799bdfd258 Update mina-sshd.version to v2.19.0 (#27052)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-10 04:39:27 -06:00
Jan Faracik 118c892af3 Fix 'Sure' text for experimental Manage Jenkins UI (#27055) 2026-07-09 21:37:54 +01:00
renovate[bot] 4fdc1b3d87 Update dependency webpack-cli to v7.2.1 (#27040)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-09 05:43:25 -06:00
renovate[bot] 891827b3ef Update stapler.version to v2098 (#27045)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-09 05:37:38 -06:00
renovate[bot] 0319facd81 Update Winstone and Jetty (#27044)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-09 05:37:25 -06:00
renovate[bot] 155bf738dd Update dependency webpack to v5.108.4 (#27039)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-09 05:36:50 -06:00
renovate[bot] 173f6d34d8 Update mheap/github-action-required-labels action to v5.6.0 (#27037)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-09 05:36:35 -06:00
AbdelHamdyGhanemandMark Waite 66068e11aa [JENKINS-1963] Poll scm timezone help (#27035)
* [JENKINS-1963] Clarify time zone used for SCM polling schedule

* Fix Prettier formatting

* Add trailing newline for Prettier

* Update core/src/main/resources/hudson/triggers/SCMTrigger/help.html

Co-authored-by: Mark Waite <mark.earl.waite@gmail.com>

---------

Co-authored-by: Mark Waite <mark.earl.waite@gmail.com>
2026-07-09 05:36:17 -06:00
Jenkins Release Bot 7a6cab92b3 [maven-release-plugin] prepare for next development iteration 2026-07-07 05:57:34 +00:00
Jenkins Release Bot abd3818ddc [maven-release-plugin] prepare release jenkins-2.572 jenkins-2.572 2026-07-07 05:57:28 +00:00
renovate[bot] 7038070873 Update dependency org.jenkins-ci.plugins:credentials to v1506 (#27030)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-06 16:27:36 -06:00
7fac9f8b2f [JENKINS-69789] Add password complexity rule extension point (#26774)
* [JENKINS-69789] Add configurable password complexity policy to HudsonPrivateSecurityRealm

Jenkins' built-in user database currently has no password complexity
requirements beyond non-empty and encoder limits. This makes it
difficult to meet enterprise security policies.

Add configurable password policy options (minimum length, require
uppercase/lowercase/digit/special character) via @DataBoundSetter
fields on HudsonPrivateSecurityRealm. The policy is enforced on both
user self-registration and admin password changes. All options default
to off for backward compatibility.

Closes #18323

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* [JENKINS-69789] Add password complexity rule extension point

Refactor password complexity validation from hardcoded fields to an
ExtensionPoint architecture. Add PasswordComplexityRule as a new
extension point that allows plugins to contribute custom password
validation strategies.

Include DefaultPasswordComplexityRule as a built-in implementation
with configurable minimum length and character type requirements
(uppercase, lowercase, digit, special character).

The rule is optional and configured via the Security settings UI
using a dropdown selector. When no rule is selected, no extra
password requirements are enforced, preserving backward compatibility.

Closes #18323

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Fix Spotless import ordering violation in Functions.java

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Potential fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* Add tests for password change flow with complexity rule

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Refactor PasswordComplexityRule per review feedback

- Remove PasswordComplexityRuleDescriptor, use Descriptor<PasswordComplexityRule>
- Remove getDescriptor() override from PasswordComplexityRule
- Change validate() to void, throw PasswordComplexityException
- Add NonePasswordComplexityRule to avoid null checks
- Use dropdownDescriptorSelector in config.jelly
- Remove getPasswordComplexityRuleDescriptors() from Functions.java
- Change default minimum length from 0 to 8
- Add readResolve() for backward compatibility
- Update tests for new validate() signature

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Remove @Restricted from DataBoundSetter to fix Stapler binding

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Fix Spotless import ordering in HudsonPrivateSecurityRealmTest

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Fix ATH test failures by setting a default for password complexity rule

When using <f:dropdownDescriptorSelector> for passwordComplexityRule without a default attribute, the UI implicitly selects the first descriptor alphabetically (DefaultPasswordComplexityRule) for new instances. This caused JenkinsDatabaseSecurityRealmTest.login_and_logout in the Acceptance Test Harness to unexpectedly enforce password complexity rules and fail when testing with simple passwords.

This commit explicitly sets the default passwordComplexityRule to NonePasswordComplexityRule via the default attribute in the Jelly UI, preserving the expected default behavior and fixing the ATH failures.

* Refactor password complexity tests per review feedback

- Move pure rule validation tests to core module as lightweight unit tests
  (no JenkinsRule needed) in DefaultPasswordComplexityRuleTest
- Add assertions on exception messages to verify user-actionable content
- Add tests for each individual character type requirement
- Add test verifying multiple violations are reported together
- Remove unused assertDoesNotThrow import from integration test

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Potential fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* Update core/src/main/resources/hudson/security/DefaultPasswordComplexityRule/config.jelly

Co-authored-by: James Nord <jtnord@users.noreply.github.com>

* Rename DefaultPasswordComplexityRule to BasicPasswordComplexityRule

Avoids confusion with "default" implying it is the default selection
(the actual default is NonePasswordComplexityRule).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Add real-time password validation on password change page

- Add doCheckPassword() to Details.DescriptorImpl for AJAX validation
- Change password inputs to f:password tags to enable auto-validation
- Handles Protector-encrypted values gracefully

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Revert real-time password validation on change page

The f:password tag renders as hidden input, breaking existing tests
that expect HtmlPasswordInput. Real-time validation on the password
change page requires a different approach and will be addressed
in a follow-up PR.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Fixed test case failure

* test: Address PR review by using allOf for multiple assertions

* feat: Introduce PasswordComplexityRuleDescriptor base type

* fix: Revert all() return type to avoid generic unchecked assignment

* fix: Add @POST to doCheckPassword and fix Spotless formatting

* fix: Replace deprecated getCheckUrl with toStemUrl to fix page nesting

The deprecated getCheckUrl() returns a JavaScript expression that
evaluates to a URL without a query string. When FormChecker.sendRequest
processes a POST request with no '?' in the URL, url.indexOf('?')
returns -1, causing url.substring(0, -1) to produce an empty string.
This makes fetch('') request the current page, whose full HTML response
gets inserted into the validation-error-area, triggering
Behaviour.applySubtree on the new content and causing infinite page
nesting on /user/{username}/security.

Switch to the modern getCheckMethod().toStemUrl() which returns a plain
URL, and add checkDependsOn="" so the frontend takes the modern code
path that correctly appends the field value as a query parameter.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* test: Add tests for doCheckPassword and null rule fallback

- Test doCheckPassword returns error for weak password
- Test doCheckPassword returns ok for strong password
- Test doCheckPassword returns ok when no rule configured
- Test doCheckPassword returns ok for empty password
- Test setPasswordComplexityRule(null) falls back to NoneRule

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix: Move null rule fallback test to integration test module

The setNullPasswordComplexityRuleFallsBackToNone test creates a
HudsonPrivateSecurityRealm instance which requires Jenkins runtime.
Move it from core unit tests to integration tests where JenkinsRule
provides the necessary environment.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: James Nord <jtnord@users.noreply.github.com>
2026-07-06 16:27:22 -06:00
Jan Faracik 70f6f0e835 Refine borders across Jenkins UI (#26974) 2026-07-06 17:29:57 +01:00
renovate[bot] c61f51cf5f Lock file maintenance (#27021)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-04 06:03:40 -06:00
Alex Tumanov 56573307e3 Keep modal dialogs fixed to the viewport (#27028) 2026-07-04 10:40:05 +01:00
renovate[bot] 75f014b027 Update dependency webpack to v5.108.3 (#27027)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-03 09:00:34 -06:00
renovate[bot] b49c706051 Update dependency io.jenkins.plugins:jackson3-api to v3.2.0-89.v014d02108ea_7 (#27025)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-03 09:00:04 -06:00
renovate[bot] 23925a40da Update dependency prettier to v3.9.4 (#27024)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-03 08:59:49 -06:00
renovate[bot] 8441844278 Update dependency postcss to v8.5.16 (#27023)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-03 08:59:36 -06:00
Alex TumanovandAlex Tumanov e96b210539 [JENKINS-70788] Limit frontend linters to Jenkins source directories (#27008)
Limit frontend linters to Jenkins source directories

Co-authored-by: Alex Tumanov <6143578+oleksii-tumanov@users.noreply.github.com>
2026-07-03 08:59:21 -06:00
Alex Tumanov afadae6df5 Fix Plugin Manager links without wiki URL (#26976)
Fix plugin manager links without wiki URL
2026-07-03 08:59:07 -06:00
fab7b78606 Restrict elements in PersistedList and COWL on deserialization (#26918)
Co-authored-by: Daniel Beck <daniel-beck@users.noreply.github.com>
Co-authored-by: Mark Waite <mark.earl.waite@gmail.com>
2026-07-03 08:58:35 -06:00
Daniel BeckandDaniel Beck 124fbf1b66 Prohibit deserialization of Object fields by default (#26915)
Co-authored-by: Daniel Beck <daniel-beck@users.noreply.github.com>
2026-07-03 08:56:51 -06:00
renovate[bot]andMark Waite e390a65c53 Update dependency webpack-cli to v7.1.0 (#27014)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Mark Waite <mark.earl.waite@gmail.com>
2026-07-01 10:08:07 -06:00
renovate[bot] 648d9d9c74 Update jenkins/ath Docker tag to v6703 (#27020)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-01 10:00:44 -06:00
renovate[bot] 0434976a4d Update dependency org.jenkins-ci.plugins:jackson2-api to v2.22.0-439.vb_b_43658d6176 (#27019)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-01 10:00:29 -06:00
renovate[bot] e0fc4cb247 Update dependency com.puppycrawl.tools:checkstyle to v13.7.0 (#27018)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-01 10:00:08 -06:00
renovate[bot] e00fc8c535 Update dependency io.jenkins.plugins:caffeine-api to v3.2.4-208.v7e2da_a_7db_82b_ (#27017)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-01 09:59:49 -06:00
renovate[bot] 5b862cbc1e Update dependency stylelint to v17.14.0 (#27013)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-01 09:59:17 -06:00
renovate[bot]andMark Waite 96a1a45d10 Update dependency prettier to v3.9.0 (#27012)
* Update dependency prettier to v3.9.0

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

* Use '</pre>' tag instead of inserting a line break in the tag

---------

Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Mark Waite <mark.earl.waite@gmail.com>
2026-07-01 09:59:02 -06:00
renovate[bot] b1b81aa554 Update dependency eslint to v10.6.0 (#27011)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-01 09:58:45 -06:00
renovate[bot] a53cd6cf38 Update dependency postcss-preset-env to v11.3.2 (#27010)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-01 09:58:27 -06:00
renovate[bot] a22d5cf278 Update dependency webpack to v5.108.1 (#26994)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-01 09:57:28 -06:00
Jan Faracik 603500ffc8 Make Nodes page wide in experimental Manage Jenkins UI (#26997) 2026-07-01 16:24:17 +01:00