[
https://issues.apache.org/jira/browse/CAMEL-23454?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Andrea Cosentino reassigned CAMEL-23454:
----------------------------------------
Assignee: Andrea Cosentino
> camel-keycloak: Add token revocation and session logout operations
> ------------------------------------------------------------------
>
> Key: CAMEL-23454
> URL: https://issues.apache.org/jira/browse/CAMEL-23454
> Project: Camel
> Issue Type: Improvement
> Components: camel-keycloak
> Reporter: Andrea Cosentino
> Assignee: Andrea Cosentino
> Priority: Major
>
> The component already supports {{logoutUser}} (which invalidates all sessions
> for a single user) and exposes session listing, but does not provide:
> # Targeted token revocation (RFC 7009)
> # Realm-wide session revocation
> # Producer-side token introspection (introspection exists for the security
> policy / token cache but cannot be invoked as a producer operation today)
> h3. Proposed new KeycloakOperations
> * {{revokeAccessToken}} — revoke a specific access token via the OAuth2
> revocation endpoint
> * {{revokeRefreshToken}} — revoke a refresh token
> * {{logoutAllUsers}} — revoke all sessions in a realm
> * {{pushNotBefore}} — set a {{notBefore}} policy to invalidate all tokens
> issued before now
> * {{introspectToken}} — RFC 7662 introspection as a producer operation
> (reusing the existing {{KeycloakTokenIntrospector}})
> h3. References
> * Keycloak token endpoint:
> {{/realms/\{realm\}/protocol/openid-connect/revoke}}
> * Logout-all: {{/admin/realms/\{realm\}/logout-all}}
> * Push-not-before: {{/admin/realms/\{realm\}/push-revocation}}
> * RFC 7009 (token revocation), RFC 7662 (token introspection)
> h3. Acceptance criteria
> * All five operations implemented in {{KeycloakProducer}}
> * Reuses {{KeycloakTokenIntrospector}} for the introspect operation rather
> than duplicating logic
> * Integration tests verify revocation + push-not-before against
> testcontainers Keycloak
> * {{keycloak-component.adoc}} is updated with examples
--
This message was sent by Atlassian Jira
(v8.20.10#820010)