diff --git a/stubs/Authlib/METADATA.toml b/stubs/Authlib/METADATA.toml index d4984a274e2d..1fe44bd55d33 100644 --- a/stubs/Authlib/METADATA.toml +++ b/stubs/Authlib/METADATA.toml @@ -1,4 +1,4 @@ -version = "1.8.0" +version = "1.9.1" upstream-repository = "https://github.com/authlib/authlib" dependencies = ["cryptography"] # Requires a version of flask with a `py.typed` file diff --git a/stubs/Authlib/authlib/oauth2/drafts/__init__.pyi b/stubs/Authlib/authlib/oauth2/drafts/__init__.pyi new file mode 100644 index 000000000000..6974f1b49624 --- /dev/null +++ b/stubs/Authlib/authlib/oauth2/drafts/__init__.pyi @@ -0,0 +1,3 @@ +from .id_jag import IDJAGGrant as IDJAGGrant + +__all__ = ["IDJAGGrant"] diff --git a/stubs/Authlib/authlib/oauth2/drafts/id_jag.pyi b/stubs/Authlib/authlib/oauth2/drafts/id_jag.pyi new file mode 100644 index 000000000000..d1f1ac553f32 --- /dev/null +++ b/stubs/Authlib/authlib/oauth2/drafts/id_jag.pyi @@ -0,0 +1,23 @@ +from logging import Logger +from typing import ClassVar + +from authlib.oauth2.rfc6749 import BaseGrant, TokenEndpointMixin +from authlib.oauth2.rfc7523.jwt_bearer import JWT_BEARER_GRANT_TYPE + +log: Logger + +class IDJAGGrant(BaseGrant, TokenEndpointMixin): + GRANT_TYPE = JWT_BEARER_GRANT_TYPE + REQUIRED_TYP: ClassVar[str] + CLAIMS_OPTIONS: ClassVar[dict[str, dict[str, bool]]] + LEEWAY: ClassVar[int] + @staticmethod + def sign(key, issuer, audience, subject, client_id, jti=None, issued_at=None, expires_at=None, claims=None, **kwargs): ... + def validate_token_request(self) -> None: ... + def create_token_response(self): ... + def get_audiences(self) -> list[str]: ... + # Returns a joserfc.jwk.Key or joserfc.jwk.KeySet + def resolve_issuer_key(self, issuer, headers): ... + def authenticate_user(self, subject): ... + def check_jti(self, claims, jti) -> bool: ... + def check_id_jag_permission(self, client, user, scopes) -> bool: ... diff --git a/stubs/Authlib/authlib/oauth2/rfc9101/authorization_server.pyi b/stubs/Authlib/authlib/oauth2/rfc9101/authorization_server.pyi index 5461a00b654c..d4640c975dc5 100644 --- a/stubs/Authlib/authlib/oauth2/rfc9101/authorization_server.pyi +++ b/stubs/Authlib/authlib/oauth2/rfc9101/authorization_server.pyi @@ -11,6 +11,7 @@ class JWTAuthenticationRequest: def __call__(self, authorization_server: AuthorizationServer) -> None: ... def get_request_object_signing_algorithms(self, client) -> list[str]: ... def parse_authorization_request(self, authorization_server: AuthorizationServer, request: OAuth2Request) -> None: ... + def validate_request_uri(self, request_uri: str, client: ClientMixin) -> bool: ... def get_request_object(self, request_uri: str): ... def resolve_client_public_key(self, client: ClientMixin): ... def get_server_metadata(self) -> dict[str, Incomplete]: ... diff --git a/stubs/Authlib/authlib/oidc/core/__init__.pyi b/stubs/Authlib/authlib/oidc/core/__init__.pyi index 0763373dc8ff..d2aba84665a0 100644 --- a/stubs/Authlib/authlib/oidc/core/__init__.pyi +++ b/stubs/Authlib/authlib/oidc/core/__init__.pyi @@ -1,3 +1,4 @@ +from .authorization_request import OpenIDJWTAuthenticationRequest as OpenIDJWTAuthenticationRequest from .claims import ( CodeIDToken as CodeIDToken, HybridIDToken as HybridIDToken, @@ -16,6 +17,7 @@ from .models import AuthorizationCodeMixin as AuthorizationCodeMixin from .userinfo import UserInfoEndpoint as UserInfoEndpoint __all__ = [ + "OpenIDJWTAuthenticationRequest", "AuthorizationCodeMixin", "IDToken", "CodeIDToken", diff --git a/stubs/Authlib/authlib/oidc/core/authorization_request.pyi b/stubs/Authlib/authlib/oidc/core/authorization_request.pyi new file mode 100644 index 000000000000..183ad2f98f7c --- /dev/null +++ b/stubs/Authlib/authlib/oidc/core/authorization_request.pyi @@ -0,0 +1,5 @@ +from authlib.oauth2.rfc6749 import ClientMixin +from authlib.oauth2.rfc9101 import JWTAuthenticationRequest + +class OpenIDJWTAuthenticationRequest(JWTAuthenticationRequest): + def get_client_request_uris(self, client: ClientMixin) -> list[str]: ...