Skip to content

Conversation

@fjuma
Copy link
Collaborator

@fjuma fjuma commented Oct 23, 2025

Creating this as a draft PR until we release 0.3.0.Final (which should happen very soon).

@github-actions
Copy link

github-actions bot commented Oct 23, 2025

🙈 The PR is closed and the preview is expired.

Copy link
Member

@cescoffier cescoffier left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I looks good, but we should start working on the simplification. OIDC should be automatically plugged in.

author: fjuma
---

Today, we've released A2A Java SDK 0.3.0.Final which includes security and cloud related enhancements.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wasn't it released before devoxx?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That was 0.3.0.Beta2

@cescoffier
Copy link
Member

@sberyozkin FYI.

@fjuma
Copy link
Collaborator Author

fjuma commented Oct 24, 2025

I looks good, but we should start working on the simplification. OIDC should be automatically plugged in.

Yes, configuration simplification is one of the main things we'd like to work on next. We are tracking that here:

a2aproject/a2a-java#370

.streamingErrorHandler(streamingErrorHandler);

// Configure only the user-specified transport
switch (transport.toLowerCase()) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I was wondering a bit where transport comes from, and found it is a parameter to the createClient() method. Might be worth pointing that out somehow

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed


> **NOTE**: In our sample, we're going to rely on Quarkus Dev Services to automatically create and configure
a Keycloak instance that we'll use as our OAuth2 provider. For more details on using Podman with
Quarkus, see this https://quarkus.io/guides/podman[guide].

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks like a sentence it missing: something along the way:
Quarkus Dev Services relies on a container engine such as docker or podman to be installed and properly configured. For more details on using Podman with
Quarkus, see this https://quarkus.io/guides/podman[guide].


The A2A Java SDK provides two main classes related to authentication:

* `CredentialService`: An interface you implement to define how to obtain a credential for a specific security scheme.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

you need to implement

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed


return builder.build();
----
<1> `CredentialService` is an interface provided by the A2A Java SDK. You can implement this interface to

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You can implement this interface or You must implement this interface

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'll leave this as "You can" since they could also implement their own interceptor to obtain credentials some other way, they don't have to use the AuthInterceptor.

@sberyozkin
Copy link
Member

As far as picking up incoming bearer or user login/code flow access tokens is concerned, injecting an instance of TokenCredential from the quarkus security API package is sufficient, as is done for model and MCP clients in quarkus langchain4j, hopefully it can be done for A2A flows

@sberyozkin
Copy link
Member

I guess an implementation of CredentialProvider that can be provided out of the box can do it, just check if the token is available or not. Concrete deployments will add quarkus oidc.

@fjuma
Copy link
Collaborator Author

fjuma commented Oct 24, 2025

Thanks @sberyozkin! Will keep that in mind.

@fjuma fjuma marked this pull request as ready for review October 28, 2025 15:25
@fjuma
Copy link
Collaborator Author

fjuma commented Oct 28, 2025

@cescoffier This is now ready to be merged. Thanks!

@fjuma fjuma requested a review from cescoffier October 28, 2025 15:26
@cescoffier
Copy link
Member

Great! Thanks!

@cescoffier cescoffier merged commit e077c8b into quarkusio:main Oct 28, 2025
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants