Skip to content

Commit a6f05d0

Browse files
authored
Bump Authlib to ~=1.6.0 (#14364)
1 parent e9bbd91 commit a6f05d0

26 files changed

Lines changed: 229 additions & 45 deletions

stubs/Authlib/@tests/stubtest_allowlist.txt

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,3 +37,31 @@ authlib.oauth2.rfc9068.claims.JWTAccessTokenClaims.validate
3737
(authlib.jose.rfc7518.jws_algs.HMACAlgorithm.SHA256)?
3838
(authlib.jose.rfc7518.jws_algs.HMACAlgorithm.SHA384)?
3939
(authlib.jose.rfc7518.jws_algs.HMACAlgorithm.SHA512)?
40+
41+
# Methods whose *args and **kwargs arguments are added dynamically due to the @hooked decorator:
42+
authlib.oauth2.rfc6749.AuthorizationCodeGrant.create_token_response
43+
authlib.oauth2.rfc6749.AuthorizationCodeGrant.validate_token_request
44+
authlib.oauth2.rfc6749.AuthorizationEndpointMixin.validate_consent_request
45+
authlib.oauth2.rfc6749.ClientCredentialsGrant.create_token_response
46+
authlib.oauth2.rfc6749.ImplicitGrant.validate_authorization_request
47+
authlib.oauth2.rfc6749.RefreshTokenGrant.create_token_response
48+
authlib.oauth2.rfc6749.ResourceOwnerPasswordCredentialsGrant.create_token_response
49+
authlib.oauth2.rfc6749.grants.AuthorizationCodeGrant.create_token_response
50+
authlib.oauth2.rfc6749.grants.AuthorizationCodeGrant.validate_token_request
51+
authlib.oauth2.rfc6749.grants.AuthorizationEndpointMixin.validate_consent_request
52+
authlib.oauth2.rfc6749.grants.ClientCredentialsGrant.create_token_response
53+
authlib.oauth2.rfc6749.grants.ImplicitGrant.validate_authorization_request
54+
authlib.oauth2.rfc6749.grants.RefreshTokenGrant.create_token_response
55+
authlib.oauth2.rfc6749.grants.ResourceOwnerPasswordCredentialsGrant.create_token_response
56+
authlib.oauth2.rfc6749.grants.authorization_code.AuthorizationCodeGrant.create_token_response
57+
authlib.oauth2.rfc6749.grants.authorization_code.AuthorizationCodeGrant.validate_token_request
58+
authlib.oauth2.rfc6749.grants.base.AuthorizationEndpointMixin.validate_consent_request
59+
authlib.oauth2.rfc6749.grants.client_credentials.ClientCredentialsGrant.create_token_response
60+
authlib.oauth2.rfc6749.grants.implicit.ImplicitGrant.validate_authorization_request
61+
authlib.oauth2.rfc6749.grants.refresh_token.RefreshTokenGrant.create_token_response
62+
authlib.oauth2.rfc6749.grants.resource_owner_password_credentials.ResourceOwnerPasswordCredentialsGrant.create_token_response
63+
authlib.oauth2.rfc8628.DeviceCodeGrant.create_token_response
64+
authlib.oauth2.rfc8628.device_code.DeviceCodeGrant.create_token_response
65+
authlib.oidc.core.OpenIDImplicitGrant.validate_consent_request
66+
authlib.oidc.core.grants.OpenIDImplicitGrant.validate_consent_request
67+
authlib.oidc.core.grants.implicit.OpenIDImplicitGrant.validate_consent_request

stubs/Authlib/METADATA.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
version = "~= 1.5.2"
1+
version = "~= 1.6.0"
22
upstream_repository = "https://github.com/lepture/authlib"
33
requires = ["cryptography"]
44
partial_stub = true
Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
11
class AuthlibDeprecationWarning(DeprecationWarning): ...
22

3-
def deprecate(message: str, version: str | None = None, link_uid: str | None = None, link_file: str | None = None) -> None: ...
3+
def deprecate(
4+
message: str, version: str | None = None, link_uid: str | None = None, link_file: str | None = None, stacklevel: int = 3
5+
) -> None: ...

stubs/Authlib/authlib/jose/rfc7515/models.pyi

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@ class JWSAlgorithm:
66
algorithm_type: str
77
algorithm_location: str
88
def prepare_key(self, raw_data) -> None: ...
9-
def sign(self, msg, key) -> None: ...
10-
def verify(self, msg, sig, key) -> None: ...
9+
def sign(self, msg, key): ...
10+
def verify(self, msg, sig, key) -> bool: ...
1111

1212
class JWSHeader(dict[str, object]):
1313
protected: Incomplete

stubs/Authlib/authlib/jose/rfc7518/jws_algs.pyi

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ class NoneAlgorithm(JWSAlgorithm):
88
description: str
99
def prepare_key(self, raw_data) -> None: ...
1010
def sign(self, msg, key): ...
11-
def verify(self, msg, sig, key): ...
11+
def verify(self, msg, sig, key) -> bool: ...
1212

1313
class HMACAlgorithm(JWSAlgorithm):
1414
SHA256 = hashlib.sha256
@@ -20,7 +20,7 @@ class HMACAlgorithm(JWSAlgorithm):
2020
def __init__(self, sha_type) -> None: ...
2121
def prepare_key(self, raw_data): ...
2222
def sign(self, msg, key): ...
23-
def verify(self, msg, sig, key): ...
23+
def verify(self, msg, sig, key) -> bool: ...
2424

2525
class RSAAlgorithm(JWSAlgorithm):
2626
SHA256: Incomplete
@@ -33,7 +33,7 @@ class RSAAlgorithm(JWSAlgorithm):
3333
def __init__(self, sha_type) -> None: ...
3434
def prepare_key(self, raw_data): ...
3535
def sign(self, msg, key): ...
36-
def verify(self, msg, sig, key): ...
36+
def verify(self, msg, sig, key) -> bool: ...
3737

3838
class ECAlgorithm(JWSAlgorithm):
3939
SHA256: Incomplete
@@ -46,7 +46,7 @@ class ECAlgorithm(JWSAlgorithm):
4646
def __init__(self, name, curve, sha_type) -> None: ...
4747
def prepare_key(self, raw_data): ...
4848
def sign(self, msg, key): ...
49-
def verify(self, msg, sig, key): ...
49+
def verify(self, msg, sig, key) -> bool: ...
5050

5151
class RSAPSSAlgorithm(JWSAlgorithm):
5252
SHA256: Incomplete
@@ -58,6 +58,6 @@ class RSAPSSAlgorithm(JWSAlgorithm):
5858
def __init__(self, sha_type) -> None: ...
5959
def prepare_key(self, raw_data): ...
6060
def sign(self, msg, key): ...
61-
def verify(self, msg, sig, key): ...
61+
def verify(self, msg, sig, key) -> bool: ...
6262

63-
JWS_ALGORITHMS: Incomplete
63+
JWS_ALGORITHMS: list[JWSAlgorithm]

stubs/Authlib/authlib/oauth2/rfc6749/__init__.pyi

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,15 +29,22 @@ from .grants import (
2929
TokenEndpointMixin as TokenEndpointMixin,
3030
)
3131
from .models import AuthorizationCodeMixin as AuthorizationCodeMixin, ClientMixin as ClientMixin, TokenMixin as TokenMixin
32-
from .requests import JsonRequest as JsonRequest, OAuth2Request as OAuth2Request
32+
from .requests import (
33+
JsonPayload as JsonPayload,
34+
JsonRequest as JsonRequest,
35+
OAuth2Payload as OAuth2Payload,
36+
OAuth2Request as OAuth2Request,
37+
)
3338
from .resource_protector import ResourceProtector as ResourceProtector, TokenValidator as TokenValidator
3439
from .token_endpoint import TokenEndpoint as TokenEndpoint
3540
from .util import list_to_scope as list_to_scope, scope_to_list as scope_to_list
3641
from .wrappers import OAuth2Token as OAuth2Token
3742

3843
__all__ = [
44+
"OAuth2Payload",
3945
"OAuth2Token",
4046
"OAuth2Request",
47+
"JsonPayload",
4148
"JsonRequest",
4249
"OAuth2Error",
4350
"AccessDeniedError",

stubs/Authlib/authlib/oauth2/rfc6749/authorization_server.pyi

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,16 @@
11
from collections.abc import Callable, Collection, Mapping
2-
from typing_extensions import TypeAlias
2+
from typing import overload
3+
from typing_extensions import TypeAlias, deprecated
34

45
from authlib.oauth2 import JsonRequest, OAuth2Error, OAuth2Request
56
from authlib.oauth2.rfc6749 import BaseGrant, ClientMixin
67
from authlib.oauth2.rfc6750 import BearerTokenGenerator
78

9+
from .hooks import Hookable
10+
811
_ServerResponse: TypeAlias = tuple[int, str, list[tuple[str, str]]]
912

10-
class AuthorizationServer:
13+
class AuthorizationServer(Hookable):
1114
scopes_supported: Collection[str] | None
1215
def __init__(self, scopes_supported: Collection[str] | None = None) -> None: ...
1316
def query_client(self, client_id: str) -> ClientMixin: ...
@@ -24,12 +27,13 @@ class AuthorizationServer:
2427
def register_token_generator(self, grant_type: str, func: BearerTokenGenerator) -> None: ...
2528
def authenticate_client(self, request: OAuth2Request, methods: Collection[str], endpoint: str = "token") -> ClientMixin: ...
2629
def register_client_auth_method(self, method, func) -> None: ...
30+
def register_extension(self, extension) -> None: ...
2731
def get_error_uri(self, request, error) -> None: ...
2832
def send_signal(self, name, *args: object, **kwargs: object) -> None: ...
2933
def create_oauth2_request(self, request) -> OAuth2Request: ...
3034
def create_json_request(self, request) -> JsonRequest: ...
3135
def handle_response(self, status: int, body: Mapping[str, object], headers: Mapping[str, str]) -> object: ...
32-
def validate_requested_scope(self, scope: str, state: str | None = None) -> None: ...
36+
def validate_requested_scope(self, scope: str) -> None: ...
3337
def register_grant(
3438
self, grant_cls: type[BaseGrant], extensions: Collection[Callable[[BaseGrant], None]] | None = None
3539
) -> None: ...
@@ -38,6 +42,10 @@ class AuthorizationServer:
3842
def get_consent_grant(self, request=None, end_user=None): ...
3943
def get_token_grant(self, request: OAuth2Request) -> BaseGrant: ...
4044
def create_endpoint_response(self, name, request=None): ...
45+
@overload
46+
@deprecated("The 'grant' parameter will become mandatory.")
4147
def create_authorization_response(self, request=None, grant_user=None) -> object: ...
48+
@overload
49+
def create_authorization_response(self, request=None, grant_user=None, grant=None) -> object: ...
4250
def create_token_response(self, request=None) -> _ServerResponse: ...
4351
def handle_error_response(self, request: OAuth2Request, error: OAuth2Error) -> object: ...

stubs/Authlib/authlib/oauth2/rfc6749/errors.pyi

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,17 @@ class UnauthorizedClientError(OAuth2Error):
4444
class UnsupportedResponseTypeError(OAuth2Error):
4545
error: str
4646
response_type: Incomplete
47-
def __init__(self, response_type) -> None: ...
47+
def __init__(
48+
self,
49+
response_type,
50+
description=None,
51+
uri=None,
52+
status_code=None,
53+
state=None,
54+
redirect_uri=None,
55+
redirect_fragment: bool = False,
56+
error=None,
57+
) -> None: ...
4858
def get_error_description(self): ...
4959

5060
class UnsupportedGrantTypeError(OAuth2Error):

stubs/Authlib/authlib/oauth2/rfc6749/grants/base.pyi

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,15 @@
11
from _typeshed import Incomplete
2-
from collections.abc import Callable, Collection
2+
from collections.abc import Collection
33
from typing_extensions import TypeAlias
44

55
from authlib.oauth2 import OAuth2Request
66
from authlib.oauth2.rfc6749 import ClientMixin
77

8+
from ..hooks import Hookable
9+
810
_ServerResponse: TypeAlias = tuple[int, str, list[tuple[str, str]]]
911

10-
class BaseGrant:
12+
class BaseGrant(Hookable):
1113
TOKEN_ENDPOINT_AUTH_METHODS: Collection[str]
1214
GRANT_TYPE: str | None
1315
TOKEN_RESPONSE_HEADER: Collection[tuple[str, str]]
@@ -29,8 +31,6 @@ class BaseGrant:
2931
def authenticate_token_endpoint_client(self) -> ClientMixin: ...
3032
def save_token(self, token): ...
3133
def validate_requested_scope(self) -> None: ...
32-
def register_hook(self, hook_type: str, hook: Callable[..., Incomplete]) -> None: ...
33-
def execute_hook(self, hook_type: str, *args: object, **kwargs: object) -> None: ...
3434

3535
class TokenEndpointMixin:
3636
TOKEN_ENDPOINT_HTTP_METHODS: Incomplete
@@ -49,7 +49,7 @@ class AuthorizationEndpointMixin:
4949
def validate_authorization_redirect_uri(request: OAuth2Request, client: ClientMixin) -> str: ...
5050
@staticmethod
5151
def validate_no_multiple_request_parameter(request: OAuth2Request): ...
52-
redirect_uri: Incomplete
53-
def validate_consent_request(self) -> None: ...
52+
redirect_uri: str
53+
def validate_consent_request(self) -> str: ...
5454
def validate_authorization_request(self) -> str: ...
5555
def create_authorization_response(self, redirect_uri: str, grant_user) -> _ServerResponse: ...
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
from collections.abc import Callable
2+
3+
class Hookable:
4+
def __init__(self) -> None: ...
5+
def register_hook(self, hook_type: str, hook: Callable[..., None]) -> None: ...
6+
def execute_hook(self, hook_type: str, *args, **kwargs) -> None: ...
7+
8+
def hooked(func=None, before: str | None = None, after: str | None = None): ...

0 commit comments

Comments
 (0)