[
https://issues.apache.org/jira/browse/CAMEL-26162?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Claus Ibsen updated CAMEL-26162:
--------------------------------
Fix Version/s: 4.18.6
4.22.3
> camel-workday - the token request sends the Basic header as Arrays.toString
> of the bytes, so getting an access token fails
> --------------------------------------------------------------------------------------------------------------------------
>
> Key: CAMEL-26162
> URL: https://issues.apache.org/jira/browse/CAMEL-26162
> Project: Camel
> Issue Type: Bug
> Components: camel-workday
> Reporter: Claus Ibsen
> Assignee: Vignesh Nayak Manel
> Priority: Major
> Fix For: 4.18.6, 4.22.3, 4.24.0
>
>
> Found while adding the catalog body types of workday (CAMEL-24961, PR #28410).
> h4. 1. The token request sends a malformed Authorization header
> {{AuthClientForIntegration.createPostMethod}} (main 2a465aa4814c, line 98)
> builds the header with {{"Basic " +
> Arrays.toString(Base64.getEncoder().encode(...))}}.
> {{Arrays.toString(byte[])}} gives the list of byte values, so the header is
> {{Basic [89, 50, 108, ...]}} instead of the Base64 text, and the
> refresh-token request is rejected by Workday: no call can get an access
> token. Checked on 4.24.0-SNAPSHOT with a local HTTPS server as the token
> endpoint, which received {{Basic [89, 50, 108, ...]}}.
> Proposed: use {{Base64.getEncoder().encodeToString((clientId + ":" +
> clientSecret).getBytes(StandardCharsets.UTF_8))}}.
> h4. 2. The access token is cut from the response by fixed offsets
> {{AuthClientForIntegration.parseResponse}} (main 2a465aa4814c, line 114)
> takes {{response.substring(response.indexOf("access_token") + 16,
> response.length() - 3)}}. This only works when the JSON has exactly that
> spacing and {{access_token}} is the last field; with other whitespace or
> other fields after it (e.g. {{token_type}}, {{expires_in}}) the token is
> wrong. Checked on 4.24.0-SNAPSHOT with the local HTTPS fake.
> Proposed: parse the response as JSON (Jackson is already on the classpath)
> and read the {{access_token}} field.
> _Claude Code on behalf of davsclaus_
--
This message was sent by Atlassian Jira
(v10.3.26#10030026)