JAMES-4195 Add JMAP OIDC authentication strategy#3080
JAMES-4195 Add JMAP OIDC authentication strategy#3080quantranhong1999 wants to merge 11 commits into
Conversation
Adds OIDC token value objects, cache configuration, cache interface, Caffeine cache implementation, and cache contract tests.
Adds JMAP OIDC configuration parsing, userinfo/introspection resolution, bearer authentication strategy, challenge realm override support, and focused unit tests.
|
09:39:33,285 [ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.14.0:compile (default-compile) on project apache-james-backends-redis: Compilation failure |
Adds the non-Guice Redis OIDC token cache implementation for JMAP, Redis key prefix customization, Redis command adapter, configuration parsing, and real Redis standalone/sentinel/cluster tests.
Adds the non-Guice WebAdmin JMAP route for OIDC backchannel logout and its Guice route binding module.
Adds Guice modules for JMAP OIDC resolver/cache binding, Redis cache binding, default James Redis key prefix, optional cache implementation selection, and optional app wiring.
Adds memory, postgres, and distributed JMAP OIDC authentication integration coverage, including Redis cache wiring for postgres/distributed.
Documents JMAP OIDC properties, sample configuration, cache behavior, Redis fallback, and backchannel logout.
2601ca0 to
b51214d
Compare
Should be fixed now ^^ |
Shared OIDC token cache contracts and model now live in `data-api`, the Caffeine implementation lives in `data-memory`, and the Redis implementation lives in `data-redis`. Keep `server/protocols/jmap` focused on JMAP authentication/configuration and move endpoint-backed token resolution to `server/protocols/jwt`.
And drop dedicated app's configuration for JMAP OIDC enabled.
Move OIDC cache Guice bindings out of protocol-specific Guice modules. Redis OIDC cache wiring now lives under `guice/data-redis`. The Caffeine OIDC cache binding now lives under `guice/memory`.
No description provided.