31095 Commits

Author SHA1 Message Date
Stefan Guilhen 55126dc916 Fix temporary password not persisting UPDATE_PASSWORD for AD federated users
Closes #48877

Signed-off-by: Stefan Guilhen <sguilhen@redhat.com>
2026-05-26 10:41:31 -03:00
Sebastian Łaskawiec 3e8a1310d9 Enable configurable client_id parameter validation for federated client assertions (#48026)
Closes #48024


Signed-off-by: Sebastian Łaskawiec <sebastian.laskawiec@defenseunicorns.com>
2026-05-26 15:14:36 +02:00
Erik Jan de Wit 71e63e99dc moved AdminEnvironment to seperate file (#48039)
* moved AdminEnvironment to seperate file

fixes: #48038
Signed-off-by: Erik Jan de Wit <erikjan.dewit@gmail.com>

* code review

Signed-off-by: Erik Jan de Wit <erikjan.dewit@gmail.com>

---------

Signed-off-by: Erik Jan de Wit <erikjan.dewit@gmail.com>
2026-05-26 07:19:08 -04:00
Ricardo Martin 00afdeeb0b Use datatracker.ietf.org instead of www.rfc-editor.org for specs
Closes #49288

Signed-off-by: rmartinc <rmartinc@redhat.com>
2026-05-26 12:38:49 +02:00
Steven Hawkins 30a97da0f3 upgrade pnpm version (#48975)
* task: upgrading pnpm to 11.1.3

Signed-off-by: Steve Hawkins <shawkins@redhat.com>

* switching to 11.1.1

Signed-off-by: Steve Hawkins <shawkins@redhat.com>

---------

Signed-off-by: Steve Hawkins <shawkins@redhat.com>
2026-05-26 12:33:59 +02:00
Stefan Guilhen d0590bc9b9 Fix location of SCIM resources so IDs don't appear twice in the URL
Closes #49176

Signed-off-by: Stefan Guilhen <sguilhen@redhat.com>
2026-05-26 07:33:24 -03:00
Ricardo Martin 090549c7de Revert back to use Java 25 in FIPS CI scripts (#49290)
Closes #49194

Signed-off-by: rmartinc <rmartinc@redhat.com>
2026-05-26 12:07:38 +02:00
bu6n 3ed18221ec fix quick theme export to contain variables for both light and dark mode (#49125) (#49322)
Signed-off-by: bu6n <b@u6n.ch>
2026-05-26 09:00:23 +00:00
Dominik Schlosser 2e2d06dab7 [OID4VCI] Self-Signed x5c Bypasses Key Attestation Validation
Signed-off-by: Dominik Schlosser <dominik.schlosser@gmail.com>
2026-05-26 08:32:45 +02:00
Giuseppe Graziano 77b1d13578 add revoke endpoint to issued credentials APIs
Closes #46207

Signed-off-by: Giuseppe Graziano <g.graziano94@gmail.com>
2026-05-26 08:28:04 +02:00
Martin Bartoš 629e86afd2 Disable the Account UI when the ACCOUNT feature is disabled (#48807)
Closes #48806

Signed-off-by: Martin Bartoš <mabartos@redhat.com>
nightly
2026-05-25 15:37:15 +02:00
Angel-Tornero 577bddb8e5 Fix broken SAML 2.0 specification links in documentation
Closes #48611

Signed-off-by: Angel-Tornero <angeltornerohdez@gmail.com>
2026-05-25 14:42:22 +02:00
Michal Vavřík 8171999894 feat(admin api v2): stricter Client v2 contracts (#48935)
* Closes: https://github.com/keycloak/keycloak/issues/48786
* Changes:

| Schema#Property | New Validation Constraint | Reasoning |
|-----------------|--------------------------|-----------|
| BaseClientRepresentation#clientId | `@Size(min=1, max=255)` | DB VARCHAR(255) |
| BaseClientRepresentation#displayName | `@Size(max=255)` | DB NVARCHAR(255) |
| BaseClientRepresentation#description | `@Size(max=255)` | DB NVARCHAR(255) |
| BaseClientRepresentation#appUrl | `@Size(max=255)` | DB VARCHAR(255) |
| BaseClientRepresentation#redirectUris | `@Size(max=100)` on set, `@Size(max=255)` on elements | DB VARCHAR(255) per element, bound collection |
| BaseClientRepresentation#roles | `@Size(max=300)` on set, `@Size(max=255)` on elements | DB VARCHAR(255) per element, bound collection |
| OIDCClientRepresentation#webOrigins | `@Size(max=100)` on set, `@Size(max=255)` on elements | DB VARCHAR(255) per element, bound collection |
| OIDCClientRepresentation#webOrigins | `@ValidWebOrigin` | RFC 6454 format, invalid origins silently break CORS |
| OIDCClientRepresentation#serviceAccountRoles | `@Size(max=300)` on set, `@Size(max=255)` on elements | DB VARCHAR(255) per element, bound collection |
| OIDCClientRepresentation.Auth#method | `@NotBlank` | must be specified when auth object is present |
| OIDCClientRepresentation.Auth#method | `@ValidAuthMethod` | open SPI, dynamic check against registered providers |
| OIDCClientRepresentation.Auth#secret | `@Size(min=6, max=255)` | DB VARCHAR(255), min=6 prevents trivially weak secrets |
| OIDCClientRepresentation.Auth#certificate | `@Size(max=65536)` | NCLOB unlimited, practical upper bound |
| OIDCClientRepresentation (class-level) | `@ConfidentialFlowsRequireAuth` | SERVICE_ACCOUNT/TOKEN_EXCHANGE fail at runtime without auth |
| OIDCClientRepresentation (class-level) | `@RedirectFlowsRequireUris` | STANDARD/IMPLICIT fail at runtime without redirect URIs |
| OIDCClientRepresentation (class-level) | `@ServiceAccountRolesRequireFlow` | roles silently ignored without SERVICE_ACCOUNT flow |
| SAMLClientRepresentation#nameIdFormat | type changed to enum `NameIdFormat` | SAML 2.0 spec frozen since 2005, unlikely to change |
| SAMLClientRepresentation#signatureAlgorithm | type changed to enum | enum could change due to PQC, but we can simply update enum |
| SAMLClientRepresentation#signatureCanonicalizationMethod | `@ValidCanonicalizationMethod` | finite set from JDK constants, W3C standard unchanged since 2008 |
| SAMLClientRepresentation#signingCertificate | `@Size(max=65536)` | NCLOB unlimited, practical upper bound |

Signed-off-by: Michal Vavřík <michal.vavrik@aol.com>
2026-05-25 07:48:48 +00:00
jimmychakkalakal 16b518b52d Issued credentials: Update db schema and admin rest api (#49201)
closes #46204



Signed-off-by: Jimmy Chakkalakal <jimmy.chakkalakal@ibm.com>
Co-authored-by: Marek Posolda <mposolda@gmail.com>
2026-05-25 09:41:15 +02:00
Dominik Schlosser a1bd1ab855 Introduce mechanism for different trust material sources (#48869)
closes #48269



Signed-off-by: Dominik Schlosser <dominik.schlosser@gmail.com>
Signed-off-by: mposolda <mposolda@gmail.com>
Co-authored-by: mposolda <mposolda@gmail.com>
2026-05-25 08:12:28 +02:00
Ricardo Martin 94dcc24a8d Upgrade playwright to avoid hangs on CI
Closes #49274

Signed-off-by: rmartinc <rmartinc@redhat.com>
2026-05-23 19:54:51 +02:00
Steven Hawkins 26ef6d1b08 task: using a beanparam for client listing options (#49074)
* task: using a beanparam for client listing options

closes: #48650

Signed-off-by: Steve Hawkins <shawkins@redhat.com>

* just adding fluent methods

Signed-off-by: Steve Hawkins <shawkins@redhat.com>

---------

Signed-off-by: Steve Hawkins <shawkins@redhat.com>
2026-05-22 19:54:20 +02:00
Steven Hawkins 2ffb8b676e fix: prevent service account name from being set in multi-namespace mode (#49036)
closes: #48382

Signed-off-by: Steve Hawkins <shawkins@redhat.com>
2026-05-22 19:40:31 +02:00
Steven Hawkins aea6b24242 fix: allowing the general use of synthetic wildcards (#48223)
also simplifying datasources logic

closes: #48214

Signed-off-by: Steve Hawkins <shawkins@redhat.com>
2026-05-22 17:22:38 +00:00
Giuseppe Graziano 36513bae36 show/update credential attributes in admin/account ui (#49218)
Closes #48926

Signed-off-by: Giuseppe Graziano <g.graziano94@gmail.com>
2026-05-22 15:48:56 +02:00
AndyMunro 6b3241ea1f Fix Themes cross-reference
Closes #49222

Signed-off-by: AndyMunro <amunro@redhat.com>
2026-05-22 15:00:06 +02:00
Kosiorkosa47 c3f34c3515 Tighten UNSAFE_PATH_PATTERN against encoded path-traversal terminators (#49000)
* Tighten UNSAFE_PATH_PATTERN against encoded path-traversal terminators

Fixes #48978

Extends the regex to cover encoded forms that previously bypassed
detection:
  - %3B / %3b (encoded semicolon)
  - %09, %0A, %0D, %00 (control characters)
  - %252E (double-encoded dot)

These encodings do not produce actual path traversal on conformant
servers per RFC 3986 (percent-encoded characters are literals, not
delimiters), but are semantically close enough to the patterns the
regex was designed to block to warrant defense-in-depth coverage.

The end-of-input anchor ($) is moved into the terminator class to
collapse the two pattern alternatives into one, keeping the diff
minimal.

Test changes:
  - 8 new assertions covering encoded semicolons, control character
    terminators, and double-encoded dots.
  - 3 prior assertEquals flipped to assertNull (lines that previously
    asserted %252E%252E/, %252E%252E/#fragment, and ..%3Bsomething/
    were allowed are now expected to be blocked).
  - 1 new negative test confirming %3B as legitimate path content (not
    following a parent-folder sequence) still resolves.

Triple-encoded variants (e.g., %25252E) remain allowed; out of scope
for this issue.

Signed-off-by: Michał Kosiorek <michal.kosiorek@arklink.co>

* Update OAuthRedirectUriTest expectations for double-encoded dots

Follow-up to 36b0b10dd2 — Base IT (6) CI run for #49000 caught a
cross-module integration test that needed updating alongside the
regex change. Local verification of the previous commit covered the
services module (RedirectUtilsTest); testsuite/integration-arquillian
was outside that scope, so the existing OAuthRedirectUriTest.testWildcard
expectations for %252E%252E variants didn't flip with the regex.

Four assertions in testWildcard flipped from true → false to match the
Option A semantic introduced in 36b0b10dd2 (double-encoded dots are
now blocked by UNSAFE_PATH_PATTERN):

  http://example.com/foo/%252E%252E/
  http://example.com/foo/%252E%252E/?some_query_param=some_value
  http://example.com/foo/%252E%252E/?encodeTest=a%3Cb
  http://example.com/foo/%252E%252E/#encodeTest=a%3Cb

Triple-encoded (%25252E) and septuple-encoded variants remain
expected:true — recursive decoding is explicitly out of scope for
#48978.

Verified locally:
  - mvn -pl services -Dtest=RedirectUtilsTest test → 11/11 green.
  - Direct regex match against the four flipped URIs confirms
    UNSAFE_PATH_PATTERN matches each rawPath, mechanically equivalent
    to the verifyRedirectUri code path exercised by the arquillian test.

Refs #48978

Signed-off-by: Michał Kosiorek <michal.kosiorek@arklink.co>

---------

Signed-off-by: Michał Kosiorek <michal.kosiorek@arklink.co>
2026-05-21 17:23:27 +02:00
Ryan Emerson 4090a86495 Remove explicit --shutdown-timeouts configuration from proxy example configurations
Closes #49177

Signed-off-by: Ryan Emerson <remerson@ibm.com>
2026-05-21 16:08:34 +02:00
Pedro Ruivo 8d24c2f13e Prevent access to the Admin API from external IP addresses for HAProxy
Closes #48684

Signed-off-by: Pedro Ruivo <1492066+pruivo@users.noreply.github.com>
Co-authored-by: Pedro Ruivo <1492066+pruivo@users.noreply.github.com>
2026-05-21 16:01:01 +02:00
dagecko 0e54bf11e4 fix: extract 12 unsafe expression(s) to env vars
Automated security fixes applied by Runner Guard (https://github.com/Vigilant-LLC/runner-guard).

Signed-off-by: Chris Nyhuis <cnyhuis@vigilantnow.com>
2026-05-21 15:32:43 +02:00
Ricardo Martin 7a76787e3e Reorder X509 validation to check revocation after trust
Close #46742

Signed-off-by: rmartinc <rmartinc@redhat.com>
2026-05-21 15:30:03 +02:00
Martin Kanis 3b940e65b5 Account API: Resource sharing endpoints ignore userManagedAccessAllowed realm setting
Closes #48987

Signed-off-by: Martin Kanis <mkanis@ibm.com>
2026-05-21 15:28:04 +02:00
Martin Kanis ba5d4bf165 Account resource sharing resolves recipient by username before email, granting access to wrong user
Closes #49086

Signed-off-by: Martin Kanis <mkanis@ibm.com>
2026-05-21 15:27:30 +02:00
Giuseppe Graziano 4a1defaeab adds missing tests to TokenIntrospectionTest
Closes #49208

Signed-off-by: Giuseppe Graziano <g.graziano94@gmail.com>
2026-05-21 14:47:01 +02:00
Ruchika Jha f94a4a9a67 Traefik reencrypt documentation based on the quickstart
Closes keycloak/keycloak#48748

Signed-off-by: Alexander Schwartz <alexander.schwartz@ibm.com>
Co-authored-by: Alexander Schwartz <alexander.schwartz@ibm.com>
2026-05-21 14:30:35 +02:00
Šimon Vacek feca053c2e Refactor legacy test suite's ExportImportResource (#48967)
Closes: #48966

Signed-off-by: Simon Vacek <simonvacky@email.cz>
2026-05-21 09:15:19 +00:00
mposolda 1637e10ddf [OID4VCI] Simplify JpaUserProvider.updateVerifiableCredential . Make sure OID4VCExportImportTest asserts equality of imported credentials
closes #49199

Signed-off-by: mposolda <mposolda@gmail.com>
2026-05-21 10:52:42 +02:00
Václav Muzikář 2a86a960c7 Add area/admin/api-v2 to cloud-native team (#48639)
Signed-off-by: Václav Muzikář <vmuzikar@ibm.com>
2026-05-21 10:44:32 +02:00
Šimon Vacek 0a7fff7102 Test migration util - Migrate runOnServer (#49170)
Closes: #49169

Signed-off-by: Simon Vacek <simonvacky@email.cz>
2026-05-21 10:14:04 +02:00
rmartinc 69b3503a0f Use runOnServerMaster on LightWeightAccessTokenTest
Closes #49192

Signed-off-by: rmartinc <rmartinc@redhat.com>
2026-05-21 09:41:12 +02:00
Thomas Diesler 7c5192c0e0 [OID4VCI-HAIP] Revisit ABCA in connection with fapi-2-dpop-security-profile
closes #49123

Signed-off-by: Thomas Diesler <tdiesler@proton.me>

-- Allow http (instead of https) requests to localhost
-- Add oid4vc-haip-profile (based on fapi-2-dpop-security-profile) to test base
2026-05-21 08:53:47 +02:00
jimmychakkalakal 5778a322fc Support for user attributes and updating them (#49066)
Closes #48578


Signed-off-by: Jimmy Chakkalakal <jimmy.chakkalakal@ibm.com>
2026-05-21 08:42:11 +02:00
Erik Jan de Wit 27262be569 fix for service account role management in admin v2 (#48166)
* fix for service account role management in admin v2

fixes: #47966
Signed-off-by: Erik Jan de Wit <erikjan.dewit@gmail.com>

* fixed merge error

Signed-off-by: Erik Jan de Wit <erikjan.dewit@gmail.com>

* fix test

Signed-off-by: Erik Jan de Wit <erikjan.dewit@gmail.com>

* fixed build error

Signed-off-by: Erik Jan de Wit <erikjan.dewit@gmail.com>

* fixed tests

Signed-off-by: Erik Jan de Wit <erikjan.dewit@gmail.com>

* Remove unused RealmAdminResource from DefaultClientsApi and DefaultAdminApi

Signed-off-by: Peter Zaoral <pzaoral@redhat.com>

* Update rest/admin-v2/services/src/main/java/org/keycloak/services/client/DefaultClientService.java

Co-authored-by: Peter Zaoral <pepo48@gmail.com>
Signed-off-by: Erik Jan de Wit <edewit@redhat.com>

* also update the context

Signed-off-by: Erik Jan de Wit <erikjan.dewit@gmail.com>

* fix merge error

Signed-off-by: Erik Jan de Wit <erikjan.dewit@gmail.com>

* revert change

Signed-off-by: Erik Jan de Wit <erikjan.dewit@gmail.com>

* Update rest/admin-v2/services/src/main/java/org/keycloak/rest/admin/api/DefaultAdminApi.java

Co-authored-by: Peter Zaoral <pepo48@gmail.com>
Signed-off-by: Erik Jan de Wit <edewit@redhat.com>

* Update rest/admin-v2/services/src/main/java/org/keycloak/rest/admin/api/DefaultAdminApi.java

Co-authored-by: Peter Zaoral <pepo48@gmail.com>
Signed-off-by: Erik Jan de Wit <edewit@redhat.com>

---------

Signed-off-by: Erik Jan de Wit <erikjan.dewit@gmail.com>
Signed-off-by: Peter Zaoral <pzaoral@redhat.com>
Signed-off-by: Erik Jan de Wit <edewit@redhat.com>
Co-authored-by: Peter Zaoral <pzaoral@redhat.com>
Co-authored-by: Peter Zaoral <pepo48@gmail.com>
2026-05-21 06:30:16 +00:00
Pedro Igor 492d1f04cd Enforce access check when resolving users during client scope evaluation (#49124)
Closes CVE-2026-37978

Signed-off-by: Pedro Igor <pigor.craveiro@gmail.com>
2026-05-21 08:01:46 +02:00
Šimon Vacek 440f9a90f2 Move the rest of TestingResource methods to a utils-shared helper class (1/2) (#48722)
* Move the rest of TestingResource methods to a utils-shared helper class (1/2)

Closes: #48708

Signed-off-by: Simon Vacek <simonvacky@email.cz>

* rename runOnServer field

Signed-off-by: Simon Vacek <simonvacky@email.cz>

* remove realm name from method input

Signed-off-by: Simon Vacek <simonvacky@email.cz>

---------

Signed-off-by: Simon Vacek <simonvacky@email.cz>
2026-05-21 05:55:20 +00:00
Thomas DELORGE a988875ac4 docs(workflows): fix offboarding example revoke-role role list format
Closes #49140

The revoke-role step expects multivalued role names, not a
comma-separated string.

Signed-off-by: Thomas DELORGE <thomas.delorge@orbeet.io>
2026-05-20 23:31:45 +02:00
Giuseppe Graziano a1405663f7 Token introspection now validates audience claim. UserInfo endpoint rejects lightweight access tokens.
Closes #49113

Signed-off-by: Giuseppe Graziano <g.graziano94@gmail.com>
2026-05-20 18:23:06 +02:00
Pedro Ruivo 23bac7b976 Add SPI option to disable FD_SOCK2 failure detection
Closes #49148

Signed-off-by: Pedro Ruivo <1492066+pruivo@users.noreply.github.com>
Co-authored-by: Pedro Ruivo <1492066+pruivo@users.noreply.github.com>
2026-05-20 15:10:59 +00:00
vramik 87160a4e84 Missing and incorrect permission checks on organization invitation endpoints
Closes #49069

Signed-off-by: vramik <vramik@redhat.com>
2026-05-20 11:22:13 -03:00
mposolda 6ef5a79876 [OID4VCI] Integration of user verifiable-credentials with credentials-endpoint and credential-offers
closes #48547

Signed-off-by: mposolda <mposolda@gmail.com>
2026-05-20 16:06:19 +02:00
Pedro Ruivo 228286f570 Enable JGroups message stats
Closes #49163

Signed-off-by: Pedro Ruivo <1492066+pruivo@users.noreply.github.com>
Co-authored-by: Pedro Ruivo <1492066+pruivo@users.noreply.github.com>
2026-05-20 15:57:06 +02:00
Pedro Ruivo 75bc048774 Disable single thread sender in JGroups
Closes #49149

Signed-off-by: Pedro Ruivo <1492066+pruivo@users.noreply.github.com>
Co-authored-by: Pedro Ruivo <1492066+pruivo@users.noreply.github.com>
2026-05-20 15:55:36 +02:00
Thomas Diesler 6aeccb28cd [OID4VCI-HAIP] Treat attestation-based clients as confidential (#49155)
closes #49153
closes #48267


Signed-off-by: Thomas Diesler <tdiesler@proton.me>
2026-05-20 14:50:43 +02:00
rmartinc 59330ad543 Downgrade java version to 21 for the FIPS jobs
Closes #49151

Signed-off-by: rmartinc <rmartinc@redhat.com>
2026-05-20 13:44:14 +02:00
rmartinc d0e0b0f1f7 Use EventAssertion in some remaining tests.
Closes #49142

Signed-off-by: rmartinc <rmartinc@redhat.com>
2026-05-20 13:44:14 +02:00