You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@camel.apache.org by "Federico Mariani (Jira)" <ji...@apache.org> on 2026/02/27 13:32:00 UTC

[jira] [Work started] (CAMEL-23093) Add OAuth SPI for multi-IdP Client Credentials support

     [ https://issues.apache.org/jira/browse/CAMEL-23093?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Work on CAMEL-23093 started by Federico Mariani.
------------------------------------------------
> Add OAuth SPI for multi-IdP Client Credentials support
> ------------------------------------------------------
>
>                 Key: CAMEL-23093
>                 URL: https://issues.apache.org/jira/browse/CAMEL-23093
>             Project: Camel
>          Issue Type: New Feature
>          Components: camel-oauth
>    Affects Versions: 4.18.0
>            Reporter: Federico Mariani
>            Assignee: Federico Mariani
>            Priority: Minor
>             Fix For: 4.19.0
>
>
> Add an OAuth 2.0 Client Credentials SPI (OAuthClientAuthenticationFactory) so Camel components can acquire bearer tokens from identity providers without a compile-time dependency on camel-oauth. Supports multiple identity providers via named profiles.
> Right now the camel-oauth component can be used only with a processor, for example:
> {code:java}
> from("direct:callProtectedApi")
>       .process(new OAuthClientCredentialsProcessor())
>       // Authorization header is now set
>       .to("http://my-backend/api/resource"); {code}
> This behaviour can be improvied with an SPI that can be used by Camel components to acquire bearer tokens for Client Credentials scenario. Moreover, the actual implementation does not provide multiple IdPs integration, this has to be handled as well. In particular, something like:
> {code:java}
>             uri: openai:chat-completion
>             parameters:
>               apiKey: no-key
>               model: qwen3:4b-instruct
>               baseUrl: http://localhost:11434/v1
>               mcpServer.tools.transportType: streamableHttp
>               mcpServer.tools.url: http://localhost:8080/mcp
>               mcpServer.tools.oauthProfile: myKeycloak {code}
> Should be doable with an application.properties like:
> {code:java}
> camel.oauth.myKeycloak.client-id=test-app
> camel.oauth.myKeycloak.client-secret=test-secret
> camel.oauth.myKeycloak.token-endpoint=http://localhost:8543/realms/test/protocol/openid-connect/token {code}
>  



--
This message was sent by Atlassian Jira
(v8.20.10#820010)