2121
2222
2323class OAuth2GatewayProvider (KeycloakAuthProvider ):
24- def __init__ (
24+ def __init__ ( # noqa: WPS612
2525 self ,
2626 settings : Annotated [OAuth2GatewayProviderSettings , Depends (Stub (OAuth2GatewayProviderSettings ))],
2727 unit_of_work : Annotated [UnitOfWork , Depends ()],
@@ -38,8 +38,11 @@ def setup(cls, app: FastAPI) -> FastAPI:
3838 app .dependency_overrides [OAuth2GatewayProviderSettings ] = lambda : settings
3939 return app
4040
41- async def get_current_user (self , access_token : str | None , request : Request ) -> User : # noqa: WPS231, WPS217
42-
41+ async def get_current_user ( # noqa: WPS231, WPS217, WPS238
42+ self ,
43+ access_token : str | None ,
44+ request : Request ,
45+ ) -> User :
4346 if not access_token :
4447 log .debug ("No access token found in request" )
4548 raise AuthorizationError ("Missing auth credentials" )
@@ -56,7 +59,10 @@ async def get_current_user(self, access_token: str | None, request: Request) ->
5659 # these names are hardcoded in keycloak:
5760 # https://github.com/keycloak/keycloak/blob/3ca3a4ad349b4d457f6829eaf2ae05f1e01408be/core/src/main/java/org/keycloak/representations/IDToken.java
5861 # TODO: make sure which fields are guaranteed
59- login = token_info ["preferred_username" ]
62+ login = token_info .get ("preferred_username" )
63+ if not login :
64+ raise AuthorizationError ("Invalid token" )
65+
6066 email = token_info .get ("email" )
6167 first_name = token_info .get ("given_name" )
6268 middle_name = token_info .get ("middle_name" )
@@ -82,7 +88,11 @@ async def get_token_authorization_code_grant(
8288 client_id : str | None = None ,
8389 client_secret : str | None = None ,
8490 ) -> dict [str , Any ]:
85- raise NotImplementedError (f"Authorization code grant is not supported by { self .__class__ .__name__ } ." )
91+ raise NotImplementedError (
92+ f"Authorization code grant is not supported by { self .__class__ .__name__ } ." , # noqa: WPS237
93+ )
8694
8795 async def logout (self , user : User , refresh_token : str | None ) -> None :
88- raise NotImplementedError (f"Logout is not supported by { self .__class__ .__name__ } ." )
96+ raise NotImplementedError (
97+ f"Logout is not supported by { self .__class__ .__name__ } ." , # noqa: WPS237
98+ )
0 commit comments