22
33import re
44from dataclasses import dataclass
5- from typing import Any
5+ from typing import Any , Optional
66
77from starlette .datastructures import Headers
88from starlette .requests import Request
@@ -24,7 +24,8 @@ class OpenApiMiddleware(JsonResponseMiddleware):
2424 public_endpoints : EndpointMethods
2525 default_public : bool
2626 root_path : str = ""
27- oidc_auth_scheme_name : str = "oidcAuth"
27+ auth_scheme_name : str = "oidcAuth"
28+ auth_scheme_override : Optional [dict ] = None
2829
2930 json_content_type_expr : str = r"application/(vnd\.oai\.openapi\+json?|json)"
3031
@@ -53,7 +54,7 @@ def transform_json(self, data: dict[str, Any], request: Request) -> dict[str, An
5354 # Add security scheme
5455 components = data .setdefault ("components" , {})
5556 securitySchemes = components .setdefault ("securitySchemes" , {})
56- securitySchemes [self .oidc_auth_scheme_name ] = {
57+ securitySchemes [self .auth_scheme_name ] = self . auth_scheme_override or {
5758 "type" : "openIdConnect" ,
5859 "openIdConnectUrl" : self .oidc_config_url ,
5960 }
@@ -70,6 +71,6 @@ def transform_json(self, data: dict[str, Any], request: Request) -> dict[str, An
7071 )
7172 if match .is_private :
7273 config .setdefault ("security" , []).append (
73- {self .oidc_auth_scheme_name : match .required_scopes }
74+ {self .auth_scheme_name : match .required_scopes }
7475 )
7576 return data
0 commit comments