Skip to content

Commit c9fe26c

Browse files
committed
Use match for interceptor logic
1 parent 10f0ae8 commit c9fe26c

File tree

2 files changed

+26
-47
lines changed

2 files changed

+26
-47
lines changed

src/a2a/client/auth/interceptor.py

Lines changed: 26 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import logging
2-
32
from typing import Any
43

54
from a2a.client.auth.credentials import CredentialService
@@ -49,24 +48,33 @@ async def intercept(
4948

5049
headers = http_kwargs.get('headers', {})
5150

52-
match scheme_def:
53-
# Case 1: Bearer token schemes (HTTP Bearer, OAuth2, OIDC)
54-
case (
55-
HTTPAuthSecurityScheme() if scheme_def.scheme.lower() == "bearer"
56-
) | OAuth2SecurityScheme() | OpenIdConnectSecurityScheme():
57-
headers["Authorization"] = f"Bearer {credential}"
58-
logger.debug(
59-
f"Added Bearer token for scheme '{scheme_name}' (type: {scheme_def.type})."
60-
)
61-
return request_payload, http_kwargs
51+
match scheme_def:
52+
# Case 1a: HTTP Bearer scheme with an if guard
53+
case HTTPAuthSecurityScheme() if scheme_def.scheme.lower() == "bearer":
54+
headers["Authorization"] = f"Bearer {credential}"
55+
logger.debug(
56+
f"Added Bearer token for scheme '{scheme_name}' (type: {scheme_def.type})."
57+
)
58+
http_kwargs['headers'] = headers
59+
return request_payload, http_kwargs
60+
61+
# Case 1b: OAuth2 and OIDC schemes, which are implicitly Bearer
62+
case OAuth2SecurityScheme() | OpenIdConnectSecurityScheme():
63+
headers["Authorization"] = f"Bearer {credential}"
64+
logger.debug(
65+
f"Added Bearer token for scheme '{scheme_name}' (type: {scheme_def.type})."
66+
)
67+
http_kwargs['headers'] = headers
68+
return request_payload, http_kwargs
6269

63-
# Case 2: API Key in Header
64-
case APIKeySecurityScheme(in_=In.header):
65-
headers[scheme_def.name] = credential
66-
logger.debug(
67-
f"Added API Key Header for scheme '{scheme_name}'."
68-
)
69-
return request_payload, http_kwargs
70+
# Case 2: API Key in Header
71+
case APIKeySecurityScheme(in_=In.header):
72+
headers[scheme_def.name] = credential
73+
logger.debug(
74+
f"Added API Key Header for scheme '{scheme_name}'."
75+
)
76+
http_kwargs['headers'] = headers
77+
return request_payload, http_kwargs
7078

7179
# Note: Other cases like API keys in query/cookie are not handled and will be skipped.
7280

src/a2a/client/auth/user.py

Lines changed: 0 additions & 29 deletions
This file was deleted.

0 commit comments

Comments
 (0)