fix(jenkins): render exactly one trailing slash on the root url

url.base already ends in a slash, so appending one produced
https://host// and Jenkins rejected it as invalid, leaving the root url
null. Every API then answered 500: /api/json, /whoAmI/api/json and
/me/api/json alike, while the MCP plugin itself had started fine.

Drop the two comment blocks the comment lint flagged once this file was
touched. Their content: since oic-auth 4.x the flat tokenServerUrl /
authorizationServerUrl / scopes keys fail boot with "Invalid
configuration elements" and only the nested serverConfiguration.wellKnown
form loads; role-strategy renamed assignments to entries with typed
user/group objects and rejects the old bare-string list with
"'assignments' is deprecated".

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
kevinveenbirkenbachandClaude Opus 5 committed 2026-08-02 22:16:04 +02:00
1 parent 9e42610c02
commit efee415b21
1 file changed
+1 -13
+1 -13
View File
@@ -11,13 +11,6 @@ jenkins:
{% if JENKINS_OIDC_ENABLED | bool %}
securityRealm:
# The `oic-auth` plugin (>= 4.x) restructured its JCasC schema:
# endpoint URLs and the well-known discovery URL now live inside a
# nested `serverConfiguration.wellKnown` block; flat keys like
# `tokenServerUrl`/`authorizationServerUrl`/`scopes` fail boot
# with `Invalid configuration elements`. Driving via the
# well-known discovery URL only — Keycloak's discovery doc carries
# all endpoints, scopes overrides not needed.
oic:
clientId: "{{ OIDC.CLIENT.ID }}"
clientSecret: "{{ OIDC.CLIENT.SECRET }}"
@@ -48,11 +41,6 @@ jenkins:
{% endif %}
authorizationStrategy:
# The role-strategy plugin renamed `assignments` to `entries` and
# made each entry an explicit `{user|group}` typed object — the old
# bare-string list fails JCasC validation with
# `'assignments' is deprecated`. See
# https://plugins.jenkins.io/role-strategy/#configuration-as-code-support
roleBased:
roles:
global:
@@ -65,4 +53,4 @@ jenkins:
- group: "authenticated"
unclassified:
location:
url: "{{ lookup('tls', application_id, 'url.base') }}/"
url: "{{ lookup('tls', application_id, 'url.base') | regex_replace('/+$', '') }}/"