Repository navigation
feat: support configurable SLIM identity and node connection in SlimHelper - #13
Merged
Merged
Conversation
…elper Add SlimHelper.createServer/createChannel overloads that take an IdentityProviderConfig, IdentityVerifierConfig and ClientConfig, so callers can use JWT (e.g. EdDSA did:key with a JWKS allowlist), static JWT or SPIRE identities, and TLS plus auth to the SLIM node. The existing shared-secret/insecure overloads now delegate to them via the new sharedSecretProvider/sharedSecretVerifier factories. Add unit tests (JUnit 5, surefire configured for the FFM preview flags) and document the JWT identity and TLS client config in the README. Signed-off-by: Luca Muscariello <muscariello@ieee.org>
janosSarusiKis
approved these changes
Oct 13, 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.
Fixes #12
Changes
New
SlimHelperoverloads:createServer(Name local, IdentityProviderConfig, IdentityVerifierConfig, ClientConfig)createChannel(Name local, Name remote, IdentityProviderConfig, IdentityVerifierConfig, ClientConfig)These let callers use JWT (e.g. EdDSA
did:keywith a JWKS allowlist), static JWT or SPIRE identities, and TLS/mTLS plus basic or JWT auth to the node.The existing
secret/serverAddroverloads are unchanged and now delegate to the new ones. They use the newsharedSecretProvider/sharedSecretVerifierfactories, which build the same configs ascreateAppWithSecret.JUnit 5 tests. Surefire now passes
--enable-preview --enable-native-access=ALL-UNNAMEDso tests can load the native bindings.README section with a JWT identity + TLS/bearer-token client config example.
Caller identity in
SlimA2AHandlerI left this unchanged. In slim-bindings-java 2.0.0 the SlimRPC
Contextexposes onlysessionId,metadataand the deadline. It has no source name and no verified peer identity, so handlers still see an anonymous user. FillingServerCallContextfrompeer_subject/peer_issuershould come after the bindings bump to 3.3.Testing
mvn verify(Temurin 21): 5 tests pass.GetExtendedAgentCard.identity verification failed: token invalid).