Repository navigation
feat!: upgrade to slim-bindings-java 3.3 and expose the verified caller identity - #16
Merged
Merged
Conversation
…er identity Bump slim-bindings-java from 2.0.0 to 3.3.2 to match the .NET, Rust and SLIM node peers, and bump protoc-gen-slimrpc-java to 3.0.0 in CI (the regenerated stubs are unchanged). SlimA2AHandler now builds the ServerCallContext user from the verified MLS session token (Context.peerSubject()/peerIssuer()) as a SlimUser, and falls back to the anonymous user when there is no subject. Identity is never read from request metadata. Raw SlimRPC metadata is not copied into the ServerCallContext, so the slim-peer-subject and slim-payload-sig keys added by SLIM 3.4, and the routing keys, never reach A2A handlers. A test covers this. BREAKING CHANGE: requests from MLS callers whose token has a subject now reach handlers as an authenticated SlimUser instead of the anonymous user, so handlers that give authenticated users extra access will now give it to any verified peer. Fixes #15 Signed-off-by: Luca Muscariello <muscariello@ieee.org>
muscariello
force-pushed
the
feat/slim-bindings-3
branch
from
October 14, 2026 20:58
2b90d92 to
ef49361
Compare
lgecse
approved these changes
Oct 15, 2026
janosSarusiKis
approved these changes
Oct 15, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Upgrades slim-bindings-java from 2.0.0 to 3.3.2 and exposes the verified caller identity to A2A handlers.
SlimA2AHandlersets theServerCallContextuser to a newSlimUser, built fromContext.peerSubject()/peerIssuer()(the MLS session token). It falls back to the anonymous user when there is no subject. Identity is never read from request metadata.ServerCallContext, so theslim-peer-subject/slim-payload-sigkeys added by SLIM 3.4 and the routing keys never reach handlers. A unit test covers this.protoc-gen-slimrpc-java3.0.0. The regenerated stubs are unchanged.Breaking: callers with a token subject now arrive as authenticated users instead of anonymous.
Testing:
mvn verifypasses (12 tests, 7 of them new). A manual e2e againstghcr.io/agntcy/slim:3.4.1showed a JWT caller'ssubandissreaching the handler. It also showed that the raw metadata carriesslim-peer-subjectandslim-payload-sigwhile the handler's call context gets no state and no extensions.Fixes #15