Skip to content

Commit 61e77d8

Browse files
committed
fix: Ensure authentication is required for all A2A methods except the .well-known URI
1 parent c58d173 commit 61e77d8

File tree

3 files changed

+8
-0
lines changed

3 files changed

+8
-0
lines changed

reference/grpc/src/main/java/io/a2a/server/grpc/quarkus/QuarkusGrpcHandler.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,10 @@
99
import io.a2a.transport.grpc.handler.CallContextFactory;
1010
import io.a2a.transport.grpc.handler.GrpcHandler;
1111
import io.quarkus.grpc.GrpcService;
12+
import io.quarkus.security.Authenticated;
1213

1314
@GrpcService
15+
@Authenticated
1416
public class QuarkusGrpcHandler extends GrpcHandler {
1517

1618
private final AgentCard agentCard;

reference/jsonrpc/src/main/java/io/a2a/server/apps/quarkus/A2AServerRoutes.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@
5151
import io.a2a.spec.UnsupportedOperationError;
5252
import io.a2a.transport.jsonrpc.handler.JSONRPCHandler;
5353
import io.a2a.util.Utils;
54+
import io.quarkus.security.Authenticated;
5455
import io.quarkus.vertx.web.Body;
5556
import io.quarkus.vertx.web.ReactiveRoutes;
5657
import io.quarkus.vertx.web.Route;
@@ -81,6 +82,7 @@ public class A2AServerRoutes {
8182
Instance<CallContextFactory> callContextFactory;
8283

8384
@Route(path = "/", methods = {Route.HttpMethod.POST}, consumes = {APPLICATION_JSON}, type = Route.HandlerType.BLOCKING)
85+
@Authenticated
8486
public void invokeJSONRPCHandler(@Body String body, RoutingContext rc) {
8587
boolean streaming = false;
8688
ServerCallContext context = createCallContext(rc);

reference/rest/src/main/java/io/a2a/server/rest/quarkus/A2AServerRoutes.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import java.util.concurrent.atomic.AtomicLong;
99
import java.util.function.Function;
1010

11+
import jakarta.annotation.security.PermitAll;
1112
import jakarta.enterprise.inject.Instance;
1213
import jakarta.inject.Inject;
1314
import jakarta.inject.Singleton;
@@ -23,6 +24,7 @@
2324
import io.a2a.transport.rest.handler.RestHandler;
2425
import io.a2a.transport.rest.handler.RestHandler.HTTPRestResponse;
2526
import io.a2a.transport.rest.handler.RestHandler.HTTPRestStreamingResponse;
27+
import io.quarkus.security.Authenticated;
2628
import io.quarkus.vertx.web.Body;
2729
import io.quarkus.vertx.web.ReactiveRoutes;
2830
import io.quarkus.vertx.web.Route;
@@ -38,6 +40,7 @@
3840
import java.util.Set;
3941

4042
@Singleton
43+
@Authenticated
4144
public class A2AServerRoutes {
4245

4346
@Inject
@@ -249,6 +252,7 @@ public void deleteTaskPushNotificationConfiguration(RoutingContext rc) {
249252
* @param rc
250253
*/
251254
@Route(path = "/.well-known/agent-card.json", order = 1, methods = Route.HttpMethod.GET, produces = APPLICATION_JSON)
255+
@PermitAll
252256
public void getAgentCard(RoutingContext rc) {
253257
HTTPRestResponse response = jsonRestHandler.getAgentCard();
254258
rc.response()

0 commit comments

Comments
 (0)