Skip to content

Commit 10f0ae8

Browse files
dmandarholtskinner
andauthored
Update src/a2a/client/auth/interceptor.py
Co-authored-by: Holt Skinner <[email protected]>
1 parent b584826 commit 10f0ae8

File tree

1 file changed

+16
-22
lines changed

1 file changed

+16
-22
lines changed

src/a2a/client/auth/interceptor.py

Lines changed: 16 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -49,31 +49,25 @@ async def intercept(
4949

5050
headers = http_kwargs.get('headers', {})
5151

52-
is_bearer_scheme = False
53-
if (
54-
isinstance(scheme_def, HTTPAuthSecurityScheme)
55-
and scheme_def.scheme.lower() == 'bearer'
56-
) or isinstance(
57-
scheme_def,
58-
OAuth2SecurityScheme | OpenIdConnectSecurityScheme,
59-
):
60-
is_bearer_scheme = True
61-
62-
if is_bearer_scheme:
63-
headers['Authorization'] = f'Bearer {credential}'
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}"
6458
logger.debug(
6559
f"Added Bearer token for scheme '{scheme_name}' (type: {scheme_def.type})."
6660
)
67-
http_kwargs['headers'] = headers
6861
return request_payload, http_kwargs
69-
if isinstance(scheme_def, APIKeySecurityScheme):
70-
if scheme_def.in_ == In.header:
71-
headers[scheme_def.name] = credential
72-
logger.debug(
73-
f"Added API Key Header for scheme '{scheme_name}'."
74-
)
75-
http_kwargs['headers'] = headers
76-
return request_payload, http_kwargs
77-
# Note: API keys in query or cookie are not handled here.
62+
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+
71+
# Note: Other cases like API keys in query/cookie are not handled and will be skipped.
7872

7973
return request_payload, http_kwargs

0 commit comments

Comments
 (0)