Commit graph

5888 commits

Author SHA1 Message Date
Steven Hawkins
bb10a2c81c
fix: combining / removing static and initialization logic (#46918)
closes: #46917

Signed-off-by: Steve Hawkins <shawkins@redhat.com>
Signed-off-by: Steven Hawkins <shawkins@redhat.com>
2026-04-07 13:52:37 -03:00
Stian Thorgersen
8a1c921415
Prevent creating policies if they don't reference only the owner resource (#496) (#47803)
Closes CVE-2026-4636

Signed-off-by: Pedro Igor <pigor.craveiro@gmail.com>
Co-authored-by: Pedro Igor <pigor.craveiro@gmail.com>
2026-04-07 12:46:15 +02:00
Christopher Leigh
bf83d75191
Resolve scope (#43339)
* resolve org from scope instead of client session note (#42836)

Signed-off-by: Chris Leigh <3805338+Tungsten78@users.noreply.github.com>

* Keep track of current organization when refreshing tokens

Signed-off-by: Pedro Igor <pigor.craveiro@gmail.com>

* Handling select organization when querying userinfo and introspection endpoints

Signed-off-by: Pedro Igor <pigor.craveiro@gmail.com>

* More tests

Signed-off-by: Pedro Igor <pigor.craveiro@gmail.com>

* Test to check prevent single to all

Signed-off-by: Pedro Igor <pigor.craveiro@gmail.com>

* Error when changing scopes to ANY

Signed-off-by: Pedro Igor <pigor.craveiro@gmail.com>

---------

Signed-off-by: Chris Leigh <3805338+Tungsten78@users.noreply.github.com>
Signed-off-by: Pedro Igor <pigor.craveiro@gmail.com>
Co-authored-by: Pedro Igor <pigor.craveiro@gmail.com>
2026-04-07 12:17:13 +02:00
Marek Posolda
f29249f3d7
Improve performance of scope processing in TokenManager. Limit for maximum length of OIDC parameters in Token endpoint (#478) (#47799)
closes #47716
Closes CVE-2026-4634


(cherry picked from commit b455ee4f28)

Signed-off-by: mposolda <mposolda@gmail.com>
2026-04-07 11:17:17 +02:00
Marek Posolda
18dbc74960
Adding namespaces for single-use cache entries for PAR and OAuth code (#471) (#47798)
closes #47719
closes CVE-2026-4282
closes CVE-2026-4325


(cherry picked from commit 9046f20112)

Signed-off-by: mposolda <mposolda@gmail.com>
2026-04-07 11:13:35 +02:00
Martin Bartoš
daf9e69a9f
NPE when using HttpClient and enabled tracing (#47687)
Closes #47379

Signed-off-by: Martin Bartoš <mabartos@redhat.com>
2026-04-07 10:13:54 +02:00
Ricardo Martin
103433eab1
Consider path params in the unsafe path for RedirectUtils (#436) (#47788)
Closes CVE-2026-3872

Signed-off-by: rmartinc <rmartinc@redhat.com>
2026-04-07 07:36:38 +00:00
Pedro Igor
049569b9fa
Persist kid for java keystore key providers
Closes #47495

Signed-off-by: Pedro Igor <pigor.craveiro@gmail.com>
2026-04-07 08:20:25 +02:00
RafaelWO
b6743de80d Add createdAfter/createdBefore filter to GET /admin/realms/{realm}/users
Add server-side filtering of users by creation timestamp on the admin
REST API. This avoids the need to retrieve all users and filter
client-side, which is inefficient for large realms.

Two optional query parameters are added to both the user list and count
endpoints. They accept either ISO-8601 date strings (yyyy-MM-dd) or
epoch milliseconds, consistent with the existing events API date
filtering via DateUtil.

Closes #43829

Signed-off-by: RafaelWO <weingartner.rafael@hotmail.com>
2026-04-06 10:10:54 -03:00
Steven Hawkins
be8d5eaa3b
fix: using synchronization to prevent shutdown
closes: #47487

Signed-off-by: Steve Hawkins <shawkins@redhat.com>
2026-04-02 21:40:57 +00:00
kvfi
b6027fe65d Fix null username creation when OIDC/SAML attribute mappers references missing attribute
Closes #44598

Signed-off-by: kvfi <mail@ouafi.net>
Signed-off-by: Stefan Guilhen <sguilhen@redhat.com>
2026-04-02 18:34:14 -03:00
Ryan Emerson
00c0dee3c4 Display Javascript policy description and code in admin UI
Closes #47452

Signed-off-by: Ryan Emerson <remerson@ibm.com>
2026-04-02 12:37:56 -03:00
Benjamin DeWeese
a9f571d940
Implementing locale based theme-description translation
Closes #47038

Signed-off-by: Benjamin DeWeese <bdeweesevans@gmail.com>
Signed-off-by: Alexander Schwartz <alexander.schwartz@ibm.com>
Co-authored-by: Alexander Schwartz <alexander.schwartz@ibm.com>
2026-04-02 11:40:45 +02:00
Thomas Diesler
de720a1b43
[OID4VCI] Initial public client for credential issuance (#45855)
closes #47280


Signed-off-by: Thomas Diesler <tdiesler@proton.me>
2026-04-01 18:48:40 +02:00
Stefan Guilhen
031b6604a2 Ensure all workflow steps are described in the documentation.
- also change name of add/remove required action providers to better align with other step providers.

Closes #47655

Signed-off-by: Stefan Guilhen <sguilhen@redhat.com>
2026-04-01 09:10:59 -03:00
vramik
cb8b6e3e18 SCIM Authorization Bypass in User Group Management
Closes #47536

Signed-off-by: vramik <vramik@redhat.com>
2026-04-01 07:36:34 -03:00
forkimenjeckayang
8f90f98ab6
[OID4VCI] Make cryptographic binding & proofs explicitly configurable and spec-compliant (#47257)
closes #45724


Signed-off-by: forkimenjeckayang <forkimenjeckayang@gmail.com>
2026-04-01 12:14:30 +02:00
Giuseppe Graziano
46d1c4fa5a Sender constrained tokens for token exchange
Closes #46092

Signed-off-by: Giuseppe Graziano <g.graziano94@gmail.com>
2026-04-01 10:23:51 +02:00
Laurids Møller Jepsen
3e3191d60c Enable use of kc_idp_hint in Pushed Authorization Requests.
The client can select which Identity Provider to use for user authentication by including an Identity Provider alias in a "kc_idp_hint" parameter in a Pushed Authorization Request.

Closes #47229

Signed-off-by: Laurids Møller Jepsen <laurids.jepsen@cryptomathic.com>
2026-04-01 09:32:46 +02:00
Yike Gao
b941902fcd
Fixed inconsistent auth error (#46607)
Closes #46517


Signed-off-by: Yike Gao <yikegao8@gmail.com>
2026-03-31 15:26:23 +02:00
Awambeng
72c3a267ff
[OID4VCI] Fix NullPointerException in OID4VCI mapper metadata generation (#47608)
Closes #47544


Signed-off-by: Awambeng Rodrick <awambengrodrick@gmail.com>
2026-03-31 11:18:41 +02:00
Asish Kumar
72758a342d Exclude @context from credential definition for non-JSON-LD formats
Only include @context in credential_definition when the credential
format is ldp_vc, as required by the OID4VCI specification. For
jwt_vc_json format, @context is now excluded by setting it to null
in JwtCredentialBuilder. The LDCredentialBuilder now explicitly
contributes credential definition metadata including @context.

Closes #47045

Signed-off-by: Asish Kumar <officialasishkumar@gmail.com>
2026-03-30 19:31:53 +02:00
Michal Růžička
4d5f69098b
Fix use of Optional to actually guard against NPE (#47551)
closes #47572


Signed-off-by: Michal Růžička <michal.ruza@gmail.com>
2026-03-30 19:30:12 +02:00
Stefan Guilhen
d24d2697aa Add SPI option to setup the start time of the workflows step runner task
Closes #47540

Signed-off-by: Stefan Guilhen <sguilhen@redhat.com>
2026-03-27 16:30:15 -03:00
Thomas Diesler
8cb5f95894 [OID4VCI] Migrate OID4VCIssuerWellKnownProviderTest
Signed-off-by: Thomas Diesler <tdiesler@proton.me>
2026-03-27 16:26:55 +01:00
Ricardo Martin
f2c7c673df
Add SAML url attributes to the SecureClientUrisPatternExecutor (#47514)
Closes #46745


Signed-off-by: rmartinc <rmartinc@redhat.com>
2026-03-27 14:53:34 +01:00
Thomas Diesler
52485c0dd1 [OID4VCI-HAIP] Pass oid4vci-1_0-issuer-fail-invalid-key-attestation-signature
Signed-off-by: Thomas Diesler <tdiesler@proton.me>
2026-03-27 14:03:51 +01:00
Steven Hawkins
0780d56730
fix: reusing the apache builder to retain retry config (#47402)
closes: #47379

Signed-off-by: Steve Hawkins <shawkins@redhat.com>
2026-03-27 12:59:22 +01:00
Awambeng Rodrick
b99f1b5842 fix(oid4vc): use SecureRandom for nonce and time claim generation
- replace non-cryptographic PRNG usage (java.util.Random, Math.random)
- use SecureRandom in JwtCNonceHandler for nonce length generation
- use SecureRandom in TimeClaimNormalizer for time claim randomization
- introduce centralized secure random utility (SecretGenerator)
- ensure uniform and unpredictable randomness in security-sensitive flows

Closes #47271

Signed-off-by: Awambeng Rodrick <awambengrodrick@gmail.com>

Address review comments from @IngridPuppet

Signed-off-by: Awambeng Rodrick <awambengrodrick@gmail.com>
2026-03-26 17:44:47 +01:00
Simon Levermann
f4225b4f9b
Introduce traceId to freemarker attributes
Closes #44090
Closes #34435

Signed-off-by: Simon Levermann <github@simon.slevermann.de>
2026-03-26 17:42:32 +01:00
Stian Thorgersen
af942df712
Verify resource indicator syntax in authz and token endpoint (#47438)
Closes #47116, closes #47119

Signed-off-by: stianst <stianst@gmail.com>
2026-03-26 10:35:17 +01:00
Or Nissan
a3cc3c40fc Domain matching case-insensitive in organization identity provider
Signed-off-by: Or Nissan <orn@semperis.com>
2026-03-25 17:27:15 -03:00
Alexey Skosyrskiy
56cdb6b8ef Optimize composite client role mappings endpoint and migrate test
Pre-compute the full effective role set once in
ClientRoleMappingsResource.getCompositeClientRoleMappings() using
RoleUtils.getDeepRoleMappings(), then filter by client. This replaces
the previous O(C*M*D) approach of calling user.hasRole() for every
client role, which recursively expanded composites without memoization.

RoleUtils.getDeepRoleMappings(RoleMapperModel) is introduced to handle
both RoleMapperModel implementations correctly: UserModel includes
group-inherited roles (matching UserModel.hasRole() semantics), while
GroupModel expands only its direct composite mappings.

The CompositeClientRoleMappingsTest is migrated from the deprecated
Arquillian framework to the new Keycloak test framework (JUnit 5).

Signed-off-by: Alexey Skosyrskiy <askosyrskiy@metropolis.io>
2026-03-25 17:24:16 -03:00
Alexey Skosyrskiy
a9e7abb364 Optimize getCompositeClientRoleMappings from O(C*M*D) to O(M*D+C)
Pre-compute user's effective roles via RoleUtils.expandCompositeRoles()
(BFS) instead of calling user.hasRole() per client role which
recursively expands composites without memoization.

Closes #47157

Signed-off-by: Alexey Skosyrskiy <askosyrskiy@metropolis.io>
2026-03-25 17:24:16 -03:00
vramik
43864c1375 Disabled organization should not execute invitations
Closes #45760

Signed-off-by: vramik <vramik@redhat.com>
2026-03-25 17:04:23 -03:00
Ingrid Kamga
df92e7aac8
[OID4VCI] Generate pre-authorized codes using the JWT format (#46450)
Closes #45231


Signed-off-by: Ingrid Kamga <Ingrid.Kamga@adorsys.com>
Signed-off-by: Ingrid Kamga <xingridkamga@gmail.com>
2026-03-25 19:35:13 +01:00
Hager Khamis
13897b9b32
Adding getResourcesCommonUrl() to UrlBean (#47113)
I added getResourcesCommonUrl() following the same URL/Path pattern already used by getResourcesUrl() and getResourcesPath(). Email clients can't resolve relative paths so the existing getResourcesCommonPath() wasn't enough for email templates.

I also pulled out the common-path lookup into a private getCommonPath() helper to avoid duplicating it between getResourcesCommonPath() and the new method. Updated the theme docs with a usage example and a note about absolute URLs in emails.

Closes #33198

Signed-off-by: Hager Khamis <hagerm98@hotmail.com>
2026-03-25 07:45:52 +00:00
rmartinc
e9b27d04f5 Add option to store tokens in session for Identity Providers
Closes #47185

Signed-off-by: rmartinc <rmartinc@redhat.com>
2026-03-24 19:22:43 +01:00
Giuseppe Graziano
865edcea36 Client policies for identity brokering api
Closes #46585

Signed-off-by: Giuseppe Graziano <g.graziano94@gmail.com>
2026-03-24 19:00:51 +01:00
Tomohiko Ozawa
6f25f41166
Improve UI for inviting realm users (#45731)
Closes #45704

Signed-off-by: Tomohiko Ozawa <kota65535@gmail.com>
2026-03-24 13:21:37 -04:00
Jakub Pietrzak
0369951480 Resolve nested keys in oauth2 identity provider claims
Signed-off-by: Jakub Pietrzak <jakub@pietrzak.dev>
2026-03-24 09:47:33 -03:00
mposolda
68f5779230 CVE-2026-3429 Improper Access Control for LoA During Credential Deletion for the case of client overriden flow
closes #47069

Signed-off-by: mposolda <mposolda@gmail.com>
2026-03-24 13:44:05 +01:00
vramik
db7d4d550c Do not reflect the organization name in the error message
Closes #47084

Signed-off-by: vramik <vramik@redhat.com>
2026-03-24 09:28:23 -03:00
Jonathan Langlois
a35f2a8bdb Allow mapped user attributes to be reset when broker claims are removed
Closes #44824

Signed-off-by: Jonathan Langlois <jonathan.langlois@gov.bc.ca>
2026-03-24 09:01:38 -03:00
vramik
a4796fe801 Add view-realm admin role check to SCIM discovery endpoints
Closes #46859

Signed-off-by: vramik <vramik@redhat.com>
2026-03-24 08:56:43 -03:00
Steven Hawkins
3c0c94f1d6
fix: reducing the cost of clear admin composite role cache
closes: #47139

Signed-off-by: Steve Hawkins <shawkins@redhat.com>
Signed-off-by: Alexander Schwartz <alexander.schwartz@ibm.com>
Co-authored-by: Alexander Schwartz <alexander.schwartz@ibm.com>
2026-03-23 23:59:44 +01:00
Hisanobu Okuda
ce672801af
Clarify credentials field availability in GET /admin/realms/{realm}/users documentation
Closes #46972

Signed-off-by: Hisanobu Okuda <hisanobu.okuda@gmail.com>
2026-03-23 23:48:17 +01:00
Anil
569c2c35fb
Prevent querying all clients for dynamic scope update (#46545)
Some checks failed
Weblate Sync / Trigger Weblate to pull the latest changes (push) Has been cancelled
closes #46542


Signed-off-by: Anil Dhurjaty <anil.dhurjaty@appfolio.com>
2026-03-23 15:43:45 +01:00
Artem Mukhin
5a439cb1f6
Handle 'NullPointerException' thrown in 'DPoPUtil.validateDPoP' (#46849)
closes #46849


Signed-off-by: Artem Mukhin <amukhin@fobos-nt.ru>
2026-03-23 15:12:48 +01:00
rmartinc
fa79f27415 Chage identity brokering API V2 to only allow confidential clients
Closes #47256

Signed-off-by: rmartinc <rmartinc@redhat.com>
2026-03-23 14:40:41 +01:00