Claus Ibsen created CAMEL-26196:
-----------------------------------
Summary: camel-keycloak - with pojoRequest a body of the wrong
type does nothing and no error, and a failed create or delete is not an error
and its Response is never closed
Key: CAMEL-26196
URL: https://issues.apache.org/jira/browse/CAMEL-26196
Project: Camel
Issue Type: Bug
Components: camel-keycloak
Reporter: Claus Ibsen
Fix For: 4.24.0
Found while adding the catalog body types of keycloak (CAMEL-24961, PR #28416).
h4. 1. pojoRequest=true with a body of the wrong type does nothing
With {{pojoRequest=true}}, {{KeycloakProducer.createUser}} (main 2a465aa4814c,
line 514 to 520) calls Keycloak only when the body is a {{UserRepresentation}};
for a String or a Map body (for example JSON) there is no call, no error, and
the body is unchanged. The other pojoRequest operations use the same
{{instanceof}} pattern. Checked on 4.24.0-SNAPSHOT with Keycloak 26.8.1 from
test-infra (docker).
Proposed: convert the body to the expected representation (mandatory), and fail
with a clear error when it does not convert.
h4. 2. A failed create or delete is not an error, and its Response is never
closed
createUser (line 517 to 519), deleteUser (line 557 to 559) and the other
creates set the jakarta {{Response}} as the body without looking at its status:
a 409 (already exists) or a 404 (not found) completes the exchange as a
success. The Response is never closed. Checked on 4.24.0-SNAPSHOT with Keycloak
from test-infra.
Proposed: fail the exchange on a non-2xx status, and read what is needed from
the Response (status, location, created id) and close it.
h4. 3. bulkCreateUsers with a List of Map fails with a raw ClassCastException
{{KeycloakProducer.bulkCreateUsers}} (line 2337 to 2339) casts a List body to
{{List<UserRepresentation>}}; a List of Map (from JSON unmarshalling) then
fails with a raw ClassCastException when the elements are used. Checked on
4.24.0-SNAPSHOT with Keycloak from test-infra.
Proposed: convert each element to UserRepresentation, or fail with an error
that names the expected element type.
_Claude Code on behalf of davsclaus_
--
This message was sent by Atlassian Jira
(v10.3.26#10030026)