Commit graph

35 commits

Author SHA1 Message Date
Martin Bartoš
0b2ce29e89
[client-v2] Require 'clientId' in the payload (#47533)
* Require clientId in the payload

Closes #47524

Signed-off-by: Martin Bartoš <mabartos@redhat.com>

* Require 'protocol' field to be specified

Closes #47579

Signed-off-by: Martin Bartoš <mabartos@redhat.com>

* Client API v2 CLI Client: Jakarta validation errors are not handled

Closes #47574

Signed-off-by: Martin Bartoš <mabartos@redhat.com>

* Use getRequest() for POST in test

Signed-off-by: Martin Bartoš <mabartos@redhat.com>

---------

Signed-off-by: Martin Bartoš <mabartos@redhat.com>
2026-04-07 14:07:32 +02:00
Norbert Kelemen
1174c75fc2
Use KcAdmMain.CMD in test cases (#47709)
Signed-off-by: Norbert Kelemen <nkelemen18@nkelemen.hu>
2026-04-03 13:32:46 -04:00
Martin Bartoš
3ea4a0c62a
[client-v2] Mark REST endpoint for delete as Response (#47526)
Closes #47423

Signed-off-by: Martin Bartoš <mabartos@redhat.com>
2026-03-31 17:13:38 +02:00
Martin Bartoš
a69f08fff0
Create more validation tests for PUT/PATCH logic (#47282)
* Create more validation tests for PUT/PATCH logic

Closes #47058

Signed-off-by: Martin Bartoš <mabartos@redhat.com>

* Test for trying to change the protocol for existing client

Signed-off-by: Martin Bartoš <mabartos@redhat.com>

* PATCH tests do not extend PUT tests

Signed-off-by: Martin Bartoš <mabartos@redhat.com>

* Introduce the ProtocolUnmofidiedValidator

Signed-off-by: Martin Bartoš <mabartos@redhat.com>

* Accomodate changes for the protocol unmodified validator

Signed-off-by: Martin Bartoš <mabartos@redhat.com>

---------

Signed-off-by: Martin Bartoš <mabartos@redhat.com>
2026-03-27 16:19:37 +01:00
Michal Vavřík
859a7a095e
feat(admin-cli): provide basic Client API v2 CLI client (#47173)
* Closes: https://github.com/keycloak/keycloak/issues/47166
* Closes: https://github.com/keycloak/keycloak/issues/47311

Provides basic Client API v2 CLI client.

Supports:

- client operations: create, patch, list, delete, get, update
- authetication options matching those of v1 CLI

Omitted changes:

- documentation, we do not advertise this new client and it is hidden behind `--v2` flag that is not mentioned anywhere in doc or help, hence invisible; until we implement remaining https://github.com/keycloak/keycloak/issues/45366 tasks
- "config" subcommand is shared between v1 and v2, hence its printed "help" follows the v1 style to keep status quo

Signed-off-by: Michal Vavřík <michal.vavrik@aol.com>
2026-03-27 12:56:08 +01:00
Robin Meese
d7091c7935
Client API v2 Java client
Closes #45364

Signed-off-by: Robin Meese <39960884+robson90@users.noreply.github.com>
2026-03-27 11:01:35 +01:00
Václav Muzikář
0358525bf7
UUIDs and update validations for Client v2 (#46994)
* UUIDs and update validations for Client v2

Closes #46531
Closes #47034

Signed-off-by: Václav Muzikář <vmuzikar@ibm.com>

* Expand on comments, simplify validation

Signed-off-by: Václav Muzikář <vmuzikar@ibm.com>

* Relax the UUID validation so it passes if UUID is unchanged

Signed-off-by: Václav Muzikář <vmuzikar@ibm.com>

* Additional validation for PUT create

Signed-off-by: Václav Muzikář <vmuzikar@ibm.com>

* Validate full rep when doing PATCH

Signed-off-by: Václav Muzikář <vmuzikar@ibm.com>

---------

Signed-off-by: Václav Muzikář <vmuzikar@ibm.com>
2026-03-18 14:58:15 +01:00
Erik Jan de Wit
0466955604
added test that verifies that Clients are created/updated with v1 are read correctly with v2 (#46551)
* added test that verifies that Clients are created/updated with v1 are read correctly with v2

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

* moved cleanup to finally block and removed debug statements

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

* refactored to make it more simple

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

* Update rest/admin-v2/tests/src/test/java/org/keycloak/tests/admin/client/v2/InteropTest.java

Co-authored-by: Martin Bartoš <mabartos@redhat.com>
Signed-off-by: Erik Jan de Wit <edewit@redhat.com>

* Update rest/admin-v2/tests/src/test/java/org/keycloak/tests/admin/client/v2/InteropTest.java

Co-authored-by: Martin Bartoš <mabartos@redhat.com>
Signed-off-by: Erik Jan de Wit <edewit@redhat.com>

* Update rest/admin-v2/tests/src/test/java/org/keycloak/tests/admin/mapper/ClientRepresentationComparator.java

Co-authored-by: Václav Muzikář <vaclav@muzikari.cz>
Signed-off-by: Erik Jan de Wit <edewit@redhat.com>

* add saml tests

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

* refactored and PR comments

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

* use constants instead of strings

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

* added roles test

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

* copilot review

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

---------

Signed-off-by: Erik Jan de Wit <erikjan.dewit@gmail.com>
Signed-off-by: Erik Jan de Wit <edewit@redhat.com>
Co-authored-by: Martin Bartoš <mabartos@redhat.com>
Co-authored-by: Václav Muzikář <vaclav@muzikari.cz>
2026-03-16 09:11:00 +00:00
Martin Bartoš
79a7a8c907
New client service - DELETE - delete individual client (#46797)
* New client service - DELETE - delete individual client

Closes #46783

Signed-off-by: Martin Bartoš <mabartos@redhat.com>

* Propagate the error message  + add test

Signed-off-by: Martin Bartoš <mabartos@redhat.com>

---------

Signed-off-by: Martin Bartoš <mabartos@redhat.com>
2026-03-09 18:16:56 +01:00
Michal Vavřík
2df80c2bb2
feat(admin-v2): generate client secret for POST (#46257)
* Closes: https://github.com/keycloak/keycloak/issues/46136

Signed-off-by: Michal Vavřík <michal.vavrik@aol.com>
2026-03-09 16:58:13 +01:00
Martin Bartoš
0fd438db20
Initial version of the new service layer (#46733)
Closes #46770

Closes #46771

Closes #46779

Signed-off-by: Martin Bartoš <mabartos@redhat.com>
2026-03-06 09:53:19 +00:00
Lukas Hanusovsky
ac69be4a46
Updating package name in the new tests custom-providers module. (#46906)
Signed-off-by: Lukas Hanusovsky <lhanusov@redhat.com>
2026-03-06 06:25:01 +01:00
Martin Bartoš
be6377294b
Include full client representation to the Admin v2 delete event (#46865)
Closes #46864

Signed-off-by: Martin Bartoš <mabartos@redhat.com>
2026-03-05 14:46:22 +01:00
Martin Bartoš
f7d6e95cd7
Delete operation does not fire admin event v2 (#46793)
Closes #46792

Signed-off-by: Martin Bartoš <mabartos@redhat.com>
2026-03-03 15:35:06 +01:00
Erik Jan de Wit
391b8b0774
Add v2 admin event support to Client Admin API (#46124)
* Add v2 admin event support to Client Admin API

Introduce AdminEventV2Builder to fire admin events with apiVersion=v2
detail marker, allowing consumers to distinguish v2 API events from v1.

- Add AdminEventV2Builder class for creating v2 admin events
- Modify DefaultClientService to fire v2 events on client create/update
- Pass AdminAuth through API chain for proper event authentication context
- Add tests verifying v2 events contain correct operation type and format

Closes #46123

Co-authored-by: Cursor <cursoragent@cursor.com>
Signed-off-by: Erik Jan de Wit <erikjan.dewit@gmail.com>

* added github comments

Extended AdminEventBuilder, now accepts AdimPermissionEvaluator instead
of AdminAuth

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

* Refactor admin builder v2, mask sensitive info, improve tests

Signed-off-by: Martin Bartoš <mabartos@redhat.com>
Signed-off-by: Erik Jan de Wit <erikjan.dewit@gmail.com>

* Apply suggestions from code review

Signed-off-by: Martin Bartoš <mabartos@redhat.com>
Signed-off-by: Erik Jan de Wit <erikjan.dewit@gmail.com>

* Apply suggestion from @mabartos

Signed-off-by: Martin Bartoš <mabartos@redhat.com>
Signed-off-by: Erik Jan de Wit <erikjan.dewit@gmail.com>

* fixed imports

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>

* Polish constructors, disable events by default

Signed-off-by: Martin Bartoš <mabartos@redhat.com>

* Public visibility for detail key, add test case for PATCH

Signed-off-by: Martin Bartoš <mabartos@redhat.com>

---------

Signed-off-by: Erik Jan de Wit <erikjan.dewit@gmail.com>
Signed-off-by: Martin Bartoš <mabartos@redhat.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Martin Bartoš <mabartos@redhat.com>
2026-02-25 17:47:30 +01:00
Martin Bartoš
ff5c13f05c
[client-v2] Create tests to check FGAP (#46474)
Closes #46209

Signed-off-by: Martin Bartoš <mabartos@redhat.com>
2026-02-24 09:01:52 +01:00
Martin Bartoš
728431099f
[client-v2] Handle patch logic in the service + ServiceExceptionMapper (#46331)
* Handle patch logic in the service + ServiceExceptionMapper

Closes #46328

Closes #46329

Signed-off-by: Martin Bartoš <mabartos@redhat.com>

* Revert back the consumes of the Patch

Signed-off-by: Martin Bartoš <mabartos@redhat.com>

* Be more defensive for the JSON Merge Patch

Signed-off-by: Martin Bartoš <mabartos@redhat.com>

---------

Signed-off-by: Martin Bartoš <mabartos@redhat.com>
2026-02-19 16:01:44 +01:00
Erik Jan de Wit
4115785dba
added better validation and more validation tests (#46277)
* added better validation and more validation tests

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

* Use getClientsApiUrl() in tests

Signed-off-by: Martin Bartoš <mabartos@redhat.com>
Signed-off-by: Erik Jan de Wit <erikjan.dewit@gmail.com>

* refactored removed duplication

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

* added test for update

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

---------

Signed-off-by: Erik Jan de Wit <erikjan.dewit@gmail.com>
Signed-off-by: Martin Bartoš <mabartos@redhat.com>
Co-authored-by: Martin Bartoš <mabartos@redhat.com>
2026-02-18 19:23:49 +01:00
Martin Bartoš
92881fb42b
Missing anti-ID phishing check for getting client (#46056)
* Missing anti-ID phishing check for getting client

Closes #46010

Signed-off-by: Martin Bartoš <mabartos@redhat.com>

* Avoid any other phishing based on error message, for PATCH + improve service exceptions

Signed-off-by: Martin Bartoš <mabartos@redhat.com>

* Ensure no ID phishing for DELETE

Signed-off-by: Martin Bartoš <mabartos@redhat.com>

---------

Signed-off-by: Martin Bartoš <mabartos@redhat.com>
2026-02-13 14:53:14 +00:00
Martin Bartoš
74988b5c0a
Extend client policies tests to check exact events (#46093)
Closes #46114

Signed-off-by: Martin Bartoš <mabartos@redhat.com>
2026-02-13 15:47:38 +01:00
Martin Bartoš
479d5546a6
[client-v2] Create tests for checking permissions (#45981)
* [client-v2] Create tests for checking permissions

Closes #45975

Signed-off-by: Martin Bartoš <mabartos@redhat.com>

* Simplify admin client creation, test abstraction

Signed-off-by: Martin Bartoš <mabartos@redhat.com>

* Address Vasek's comments

Signed-off-by: Martin Bartoš <mabartos@redhat.com>

---------

Signed-off-by: Martin Bartoš <mabartos@redhat.com>
2026-02-11 18:18:49 +01:00
Erik Jan de Wit
9cd492212b
added validation tests for client v2 (#46165)
* added validation tests for client v2

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

* added specific error messeages to check

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

---------

Signed-off-by: Erik Jan de Wit <erikjan.dewit@gmail.com>
2026-02-11 11:34:52 +01:00
Erik Jan de Wit
618384efe9
initial version of the client v2 policy test (#46029)
* initial version of the policy v2 policy test

fixes: #46074

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

* Extract client profile/policy to dedicated method

Signed-off-by: Martin Bartoš <mabartos@redhat.com>

* removed test method prefix

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

---------

Signed-off-by: Erik Jan de Wit <erikjan.dewit@gmail.com>
Signed-off-by: Martin Bartoš <mabartos@redhat.com>
Co-authored-by: Martin Bartoš <mabartos@redhat.com>
2026-02-06 18:16:15 +01:00
Steven Hawkins
8a471bb0d2
Operator logic for clients in admin api v2 (#45316)
Operator logic for clients in admin api v2

Closes #46022

Signed-off-by: Steven Hawkins <shawkins@redhat.com>
2026-02-05 09:16:29 +00:00
Erik Jan de Wit
e16fc5938e
Add tests for mappers and representation for the admin v2 (#45376)
* Add tests for mappers and representation for the admin v2

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

* changed OIDCClientModelMapper into an integration test

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

* PR review comments

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

* Update rest/admin-v2/tests/pom.xml

Co-authored-by: Martin Bartoš <mabartos@redhat.com>
Signed-off-by: Erik Jan de Wit <edewit@redhat.com>

* Update rest/admin-v2/tests/pom.xml

Co-authored-by: Martin Bartoš <mabartos@redhat.com>
Signed-off-by: Erik Jan de Wit <edewit@redhat.com>

* Update rest/admin-v2/tests/pom.xml

Co-authored-by: Martin Bartoš <mabartos@redhat.com>
Signed-off-by: Erik Jan de Wit <edewit@redhat.com>

* Update rest/admin-v2/tests/pom.xml

Co-authored-by: Martin Bartoš <mabartos@redhat.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: Erik Jan de Wit <edewit@redhat.com>
Co-authored-by: Martin Bartoš <mabartos@redhat.com>
2026-01-22 13:05:01 +00:00
Martin Bartoš
b61a00cbba
[admin-api-v2] Every distinct Admin API should be versioned (#44527)
Closes #44527

Signed-off-by: Martin Bartoš <mabartos@redhat.com>
2026-01-14 12:05:33 +01:00
Erik Jan de Wit
b1834fd10d
Add SAML client model mapper for admin-v2 API (#45200)
* Add SAML client model mapper for admin-v2 API

Implements mapper and factory for converting between SAMLClientModel
and SAMLClientRepresentation, including support for SAML-specific
attributes like signature algorithms, name ID formats, and certificates.

Fixes #44853

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

* updated test to test specific Saml and Oidc fields

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

* fix test

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

---------

Signed-off-by: Erik Jan de Wit <erikjan.dewit@gmail.com>
2026-01-13 13:37:04 +01:00
Václav Muzikář
ed69f332af
[admin-v2] Polymorphism, refined OIDC Client representation (#44727)
* [admin-v2] Polymorphism, refined OIDC Client representation

Closes #43290

Signed-off-by: Václav Muzikář <vmuzikar@redhat.com>

* Remove AbstractRepModelMapper

Signed-off-by: Václav Muzikář <vmuzikar@redhat.com>

---------

Signed-off-by: Václav Muzikář <vmuzikar@redhat.com>
2026-01-06 16:23:30 +01:00
Martin Bartoš
5828fab258
[admin-api-v2] Incorrect DTO/DAO mapping (#44587)
* [admin-api-v2] Incorrect DTO/DAO mapping

Closes #44586

Signed-off-by: Martin Bartoš <mabartos@redhat.com>

* Handle roles and service account operations, cleanup service contract

Signed-off-by: Martin Bartoš <mabartos@redhat.com>

---------

Signed-off-by: Martin Bartoš <mabartos@redhat.com>
2025-12-03 09:41:18 +01:00
Martin Bartoš
265c27e08d
[admin-api-v2] Create client does not return 201 status code (#44541)
Closes #44540

Signed-off-by: Martin Bartoš <mabartos@redhat.com>
2025-12-02 10:39:03 +01:00
Peter Zaoral
0e959ad89e
Delete operation for Client v2 (#44335)
Closes: #43291

Signed-off-by: Peter Zaoral <pzaoral@redhat.com>
2025-11-20 12:12:33 +01:00
Peter Zaoral
b9d94d325b
Remove JSON Patch support from the Client API v2 MVP (#44120)
Closes: #43572

Signed-off-by: Peter Zaoral <pzaoral@redhat.com>
2025-11-18 09:42:10 +00:00
Stian Thorgersen
a2c1055f8d
Proposed import order (#43432)
* Add importOrder to Spotless

Closes #43235

Signed-off-by: stianst <stianst@gmail.com>

* Re-order imports with Spotless

Signed-off-by: stianst <stianst@gmail.com>

---------

Signed-off-by: stianst <stianst@gmail.com>
2025-11-14 09:34:49 +01:00
Steven Hawkins
63fc0eec28
task: use client v1 logic for v2 impl (#43982)
* task: use client v1 logic for v2 impl

closes: #43733

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

* removing the provider module

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

---------

Signed-off-by: Steve Hawkins <shawkins@redhat.com>
2025-11-12 15:08:27 +01:00
Václav Muzikář
9c86eae7ed
Initial Client API v2 impl (#43395)
Closes #43224

Signed-off-by: Václav Muzikář <vmuzikar@redhat.com>
Co-authored-by: Martin Bartoš <mabartos@redhat.com>
Co-authored-by: Peter Zaoral <pzaoral@redhat.com>
Co-authored-by: Steven Hawkins <shawkins@redhat.com>
Co-authored-by: Robin Meese <39960884+robson90@users.noreply.github.com>
2025-11-03 14:31:54 +01:00