Authlib 1.9.1__tar.gz → 1.9.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {authlib-1.9.1 → authlib-1.9.2}/Authlib.egg-info/PKG-INFO +1 -1
- {authlib-1.9.1 → authlib-1.9.2}/PKG-INFO +1 -1
- {authlib-1.9.1 → authlib-1.9.2}/authlib/consts.py +1 -1
- {authlib-1.9.1 → authlib-1.9.2}/authlib/oauth2/drafts/id_jag.py +29 -2
- {authlib-1.9.1 → authlib-1.9.2}/Authlib.egg-info/SOURCES.txt +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/Authlib.egg-info/dependency_links.txt +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/Authlib.egg-info/requires.txt +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/Authlib.egg-info/top_level.txt +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/LICENSE +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/MANIFEST.in +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/README.md +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/__init__.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/_joserfc_helpers.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/common/__init__.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/common/encoding.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/common/errors.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/common/language.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/common/security.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/common/urls.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/deprecate.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/integrations/__init__.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/integrations/base_client/__init__.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/integrations/base_client/async_app.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/integrations/base_client/async_openid.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/integrations/base_client/errors.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/integrations/base_client/framework_integration.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/integrations/base_client/registry.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/integrations/base_client/sync_app.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/integrations/base_client/sync_openid.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/integrations/django_client/__init__.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/integrations/django_client/apps.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/integrations/django_client/integration.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/integrations/django_oauth1/__init__.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/integrations/django_oauth1/authorization_server.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/integrations/django_oauth1/nonce.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/integrations/django_oauth1/resource_protector.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/integrations/django_oauth2/__init__.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/integrations/django_oauth2/authorization_server.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/integrations/django_oauth2/endpoints.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/integrations/django_oauth2/requests.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/integrations/django_oauth2/resource_protector.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/integrations/django_oauth2/signals.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/integrations/flask_client/__init__.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/integrations/flask_client/apps.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/integrations/flask_client/integration.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/integrations/flask_oauth1/__init__.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/integrations/flask_oauth1/authorization_server.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/integrations/flask_oauth1/cache.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/integrations/flask_oauth1/resource_protector.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/integrations/flask_oauth2/__init__.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/integrations/flask_oauth2/authorization_server.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/integrations/flask_oauth2/errors.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/integrations/flask_oauth2/requests.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/integrations/flask_oauth2/resource_protector.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/integrations/flask_oauth2/signals.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/integrations/httpx_client/__init__.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/integrations/httpx_client/_compat.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/integrations/httpx_client/assertion_client.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/integrations/httpx_client/oauth1_client.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/integrations/httpx_client/oauth2_client.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/integrations/httpx_client/utils.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/integrations/requests_client/__init__.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/integrations/requests_client/assertion_session.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/integrations/requests_client/oauth1_session.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/integrations/requests_client/oauth2_session.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/integrations/requests_client/utils.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/integrations/sqla_oauth2/__init__.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/integrations/sqla_oauth2/client_mixin.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/integrations/sqla_oauth2/functions.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/integrations/sqla_oauth2/tokens_mixins.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/integrations/starlette_client/__init__.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/integrations/starlette_client/apps.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/integrations/starlette_client/integration.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/jose/__init__.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/jose/drafts/__init__.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/jose/drafts/_jwe_algorithms.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/jose/drafts/_jwe_enc_cryptodome.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/jose/drafts/_jwe_enc_cryptography.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/jose/errors.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/jose/jwk.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/jose/rfc7515/__init__.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/jose/rfc7515/jws.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/jose/rfc7515/models.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/jose/rfc7516/__init__.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/jose/rfc7516/jwe.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/jose/rfc7516/models.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/jose/rfc7517/__init__.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/jose/rfc7517/_cryptography_key.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/jose/rfc7517/asymmetric_key.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/jose/rfc7517/base_key.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/jose/rfc7517/jwk.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/jose/rfc7517/key_set.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/jose/rfc7518/__init__.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/jose/rfc7518/ec_key.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/jose/rfc7518/jwe_algs.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/jose/rfc7518/jwe_encs.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/jose/rfc7518/jwe_zips.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/jose/rfc7518/jws_algs.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/jose/rfc7518/oct_key.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/jose/rfc7518/rsa_key.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/jose/rfc7518/util.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/jose/rfc7519/__init__.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/jose/rfc7519/claims.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/jose/rfc7519/jwt.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/jose/rfc8037/__init__.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/jose/rfc8037/jws_eddsa.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/jose/rfc8037/okp_key.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/jose/util.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/oauth1/__init__.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/oauth1/client.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/oauth1/errors.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/oauth1/rfc5849/__init__.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/oauth1/rfc5849/authorization_server.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/oauth1/rfc5849/base_server.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/oauth1/rfc5849/client_auth.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/oauth1/rfc5849/errors.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/oauth1/rfc5849/models.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/oauth1/rfc5849/parameters.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/oauth1/rfc5849/resource_protector.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/oauth1/rfc5849/rsa.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/oauth1/rfc5849/signature.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/oauth1/rfc5849/util.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/oauth1/rfc5849/wrapper.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/oauth2/__init__.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/oauth2/auth.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/oauth2/base.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/oauth2/claims.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/oauth2/client.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/oauth2/drafts/__init__.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/oauth2/rfc6749/__init__.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/oauth2/rfc6749/authenticate_client.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/oauth2/rfc6749/authorization_server.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/oauth2/rfc6749/endpoint.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/oauth2/rfc6749/errors.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/oauth2/rfc6749/grants/__init__.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/oauth2/rfc6749/grants/authorization_code.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/oauth2/rfc6749/grants/base.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/oauth2/rfc6749/grants/client_credentials.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/oauth2/rfc6749/grants/implicit.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/oauth2/rfc6749/grants/refresh_token.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/oauth2/rfc6749/grants/resource_owner_password_credentials.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/oauth2/rfc6749/hooks.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/oauth2/rfc6749/models.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/oauth2/rfc6749/parameters.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/oauth2/rfc6749/requests.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/oauth2/rfc6749/resource_protector.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/oauth2/rfc6749/token_endpoint.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/oauth2/rfc6749/util.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/oauth2/rfc6749/wrappers.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/oauth2/rfc6750/__init__.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/oauth2/rfc6750/errors.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/oauth2/rfc6750/parameters.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/oauth2/rfc6750/token.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/oauth2/rfc6750/validator.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/oauth2/rfc7009/__init__.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/oauth2/rfc7009/parameters.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/oauth2/rfc7009/revocation.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/oauth2/rfc7521/__init__.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/oauth2/rfc7521/client.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/oauth2/rfc7523/__init__.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/oauth2/rfc7523/assertion.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/oauth2/rfc7523/auth.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/oauth2/rfc7523/client.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/oauth2/rfc7523/jwt_bearer.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/oauth2/rfc7523/token.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/oauth2/rfc7523/validator.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/oauth2/rfc7591/__init__.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/oauth2/rfc7591/claims.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/oauth2/rfc7591/endpoint.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/oauth2/rfc7591/errors.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/oauth2/rfc7592/__init__.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/oauth2/rfc7592/endpoint.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/oauth2/rfc7636/__init__.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/oauth2/rfc7636/challenge.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/oauth2/rfc7662/__init__.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/oauth2/rfc7662/introspection.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/oauth2/rfc7662/models.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/oauth2/rfc7662/token_validator.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/oauth2/rfc8414/__init__.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/oauth2/rfc8414/models.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/oauth2/rfc8414/well_known.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/oauth2/rfc8628/__init__.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/oauth2/rfc8628/device_code.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/oauth2/rfc8628/endpoint.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/oauth2/rfc8628/errors.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/oauth2/rfc8628/models.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/oauth2/rfc8693/__init__.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/oauth2/rfc9068/__init__.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/oauth2/rfc9068/claims.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/oauth2/rfc9068/introspection.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/oauth2/rfc9068/revocation.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/oauth2/rfc9068/token.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/oauth2/rfc9068/token_validator.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/oauth2/rfc9101/__init__.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/oauth2/rfc9101/authorization_server.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/oauth2/rfc9101/discovery.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/oauth2/rfc9101/errors.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/oauth2/rfc9101/registration.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/oauth2/rfc9207/__init__.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/oauth2/rfc9207/discovery.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/oauth2/rfc9207/parameter.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/oidc/__init__.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/oidc/core/__init__.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/oidc/core/authorization_request.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/oidc/core/claims.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/oidc/core/errors.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/oidc/core/grants/__init__.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/oidc/core/grants/_legacy.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/oidc/core/grants/code.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/oidc/core/grants/hybrid.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/oidc/core/grants/implicit.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/oidc/core/grants/util.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/oidc/core/models.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/oidc/core/userinfo.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/oidc/core/util.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/oidc/discovery/__init__.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/oidc/discovery/models.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/oidc/discovery/well_known.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/oidc/registration/__init__.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/oidc/registration/claims.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/oidc/rpinitiated/__init__.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/oidc/rpinitiated/discovery.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/oidc/rpinitiated/end_session.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/authlib/oidc/rpinitiated/registration.py +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/pyproject.toml +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/setup.cfg +0 -0
- {authlib-1.9.1 → authlib-1.9.2}/setup.py +0 -0
|
@@ -32,6 +32,7 @@ from authlib.common.security import generate_token
|
|
|
32
32
|
from ..rfc6749 import BaseGrant
|
|
33
33
|
from ..rfc6749 import InvalidGrantError
|
|
34
34
|
from ..rfc6749 import InvalidRequestError
|
|
35
|
+
from ..rfc6749 import InvalidScopeError
|
|
35
36
|
from ..rfc6749 import TokenEndpointMixin
|
|
36
37
|
from ..rfc6749 import UnauthorizedClientError
|
|
37
38
|
from ..rfc6749 import scope_to_list
|
|
@@ -182,6 +183,7 @@ class IDJAGGrant(BaseGrant, TokenEndpointMixin):
|
|
|
182
183
|
self.request.client = client
|
|
183
184
|
log.debug("Validate token request of %s", client)
|
|
184
185
|
self.validate_requested_scope()
|
|
186
|
+
self.request.scope = self._resolve_scope(claims)
|
|
185
187
|
|
|
186
188
|
# Authenticate user from sub claim (required by ID-JAG).
|
|
187
189
|
user = self.authenticate_user(claims["sub"])
|
|
@@ -189,7 +191,7 @@ class IDJAGGrant(BaseGrant, TokenEndpointMixin):
|
|
|
189
191
|
raise InvalidGrantError(description="Invalid 'sub' value in assertion")
|
|
190
192
|
|
|
191
193
|
# Application policy check.
|
|
192
|
-
scopes = scope_to_list(self.request.
|
|
194
|
+
scopes = scope_to_list(self.request.scope) or []
|
|
193
195
|
if not self.check_id_jag_permission(client, user, scopes):
|
|
194
196
|
raise InvalidGrantError(
|
|
195
197
|
description=(
|
|
@@ -203,7 +205,7 @@ class IDJAGGrant(BaseGrant, TokenEndpointMixin):
|
|
|
203
205
|
def create_token_response(self):
|
|
204
206
|
"""Issue an access token (no refresh token per the ID-JAG draft)."""
|
|
205
207
|
token = self.generate_token(
|
|
206
|
-
scope=self.request.
|
|
208
|
+
scope=self.request.scope,
|
|
207
209
|
user=self.request.user,
|
|
208
210
|
include_refresh_token=False,
|
|
209
211
|
)
|
|
@@ -241,6 +243,31 @@ class IDJAGGrant(BaseGrant, TokenEndpointMixin):
|
|
|
241
243
|
|
|
242
244
|
return token.claims
|
|
243
245
|
|
|
246
|
+
def _resolve_scope(self, claims):
|
|
247
|
+
"""Return the scope of the access token.
|
|
248
|
+
|
|
249
|
+
The scope is bounded by the scope claim of the assertion, and
|
|
250
|
+
defaults to it. Without that claim, the requested scope is used.
|
|
251
|
+
"""
|
|
252
|
+
requested = self.request.payload.scope
|
|
253
|
+
if "scope" not in claims:
|
|
254
|
+
return requested
|
|
255
|
+
|
|
256
|
+
granted = claims["scope"]
|
|
257
|
+
if not isinstance(granted, str):
|
|
258
|
+
raise InvalidGrantError(description="Invalid 'scope' claim in assertion")
|
|
259
|
+
|
|
260
|
+
if not requested:
|
|
261
|
+
return granted
|
|
262
|
+
|
|
263
|
+
# RFC 7521 §4.1: "the requested scope MUST be equal to or less than
|
|
264
|
+
# the scope originally granted to the authorized accessor."
|
|
265
|
+
if not set(scope_to_list(requested)).issubset(scope_to_list(granted)):
|
|
266
|
+
raise InvalidScopeError(
|
|
267
|
+
description="The requested scope exceeds the 'scope' claim in assertion"
|
|
268
|
+
)
|
|
269
|
+
return requested
|
|
270
|
+
|
|
244
271
|
def _extract_assertion(self, assertion: str):
|
|
245
272
|
try:
|
|
246
273
|
obj = jws.extract_compact(to_bytes(assertion))
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{authlib-1.9.1 → authlib-1.9.2}/authlib/oauth2/rfc6749/grants/resource_owner_password_credentials.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|