@@ -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