auth-middleware 0.3.4__tar.gz → 0.3.7__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.
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/PKG-INFO +2 -2
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/.buildinfo +1 -1
- auth_middleware-0.3.7/docs/.doctrees/cognito_provider.doctree +0 -0
- auth_middleware-0.3.7/docs/.doctrees/environment.pickle +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/.doctrees/functions.doctree +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/.doctrees/groups-provider.doctree +0 -0
- auth_middleware-0.3.7/docs/.doctrees/jwt_auth_provider.doctree +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/.doctrees/permissions-provider.doctree +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/_modules/auth_middleware/functions.html +51 -2
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/_modules/auth_middleware/jwt_auth_middleware.html +2 -2
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/_modules/auth_middleware/jwt_bearer_manager.html +16 -7
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/_modules/auth_middleware/providers/authn/cognito_authz_provider_settings.html +2 -2
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/_modules/auth_middleware/providers/authn/cognito_provider.html +63 -66
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/_modules/auth_middleware/providers/authn/jwt_provider.html +8 -5
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/_modules/auth_middleware/providers/authn/jwt_provider_settings.html +2 -2
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/_modules/auth_middleware/providers/authz/cognito_groups_provider.html +9 -8
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/_modules/auth_middleware/providers/authz/groups_provider.html +4 -5
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/_modules/auth_middleware/providers/authz/permissions_provider.html +4 -5
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/_modules/auth_middleware/providers/authz/sql_groups_provider.html +4 -5
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/_modules/auth_middleware/providers/authz/sql_permissions_provider.html +4 -5
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/_modules/index.html +2 -2
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/_static/documentation_options.js +1 -1
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/api.html +2 -2
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/auth-authn.html +2 -2
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/cognito_provider.html +5 -5
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/entra_id_provider.html +2 -2
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/exceptions.html +2 -2
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/extending-authz-providers.html +2 -2
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/functions.html +35 -2
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/genindex.html +6 -2
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/groups-provider.html +5 -5
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/index.html +2 -2
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/infrastructure/cognito-setup.html +2 -2
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/infrastructure/entra-id-setup.html +2 -2
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/infrastructure/google-setup.html +2 -2
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/infrastructure.html +2 -2
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/installation.html +2 -2
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/jwks-cache.html +2 -2
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/jwt_auth_middleware.html +2 -2
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/jwt_auth_provider.html +4 -4
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/jwt_bearer_manager.html +2 -2
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/middleware-configuration.html +2 -2
- auth_middleware-0.3.7/docs/objects.inv +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/permissions-provider.html +4 -4
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/py-modindex.html +2 -2
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/search.html +2 -2
- auth_middleware-0.3.7/docs/searchindex.js +1 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/services.html +2 -2
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/types.html +2 -2
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/user-guide.html +2 -2
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/user-property.html +2 -2
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs_source/conf.py +1 -1
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/pyproject.toml +3 -2
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/src/auth_middleware/__init__.py +1 -1
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/src/auth_middleware/auth_provider.py +2 -5
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/src/auth_middleware/functions.py +43 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/src/auth_middleware/jwt_bearer_manager.py +13 -4
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/src/auth_middleware/providers/authn/cognito_provider.py +61 -64
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/src/auth_middleware/providers/authn/identity_pool_provider.py +1 -1
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/src/auth_middleware/providers/authn/jwt_provider.py +6 -3
- auth_middleware-0.3.7/src/auth_middleware/providers/authz/cognito_groups_as_roles_provider.py +53 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/src/auth_middleware/providers/authz/cognito_groups_provider.py +7 -6
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/src/auth_middleware/providers/authz/groups_provider.py +2 -3
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/src/auth_middleware/providers/authz/permissions_provider.py +2 -3
- auth_middleware-0.3.7/src/auth_middleware/providers/authz/roles_provider.py +26 -0
- auth_middleware-0.3.7/src/auth_middleware/providers/authz/sql_base_model.py +27 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/src/auth_middleware/providers/authz/sql_groups_provider.py +2 -3
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/src/auth_middleware/providers/authz/sql_permissions_provider.py +2 -3
- auth_middleware-0.3.7/src/auth_middleware/providers/cognito/__init__.py +3 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/src/auth_middleware/providers/entra_id/entra_id_provider.py +16 -20
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/src/auth_middleware/providers/entra_id/utils.py +0 -2
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/src/auth_middleware/repository/credentials_repository.py +0 -4
- auth_middleware-0.3.7/src/auth_middleware/role_checker.py +30 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/src/auth_middleware/services/m2m_detector.py +5 -4
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/src/auth_middleware/services/rate_limiter.py +52 -65
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/src/auth_middleware/types/user.py +47 -33
- auth_middleware-0.3.7/tests/test_abstract_stubs.py +69 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/tests/test_cli.py +4 -2
- auth_middleware-0.3.7/tests/test_cognito_groups_as_roles_provider.py +103 -0
- auth_middleware-0.3.7/tests/test_cognito_profile_provider.py +133 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/tests/test_cognito_provider.py +83 -91
- auth_middleware-0.3.7/tests/test_cognito_provider_clean.py +212 -0
- auth_middleware-0.3.7/tests/test_entra_id_provider.py +322 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/tests/test_functions.py +62 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/tests/test_identity_pool_provider.py +2 -2
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/tests/test_jwt_bearer_manager.py +13 -10
- auth_middleware-0.3.7/tests/test_role_checker.py +93 -0
- auth_middleware-0.3.7/tests/test_sql_groups_provider.py +119 -0
- auth_middleware-0.3.7/tests/test_sql_permissions_provider.py +118 -0
- auth_middleware-0.3.7/tests/test_user_comprehensive.py +156 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/uv.lock +18 -58
- auth_middleware-0.3.4/docs/.doctrees/cognito_provider.doctree +0 -0
- auth_middleware-0.3.4/docs/.doctrees/environment.pickle +0 -0
- auth_middleware-0.3.4/docs/.doctrees/jwt_auth_provider.doctree +0 -0
- auth_middleware-0.3.4/docs/objects.inv +0 -0
- auth_middleware-0.3.4/docs/searchindex.js +0 -1
- auth_middleware-0.3.4/src/auth_middleware/providers/authz/sql_base_model.py +0 -23
- auth_middleware-0.3.4/tests/__init__.py +0 -0
- auth_middleware-0.3.4/tests/test_cognito_provider_clean.py +0 -0
- auth_middleware-0.3.4/tests/test_sql_groups_provider.py +0 -0
- auth_middleware-0.3.4/tests/test_sql_permissions_provider.py +0 -0
- auth_middleware-0.3.4/tests/test_user_comprehensive.py +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/.coveragerc +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/.devcontainer/.bashrc +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/.devcontainer/Dockerfile +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/.devcontainer/QUICKSTART.md +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/.devcontainer/README.md +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/.devcontainer/devcontainer.json +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/.devcontainer/start.sh +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/.devcontainer/uv.toml +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/.devcontainer/verify-setup.sh +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/.flake8 +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/.github/workflows/release.yml +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/.gitignore +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/.python-version +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/.sonar/.sonar_lock +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/.sonar/report-task.txt +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/.sonarlint/connectedMode.json +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/.vscode/extensions.json +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/.vscode/launch.json +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/.vscode/settings.json +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/LICENSE +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/README.md +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/alembic/README +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/alembic/env.py +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/alembic/script.py.mako +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/alembic/versions/de961fac6f27_initial_migration.py +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/alembic.ini +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/.buildinfo.bak +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/.doctrees/__intersphinx_cache__/fastapi_objects.inv +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/.doctrees/__intersphinx_cache__/python_objects.inv +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/.doctrees/api.doctree +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/.doctrees/auth-authn.doctree +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/.doctrees/entra_id_provider.doctree +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/.doctrees/exceptions.doctree +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/.doctrees/extending-authz-providers.doctree +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/.doctrees/index.doctree +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/.doctrees/infrastructure/cognito-setup.doctree +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/.doctrees/infrastructure/entra-id-setup.doctree +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/.doctrees/infrastructure/google-setup.doctree +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/.doctrees/infrastructure.doctree +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/.doctrees/installation.doctree +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/.doctrees/jwks-cache.doctree +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/.doctrees/jwt_auth_middleware.doctree +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/.doctrees/jwt_bearer_manager.doctree +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/.doctrees/middleware-configuration.doctree +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/.doctrees/services.doctree +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/.doctrees/types.doctree +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/.doctrees/user-guide.doctree +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/.doctrees/user-property.doctree +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/.keep +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/.nojekyll +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/_sources/api.rst.txt +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/_sources/auth-authn.rst.txt +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/_sources/cognito_provider.rst.txt +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/_sources/entra_id_provider.rst.txt +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/_sources/exceptions.rst.txt +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/_sources/extending-authz-providers.rst.txt +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/_sources/functions.rst.txt +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/_sources/groups-provider.rst.txt +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/_sources/index.rst.txt +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/_sources/infrastructure/cognito-setup.rst.txt +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/_sources/infrastructure/entra-id-setup.rst.txt +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/_sources/infrastructure/google-setup.rst.txt +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/_sources/infrastructure.rst.txt +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/_sources/installation.rst.txt +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/_sources/jwks-cache.rst.txt +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/_sources/jwt_auth_middleware.rst.txt +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/_sources/jwt_auth_provider.rst.txt +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/_sources/jwt_bearer_manager.rst.txt +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/_sources/middleware-configuration.rst.txt +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/_sources/permissions-provider.rst.txt +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/_sources/services.rst.txt +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/_sources/types.rst.txt +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/_sources/user-guide.rst.txt +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/_sources/user-property.rst.txt +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/_static/_sphinx_javascript_frameworks_compat.js +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/_static/base-stemmer.js +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/_static/basic.css +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/_static/css/badge_only.css +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/_static/css/fonts/Roboto-Slab-Bold.woff +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/_static/css/fonts/Roboto-Slab-Bold.woff2 +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/_static/css/fonts/Roboto-Slab-Regular.woff +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/_static/css/fonts/Roboto-Slab-Regular.woff2 +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/_static/css/fonts/fontawesome-webfont.eot +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/_static/css/fonts/fontawesome-webfont.svg +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/_static/css/fonts/fontawesome-webfont.ttf +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/_static/css/fonts/fontawesome-webfont.woff +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/_static/css/fonts/fontawesome-webfont.woff2 +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/_static/css/fonts/lato-bold-italic.woff +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/_static/css/fonts/lato-bold-italic.woff2 +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/_static/css/fonts/lato-bold.woff +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/_static/css/fonts/lato-bold.woff2 +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/_static/css/fonts/lato-normal-italic.woff +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/_static/css/fonts/lato-normal-italic.woff2 +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/_static/css/fonts/lato-normal.woff +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/_static/css/fonts/lato-normal.woff2 +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/_static/css/theme.css +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/_static/doctools.js +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/_static/english-stemmer.js +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/_static/file.png +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/_static/fonts/Lato/lato-bold.eot +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/_static/fonts/Lato/lato-bold.ttf +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/_static/fonts/Lato/lato-bold.woff +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/_static/fonts/Lato/lato-bold.woff2 +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/_static/fonts/Lato/lato-bolditalic.eot +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/_static/fonts/Lato/lato-bolditalic.ttf +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/_static/fonts/Lato/lato-bolditalic.woff +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/_static/fonts/Lato/lato-bolditalic.woff2 +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/_static/fonts/Lato/lato-italic.eot +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/_static/fonts/Lato/lato-italic.ttf +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/_static/fonts/Lato/lato-italic.woff +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/_static/fonts/Lato/lato-italic.woff2 +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/_static/fonts/Lato/lato-regular.eot +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/_static/fonts/Lato/lato-regular.ttf +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/_static/fonts/Lato/lato-regular.woff +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/_static/fonts/Lato/lato-regular.woff2 +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/_static/fonts/RobotoSlab/roboto-slab-v7-bold.eot +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/_static/fonts/RobotoSlab/roboto-slab-v7-bold.ttf +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/_static/fonts/RobotoSlab/roboto-slab-v7-bold.woff +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/_static/fonts/RobotoSlab/roboto-slab-v7-bold.woff2 +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/_static/fonts/RobotoSlab/roboto-slab-v7-regular.eot +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/_static/fonts/RobotoSlab/roboto-slab-v7-regular.ttf +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/_static/fonts/RobotoSlab/roboto-slab-v7-regular.woff +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/_static/fonts/RobotoSlab/roboto-slab-v7-regular.woff2 +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/_static/jquery.js +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/_static/js/badge_only.js +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/_static/js/html5shiv-printshiv.min.js +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/_static/js/html5shiv.min.js +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/_static/js/theme.js +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/_static/js/versions.js +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/_static/language_data.js +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/_static/minus.png +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/_static/plus.png +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/_static/pygments.css +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/_static/searchtools.js +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/_static/sphinx_highlight.js +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs_source/Makefile +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs_source/api.rst +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs_source/auth-authn.rst +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs_source/cognito_provider.rst +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs_source/entra_id_provider.rst +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs_source/exceptions.rst +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs_source/extending-authz-providers.rst +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs_source/functions.rst +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs_source/groups-provider.rst +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs_source/index.rst +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs_source/infrastructure/cognito-setup.rst +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs_source/infrastructure/entra-id-setup.rst +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs_source/infrastructure/google-setup.rst +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs_source/infrastructure.rst +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs_source/installation.rst +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs_source/jwks-cache.rst +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs_source/jwt_auth_middleware.rst +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs_source/jwt_auth_provider.rst +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs_source/jwt_bearer_manager.rst +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs_source/make.bat +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs_source/middleware-configuration.rst +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs_source/permissions-provider.rst +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs_source/services.rst +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs_source/types.rst +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs_source/user-guide.rst +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs_source/user-property.rst +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/examples/audit_example.py +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/examples/auth_examples.py +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/examples/jwks_cache_example.py +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/examples/m2m_detection_example.py +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/examples/metrics_example.py +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/examples/rate_limiting_example.py +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/makefile +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/scripts/README.md +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/scripts/update_version.py +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/sonar-project.properties +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/src/auth_middleware/basic_auth_middleware.py +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/src/auth_middleware/cli.py +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/src/auth_middleware/commands/__init__.py +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/src/auth_middleware/exceptions/__init__.py +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/src/auth_middleware/exceptions/invalid_authorization_exception.py +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/src/auth_middleware/exceptions/invalid_credentials_exception.py +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/src/auth_middleware/exceptions/invalid_token_exception.py +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/src/auth_middleware/group_checker.py +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/src/auth_middleware/jwt_auth_middleware.py +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/src/auth_middleware/logging.py +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/src/auth_middleware/permissions_checker.py +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/src/auth_middleware/providers/__init__.py +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/src/auth_middleware/providers/authn/__init__.py +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/src/auth_middleware/providers/authn/cognito_authz_provider_settings.py +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/src/auth_middleware/providers/authn/identity_pool_client.py +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/src/auth_middleware/providers/authn/identity_pool_settings.py +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/src/auth_middleware/providers/authn/jwt_provider_settings.py +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/src/auth_middleware/providers/authz/__init__.py +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/src/auth_middleware/providers/authz/async_database.py +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/src/auth_middleware/providers/authz/async_database_settings.py +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/src/auth_middleware/providers/cognito/utils.py +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/src/auth_middleware/providers/entra_id/__init__.py +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/src/auth_middleware/providers/entra_id/settings.py +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/src/auth_middleware/providers/exceptions/aws_exception.py +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/src/auth_middleware/providers/exceptions/azure_exception.py +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/src/auth_middleware/providers/profile/__init__.py +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/src/auth_middleware/providers/profile/cognito_profile_provider.py +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/src/auth_middleware/providers/profile/profile_provider.py +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/src/auth_middleware/repository/__init__.py +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/src/auth_middleware/repository/json_credentials_repository.py +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/src/auth_middleware/repository/settings.py +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/src/auth_middleware/services/__init__.py +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/src/auth_middleware/services/audit.py +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/src/auth_middleware/services/metrics.py +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/src/auth_middleware/settings.py +0 -0
- {auth_middleware-0.3.4/src/auth_middleware/providers/cognito → auth_middleware-0.3.7/src/auth_middleware/types}/__init__.py +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/src/auth_middleware/types/aws_credentials.py +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/src/auth_middleware/types/jwt.py +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/src/auth_middleware/types/user_credentials.py +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/tests/0.APITesting/_Auth/(No) Get Id Token.bru +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/tests/0.APITesting/_Auth/Get Token (client credentials).bru +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/tests/0.APITesting/_Auth/Login.bru +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/tests/0.APITesting/bruno.json +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/tests/0.APITesting/environments/Development.bru +0 -0
- {auth_middleware-0.3.4/src/auth_middleware/types → auth_middleware-0.3.7/tests}/__init__.py +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/tests/conftest.py +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/tests/test_async_database.py +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/tests/test_audit.py +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/tests/test_auth_provider.py +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/tests/test_aws_credentials.py +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/tests/test_base_provider_comprehensive.py +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/tests/test_basic_auth_middleware.py +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/tests/test_basic_auth_middleware_clean.py +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/tests/test_cognito_utils.py +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/tests/test_dummy.py +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/tests/test_entra_id_init.py +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/tests/test_entra_id_settings.py +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/tests/test_entra_id_utils.py +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/tests/test_exceptions.py +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/tests/test_exceptions_comprehensive.py +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/tests/test_functions_comprehensive.py +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/tests/test_group_checker.py +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/tests/test_group_checker_comprehensive.py +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/tests/test_groups_provider.py +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/tests/test_groups_provider_comprehensive.py +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/tests/test_identity_pool_client.py +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/tests/test_identity_pool_settings.py +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/tests/test_json_credentials_repository.py +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/tests/test_jwks_cache_improvements.py +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/tests/test_jwt_auth_middleware.py +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/tests/test_jwt_auth_middleware_comprehensive.py +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/tests/test_jwt_provider.py +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/tests/test_jwt_provider_comprehensive.py +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/tests/test_jwt_provider_settings.py +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/tests/test_jwt_provider_settings_comprehensive.py +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/tests/test_jwt_types.py +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/tests/test_jwt_types_comprehensive.py +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/tests/test_logging.py +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/tests/test_m2m_detector.py +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/tests/test_metrics.py +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/tests/test_permissions_checker.py +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/tests/test_permissions_checker_comprehensive.py +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/tests/test_permissions_provider.py +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/tests/test_permissions_provider_comprehensive.py +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/tests/test_rate_limiter.py +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/tests/test_repository_settings.py +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/tests/test_types.py +0 -0
- {auth_middleware-0.3.4 → auth_middleware-0.3.7}/tests/test_user_m2m.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: auth-middleware
|
|
3
|
-
Version: 0.3.
|
|
3
|
+
Version: 0.3.7
|
|
4
4
|
Summary: Async Auth Middleware for FastAPI/Starlette
|
|
5
5
|
Project-URL: Homepage, https://impalah.github.io/auth-middleware/
|
|
6
6
|
Project-URL: Documentation, https://impalah.github.io/auth-middleware/
|
|
@@ -23,11 +23,11 @@ Requires-Dist: asyncpg>=0.31.0
|
|
|
23
23
|
Requires-Dist: click>=8.3.1
|
|
24
24
|
Requires-Dist: fastapi>=0.128.0
|
|
25
25
|
Requires-Dist: httpx>=0.28.1
|
|
26
|
+
Requires-Dist: joserfc>=1.6.3
|
|
26
27
|
Requires-Dist: loguru>=0.7.3
|
|
27
28
|
Requires-Dist: pydantic-settings>=2.12.0
|
|
28
29
|
Requires-Dist: pydantic[email]>=2.12.5
|
|
29
30
|
Requires-Dist: python-dotenv>=1.2.1
|
|
30
|
-
Requires-Dist: python-jose[cryptography]>=3.5.0
|
|
31
31
|
Requires-Dist: sqlalchemy[asyncio]>=2.0.46
|
|
32
32
|
Requires-Dist: svix-ksuid>=0.6.2
|
|
33
33
|
Description-Content-Type: text/markdown
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
# Sphinx build info version 1
|
|
2
2
|
# This file records the configuration used when building these files. When it is not found, a full rebuild will be done.
|
|
3
|
-
config:
|
|
3
|
+
config: 1aae05accc724cdfa9439808334fd364
|
|
4
4
|
tags: 645f666f9bcd5a90fca523b33c5a78b7
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
{auth_middleware-0.3.4 → auth_middleware-0.3.7}/docs/_modules/auth_middleware/functions.html
RENAMED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
<head>
|
|
6
6
|
<meta charset="utf-8" />
|
|
7
7
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
8
|
-
<title>auth_middleware.functions — Auth Middleware 0.3.
|
|
8
|
+
<title>auth_middleware.functions — Auth Middleware 0.3.7 documentation</title>
|
|
9
9
|
<link rel="stylesheet" type="text/css" href="../../_static/pygments.css?v=b86133f3" />
|
|
10
10
|
<link rel="stylesheet" type="text/css" href="../../_static/css/theme.css?v=9edc463e" />
|
|
11
11
|
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
<link rel="canonical" href="/auth-middleware/_modules/auth_middleware/functions.html" />
|
|
14
14
|
<script src="../../_static/jquery.js?v=5d32c60e"></script>
|
|
15
15
|
<script src="../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
|
|
16
|
-
<script src="../../_static/documentation_options.js?v=
|
|
16
|
+
<script src="../../_static/documentation_options.js?v=29d04658"></script>
|
|
17
17
|
<script src="../../_static/doctools.js?v=fd6eb6e6"></script>
|
|
18
18
|
<script src="../../_static/sphinx_highlight.js?v=6ffebe34"></script>
|
|
19
19
|
<script src="../../_static/js/theme.js"></script>
|
|
@@ -155,6 +155,7 @@
|
|
|
155
155
|
|
|
156
156
|
<span class="kn">from</span><span class="w"> </span><span class="nn">auth_middleware.group_checker</span><span class="w"> </span><span class="kn">import</span> <span class="n">GroupChecker</span>
|
|
157
157
|
<span class="kn">from</span><span class="w"> </span><span class="nn">auth_middleware.permissions_checker</span><span class="w"> </span><span class="kn">import</span> <span class="n">PermissionsChecker</span>
|
|
158
|
+
<span class="kn">from</span><span class="w"> </span><span class="nn">auth_middleware.role_checker</span><span class="w"> </span><span class="kn">import</span> <span class="n">RoleChecker</span>
|
|
158
159
|
<span class="kn">from</span><span class="w"> </span><span class="nn">auth_middleware.settings</span><span class="w"> </span><span class="kn">import</span> <span class="n">settings</span>
|
|
159
160
|
|
|
160
161
|
|
|
@@ -260,6 +261,54 @@
|
|
|
260
261
|
|
|
261
262
|
|
|
262
263
|
|
|
264
|
+
<div class="viewcode-block" id="require_roles">
|
|
265
|
+
<a class="viewcode-back" href="../../functions.html#auth_middleware.functions.require_roles">[docs]</a>
|
|
266
|
+
<span class="k">def</span><span class="w"> </span><span class="nf">require_roles</span><span class="p">(</span><span class="n">allowed_roles</span><span class="p">:</span> <span class="nb">list</span><span class="p">[</span><span class="nb">str</span><span class="p">])</span> <span class="o">-></span> <span class="n">Callable</span><span class="p">[</span><span class="o">...</span><span class="p">,</span> <span class="n">Any</span><span class="p">]:</span>
|
|
267
|
+
<span class="w"> </span><span class="sd">"""Check if the user has the required roles</span>
|
|
268
|
+
|
|
269
|
+
<span class="sd"> Args:</span>
|
|
270
|
+
<span class="sd"> allowed_roles (List[str]): a list of required roles</span>
|
|
271
|
+
<span class="sd"> """</span>
|
|
272
|
+
|
|
273
|
+
<span class="k">async</span> <span class="k">def</span><span class="w"> </span><span class="nf">_role_checker</span><span class="p">(</span><span class="n">request</span><span class="p">:</span> <span class="n">Request</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
|
274
|
+
<span class="w"> </span><span class="sd">"""Calls the RoleChecker class to check if</span>
|
|
275
|
+
<span class="sd"> the user has the required roles</span>
|
|
276
|
+
|
|
277
|
+
<span class="sd"> Args:</span>
|
|
278
|
+
<span class="sd"> request (Request): FastAPI request object</span>
|
|
279
|
+
|
|
280
|
+
<span class="sd"> Returns:</span>
|
|
281
|
+
<span class="sd"> RoleChecker: role checker object</span>
|
|
282
|
+
<span class="sd"> """</span>
|
|
283
|
+
<span class="n">checker</span> <span class="o">=</span> <span class="n">RoleChecker</span><span class="p">(</span><span class="n">allowed_roles</span><span class="p">)</span>
|
|
284
|
+
<span class="k">await</span> <span class="n">checker</span><span class="p">(</span><span class="n">request</span><span class="p">)</span>
|
|
285
|
+
|
|
286
|
+
<span class="k">return</span> <span class="n">_role_checker</span></div>
|
|
287
|
+
|
|
288
|
+
|
|
289
|
+
|
|
290
|
+
<div class="viewcode-block" id="has_roles">
|
|
291
|
+
<a class="viewcode-back" href="../../functions.html#auth_middleware.functions.has_roles">[docs]</a>
|
|
292
|
+
<span class="k">async</span> <span class="k">def</span><span class="w"> </span><span class="nf">has_roles</span><span class="p">(</span><span class="n">request</span><span class="p">:</span> <span class="n">Request</span><span class="p">,</span> <span class="n">allowed_roles</span><span class="p">:</span> <span class="nb">list</span><span class="p">[</span><span class="nb">str</span><span class="p">])</span> <span class="o">-></span> <span class="nb">bool</span><span class="p">:</span>
|
|
293
|
+
<span class="w"> </span><span class="sd">"""Check if the user has the required roles asynchronously</span>
|
|
294
|
+
|
|
295
|
+
<span class="sd"> Args:</span>
|
|
296
|
+
<span class="sd"> request (Request): FastAPI request object</span>
|
|
297
|
+
<span class="sd"> allowed_roles (List[str]): a list of required roles</span>
|
|
298
|
+
|
|
299
|
+
<span class="sd"> Returns:</span>
|
|
300
|
+
<span class="sd"> bool: True if the user has the required roles, False otherwise</span>
|
|
301
|
+
<span class="sd"> """</span>
|
|
302
|
+
<span class="n">checker</span> <span class="o">=</span> <span class="n">RoleChecker</span><span class="p">(</span><span class="n">allowed_roles</span><span class="o">=</span><span class="n">allowed_roles</span><span class="p">)</span>
|
|
303
|
+
<span class="k">try</span><span class="p">:</span>
|
|
304
|
+
<span class="k">await</span> <span class="n">checker</span><span class="p">(</span><span class="n">request</span><span class="p">)</span>
|
|
305
|
+
<span class="k">return</span> <span class="kc">True</span>
|
|
306
|
+
<span class="k">except</span> <span class="n">HTTPException</span><span class="p">:</span>
|
|
307
|
+
<span class="k">return</span> <span class="kc">False</span></div>
|
|
308
|
+
|
|
309
|
+
|
|
310
|
+
|
|
311
|
+
|
|
263
312
|
<div class="viewcode-block" id="require_user">
|
|
264
313
|
<a class="viewcode-back" href="../../functions.html#auth_middleware.functions.require_user">[docs]</a>
|
|
265
314
|
<span class="k">def</span><span class="w"> </span><span class="nf">require_user</span><span class="p">()</span> <span class="o">-></span> <span class="n">Callable</span><span class="p">[</span><span class="o">...</span><span class="p">,</span> <span class="n">Any</span><span class="p">]:</span>
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
<head>
|
|
6
6
|
<meta charset="utf-8" />
|
|
7
7
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
8
|
-
<title>auth_middleware.jwt_auth_middleware — Auth Middleware 0.3.
|
|
8
|
+
<title>auth_middleware.jwt_auth_middleware — Auth Middleware 0.3.7 documentation</title>
|
|
9
9
|
<link rel="stylesheet" type="text/css" href="../../_static/pygments.css?v=b86133f3" />
|
|
10
10
|
<link rel="stylesheet" type="text/css" href="../../_static/css/theme.css?v=9edc463e" />
|
|
11
11
|
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
<link rel="canonical" href="/auth-middleware/_modules/auth_middleware/jwt_auth_middleware.html" />
|
|
14
14
|
<script src="../../_static/jquery.js?v=5d32c60e"></script>
|
|
15
15
|
<script src="../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
|
|
16
|
-
<script src="../../_static/documentation_options.js?v=
|
|
16
|
+
<script src="../../_static/documentation_options.js?v=29d04658"></script>
|
|
17
17
|
<script src="../../_static/doctools.js?v=fd6eb6e6"></script>
|
|
18
18
|
<script src="../../_static/sphinx_highlight.js?v=6ffebe34"></script>
|
|
19
19
|
<script src="../../_static/js/theme.js"></script>
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
<head>
|
|
6
6
|
<meta charset="utf-8" />
|
|
7
7
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
8
|
-
<title>auth_middleware.jwt_bearer_manager — Auth Middleware 0.3.
|
|
8
|
+
<title>auth_middleware.jwt_bearer_manager — Auth Middleware 0.3.7 documentation</title>
|
|
9
9
|
<link rel="stylesheet" type="text/css" href="../../_static/pygments.css?v=b86133f3" />
|
|
10
10
|
<link rel="stylesheet" type="text/css" href="../../_static/css/theme.css?v=9edc463e" />
|
|
11
11
|
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
<link rel="canonical" href="/auth-middleware/_modules/auth_middleware/jwt_bearer_manager.html" />
|
|
14
14
|
<script src="../../_static/jquery.js?v=5d32c60e"></script>
|
|
15
15
|
<script src="../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
|
|
16
|
-
<script src="../../_static/documentation_options.js?v=
|
|
16
|
+
<script src="../../_static/documentation_options.js?v=29d04658"></script>
|
|
17
17
|
<script src="../../_static/doctools.js?v=fd6eb6e6"></script>
|
|
18
18
|
<script src="../../_static/sphinx_highlight.js?v=6ffebe34"></script>
|
|
19
19
|
<script src="../../_static/js/theme.js"></script>
|
|
@@ -151,9 +151,12 @@
|
|
|
151
151
|
<div itemprop="articleBody">
|
|
152
152
|
|
|
153
153
|
<h1>Source code for auth_middleware.jwt_bearer_manager</h1><div class="highlight"><pre>
|
|
154
|
-
<span></span><span class="kn">
|
|
154
|
+
<span></span><span class="kn">import</span><span class="w"> </span><span class="nn">base64</span>
|
|
155
|
+
<span class="kn">import</span><span class="w"> </span><span class="nn">json</span>
|
|
156
|
+
|
|
157
|
+
<span class="kn">from</span><span class="w"> </span><span class="nn">fastapi</span><span class="w"> </span><span class="kn">import</span> <span class="n">HTTPException</span>
|
|
155
158
|
<span class="kn">from</span><span class="w"> </span><span class="nn">fastapi.security</span><span class="w"> </span><span class="kn">import</span> <span class="n">HTTPAuthorizationCredentials</span><span class="p">,</span> <span class="n">HTTPBearer</span>
|
|
156
|
-
<span class="kn">from</span><span class="w"> </span><span class="nn">
|
|
159
|
+
<span class="kn">from</span><span class="w"> </span><span class="nn">joserfc.errors</span><span class="w"> </span><span class="kn">import</span> <span class="n">JoseError</span>
|
|
157
160
|
<span class="kn">from</span><span class="w"> </span><span class="nn">starlette.requests</span><span class="w"> </span><span class="kn">import</span> <span class="n">Request</span>
|
|
158
161
|
<span class="kn">from</span><span class="w"> </span><span class="nn">starlette.status</span><span class="w"> </span><span class="kn">import</span> <span class="n">HTTP_403_FORBIDDEN</span>
|
|
159
162
|
|
|
@@ -216,15 +219,21 @@
|
|
|
216
219
|
<span class="n">message</span><span class="p">,</span> <span class="n">signature</span> <span class="o">=</span> <span class="n">jwt_token</span><span class="o">.</span><span class="n">rsplit</span><span class="p">(</span><span class="s2">"."</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span>
|
|
217
220
|
|
|
218
221
|
<span class="k">try</span><span class="p">:</span>
|
|
222
|
+
<span class="n">_parts</span> <span class="o">=</span> <span class="n">jwt_token</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s2">"."</span><span class="p">)</span>
|
|
223
|
+
|
|
224
|
+
<span class="k">def</span><span class="w"> </span><span class="nf">_b64d</span><span class="p">(</span><span class="n">part</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="nb">dict</span><span class="p">:</span> <span class="c1"># type: ignore[return]</span>
|
|
225
|
+
<span class="n">padded</span> <span class="o">=</span> <span class="n">part</span> <span class="o">+</span> <span class="s2">"="</span> <span class="o">*</span> <span class="p">(</span><span class="o">-</span><span class="nb">len</span><span class="p">(</span><span class="n">part</span><span class="p">)</span> <span class="o">%</span> <span class="mi">4</span><span class="p">)</span>
|
|
226
|
+
<span class="k">return</span> <span class="n">json</span><span class="o">.</span><span class="n">loads</span><span class="p">(</span><span class="n">base64</span><span class="o">.</span><span class="n">urlsafe_b64decode</span><span class="p">(</span><span class="n">padded</span><span class="p">))</span>
|
|
227
|
+
|
|
219
228
|
<span class="n">jwt_credentials</span> <span class="o">=</span> <span class="n">JWTAuthorizationCredentials</span><span class="p">(</span>
|
|
220
229
|
<span class="n">jwt_token</span><span class="o">=</span><span class="n">jwt_token</span><span class="p">,</span>
|
|
221
|
-
<span class="n">header</span><span class="o">=</span><span class="n">
|
|
222
|
-
<span class="n">claims</span><span class="o">=</span><span class="n">
|
|
230
|
+
<span class="n">header</span><span class="o">=</span><span class="n">_b64d</span><span class="p">(</span><span class="n">_parts</span><span class="p">[</span><span class="mi">0</span><span class="p">]),</span>
|
|
231
|
+
<span class="n">claims</span><span class="o">=</span><span class="n">_b64d</span><span class="p">(</span><span class="n">_parts</span><span class="p">[</span><span class="mi">1</span><span class="p">]),</span>
|
|
223
232
|
<span class="n">signature</span><span class="o">=</span><span class="n">signature</span><span class="p">,</span>
|
|
224
233
|
<span class="n">message</span><span class="o">=</span><span class="n">message</span><span class="p">,</span>
|
|
225
234
|
<span class="p">)</span>
|
|
226
235
|
|
|
227
|
-
<span class="k">except</span> <span class="n">
|
|
236
|
+
<span class="k">except</span> <span class="p">(</span><span class="n">JoseError</span><span class="p">,</span> <span class="ne">Exception</span><span class="p">)</span> <span class="k">as</span> <span class="n">jwt_err</span><span class="p">:</span>
|
|
228
237
|
<span class="n">logger</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="s2">"Error in JWTBearerManager: JWTError"</span><span class="p">)</span>
|
|
229
238
|
<span class="k">raise</span> <span class="n">InvalidTokenException</span><span class="p">(</span>
|
|
230
239
|
<span class="n">status_code</span><span class="o">=</span><span class="n">HTTP_403_FORBIDDEN</span><span class="p">,</span>
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
<head>
|
|
6
6
|
<meta charset="utf-8" />
|
|
7
7
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
8
|
-
<title>auth_middleware.providers.authn.cognito_authz_provider_settings — Auth Middleware 0.3.
|
|
8
|
+
<title>auth_middleware.providers.authn.cognito_authz_provider_settings — Auth Middleware 0.3.7 documentation</title>
|
|
9
9
|
<link rel="stylesheet" type="text/css" href="../../../../_static/pygments.css?v=b86133f3" />
|
|
10
10
|
<link rel="stylesheet" type="text/css" href="../../../../_static/css/theme.css?v=9edc463e" />
|
|
11
11
|
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
<link rel="canonical" href="/auth-middleware/_modules/auth_middleware/providers/authn/cognito_authz_provider_settings.html" />
|
|
14
14
|
<script src="../../../../_static/jquery.js?v=5d32c60e"></script>
|
|
15
15
|
<script src="../../../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
|
|
16
|
-
<script src="../../../../_static/documentation_options.js?v=
|
|
16
|
+
<script src="../../../../_static/documentation_options.js?v=29d04658"></script>
|
|
17
17
|
<script src="../../../../_static/doctools.js?v=fd6eb6e6"></script>
|
|
18
18
|
<script src="../../../../_static/sphinx_highlight.js?v=6ffebe34"></script>
|
|
19
19
|
<script src="../../../../_static/js/theme.js"></script>
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
<head>
|
|
6
6
|
<meta charset="utf-8" />
|
|
7
7
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
8
|
-
<title>auth_middleware.providers.authn.cognito_provider — Auth Middleware 0.3.
|
|
8
|
+
<title>auth_middleware.providers.authn.cognito_provider — Auth Middleware 0.3.7 documentation</title>
|
|
9
9
|
<link rel="stylesheet" type="text/css" href="../../../../_static/pygments.css?v=b86133f3" />
|
|
10
10
|
<link rel="stylesheet" type="text/css" href="../../../../_static/css/theme.css?v=9edc463e" />
|
|
11
11
|
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
<link rel="canonical" href="/auth-middleware/_modules/auth_middleware/providers/authn/cognito_provider.html" />
|
|
14
14
|
<script src="../../../../_static/jquery.js?v=5d32c60e"></script>
|
|
15
15
|
<script src="../../../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
|
|
16
|
-
<script src="../../../../_static/documentation_options.js?v=
|
|
16
|
+
<script src="../../../../_static/documentation_options.js?v=29d04658"></script>
|
|
17
17
|
<script src="../../../../_static/doctools.js?v=fd6eb6e6"></script>
|
|
18
18
|
<script src="../../../../_static/sphinx_highlight.js?v=6ffebe34"></script>
|
|
19
19
|
<script src="../../../../_static/js/theme.js"></script>
|
|
@@ -151,12 +151,15 @@
|
|
|
151
151
|
<div itemprop="articleBody">
|
|
152
152
|
|
|
153
153
|
<h1>Source code for auth_middleware.providers.authn.cognito_provider</h1><div class="highlight"><pre>
|
|
154
|
-
<span></span><span class="kn">from</span><span class="w"> </span><span class="nn">time</span><span class="w"> </span><span class="kn">import</span> <span class="n">
|
|
154
|
+
<span></span><span class="kn">from</span><span class="w"> </span><span class="nn">time</span><span class="w"> </span><span class="kn">import</span> <span class="n">time_ns</span>
|
|
155
155
|
|
|
156
156
|
<span class="kn">import</span><span class="w"> </span><span class="nn">httpx</span>
|
|
157
|
-
<span class="kn">from</span><span class="w"> </span><span class="nn">
|
|
158
|
-
<span class="kn">from</span><span class="w"> </span><span class="nn">
|
|
157
|
+
<span class="kn">from</span><span class="w"> </span><span class="nn">joserfc</span><span class="w"> </span><span class="kn">import</span> <span class="n">jwt</span> <span class="k">as</span> <span class="n">joserfc_jwt</span>
|
|
158
|
+
<span class="kn">from</span><span class="w"> </span><span class="nn">joserfc.errors</span><span class="w"> </span><span class="kn">import</span> <span class="n">JoseError</span>
|
|
159
|
+
<span class="kn">from</span><span class="w"> </span><span class="nn">joserfc.jwk</span><span class="w"> </span><span class="kn">import</span> <span class="n">import_key</span>
|
|
159
160
|
|
|
161
|
+
<span class="kn">from</span><span class="w"> </span><span class="nn">auth_middleware.providers.authz.roles_provider</span><span class="w"> </span><span class="kn">import</span> <span class="n">RolesProvider</span>
|
|
162
|
+
<span class="kn">from</span><span class="w"> </span><span class="nn">auth_middleware.providers.cognito</span><span class="w"> </span><span class="kn">import</span> <span class="n">COGNITO_USERNAME_CLAIM</span>
|
|
160
163
|
<span class="kn">from</span><span class="w"> </span><span class="nn">auth_middleware.logging</span><span class="w"> </span><span class="kn">import</span> <span class="n">logger</span>
|
|
161
164
|
<span class="kn">from</span><span class="w"> </span><span class="nn">auth_middleware.providers.authn.cognito_authz_provider_settings</span><span class="w"> </span><span class="kn">import</span> <span class="p">(</span>
|
|
162
165
|
<span class="n">CognitoAuthzProviderSettings</span><span class="p">,</span>
|
|
@@ -171,6 +174,32 @@
|
|
|
171
174
|
<span class="kn">from</span><span class="w"> </span><span class="nn">auth_middleware.types.user</span><span class="w"> </span><span class="kn">import</span> <span class="n">User</span>
|
|
172
175
|
|
|
173
176
|
|
|
177
|
+
<span class="n">T_Provider</span> <span class="o">=</span> <span class="n">PermissionsProvider</span> <span class="o">|</span> <span class="n">GroupsProvider</span> <span class="o">|</span> <span class="n">ProfileProvider</span>
|
|
178
|
+
|
|
179
|
+
|
|
180
|
+
<span class="k">def</span><span class="w"> </span><span class="nf">_resolve_provider</span><span class="p">(</span>
|
|
181
|
+
<span class="n">provider</span><span class="p">:</span> <span class="nb">type</span><span class="p">[</span><span class="n">T_Provider</span><span class="p">]</span> <span class="o">|</span> <span class="n">T_Provider</span> <span class="o">|</span> <span class="kc">None</span><span class="p">,</span>
|
|
182
|
+
<span class="n">base_class</span><span class="p">:</span> <span class="nb">type</span><span class="p">[</span><span class="n">T_Provider</span><span class="p">],</span>
|
|
183
|
+
<span class="n">allow_missing</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">,</span>
|
|
184
|
+
<span class="p">)</span> <span class="o">-></span> <span class="n">T_Provider</span> <span class="o">|</span> <span class="kc">None</span><span class="p">:</span>
|
|
185
|
+
<span class="w"> </span><span class="sd">"""Instantiate *provider* if it is a class; return it as-is if already an</span>
|
|
186
|
+
<span class="sd"> instance; raise ValueError if it is neither (unless *allow_missing* is True,</span>
|
|
187
|
+
<span class="sd"> in which case ``None`` is returned silently)."""</span>
|
|
188
|
+
<span class="k">if</span> <span class="n">provider</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
|
|
189
|
+
<span class="k">return</span> <span class="kc">None</span>
|
|
190
|
+
<span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">provider</span><span class="p">,</span> <span class="nb">type</span><span class="p">)</span> <span class="ow">and</span> <span class="nb">issubclass</span><span class="p">(</span><span class="n">provider</span><span class="p">,</span> <span class="n">base_class</span><span class="p">):</span>
|
|
191
|
+
<span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">"Initializing </span><span class="si">%s</span><span class="s2">"</span><span class="p">,</span> <span class="n">base_class</span><span class="o">.</span><span class="vm">__name__</span><span class="p">)</span>
|
|
192
|
+
<span class="k">return</span> <span class="n">provider</span><span class="p">()</span>
|
|
193
|
+
<span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">provider</span><span class="p">,</span> <span class="n">base_class</span><span class="p">):</span>
|
|
194
|
+
<span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">"Setting </span><span class="si">%s</span><span class="s2">"</span><span class="p">,</span> <span class="n">base_class</span><span class="o">.</span><span class="vm">__name__</span><span class="p">)</span>
|
|
195
|
+
<span class="k">return</span> <span class="n">provider</span>
|
|
196
|
+
<span class="k">if</span> <span class="n">allow_missing</span><span class="p">:</span>
|
|
197
|
+
<span class="k">return</span> <span class="kc">None</span>
|
|
198
|
+
<span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span>
|
|
199
|
+
<span class="sa">f</span><span class="s2">"provider must be a </span><span class="si">{</span><span class="n">base_class</span><span class="o">.</span><span class="vm">__name__</span><span class="si">}</span><span class="s2"> instance or subclass thereof"</span>
|
|
200
|
+
<span class="p">)</span>
|
|
201
|
+
|
|
202
|
+
|
|
174
203
|
<div class="viewcode-block" id="CognitoProvider">
|
|
175
204
|
<a class="viewcode-back" href="../../../../cognito_provider.html#auth_middleware.providers.authn.cognito_provider.CognitoProvider">[docs]</a>
|
|
176
205
|
<span class="k">class</span><span class="w"> </span><span class="nc">CognitoProvider</span><span class="p">(</span><span class="n">JWTProvider</span><span class="p">):</span>
|
|
@@ -183,6 +212,7 @@
|
|
|
183
212
|
<span class="o">|</span> <span class="n">PermissionsProvider</span>
|
|
184
213
|
<span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
|
|
185
214
|
<span class="n">groups_provider</span><span class="p">:</span> <span class="nb">type</span><span class="p">[</span><span class="n">GroupsProvider</span><span class="p">]</span> <span class="o">|</span> <span class="n">GroupsProvider</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
|
|
215
|
+
<span class="n">roles_provider</span><span class="p">:</span> <span class="nb">type</span><span class="p">[</span><span class="n">RolesProvider</span><span class="p">]</span> <span class="o">|</span> <span class="n">RolesProvider</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
|
|
186
216
|
<span class="n">profile_provider</span><span class="p">:</span> <span class="nb">type</span><span class="p">[</span><span class="n">ProfileProvider</span><span class="p">]</span> <span class="o">|</span> <span class="n">ProfileProvider</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
|
|
187
217
|
<span class="p">)</span> <span class="o">-></span> <span class="n">CognitoProvider</span><span class="p">:</span>
|
|
188
218
|
<span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">"Creating CognitoProvider instance"</span><span class="p">)</span>
|
|
@@ -200,6 +230,7 @@
|
|
|
200
230
|
<span class="o">|</span> <span class="n">PermissionsProvider</span>
|
|
201
231
|
<span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
|
|
202
232
|
<span class="n">groups_provider</span><span class="p">:</span> <span class="nb">type</span><span class="p">[</span><span class="n">GroupsProvider</span><span class="p">]</span> <span class="o">|</span> <span class="n">GroupsProvider</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
|
|
233
|
+
<span class="n">roles_provider</span><span class="p">:</span> <span class="nb">type</span><span class="p">[</span><span class="n">RolesProvider</span><span class="p">]</span> <span class="o">|</span> <span class="n">RolesProvider</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
|
|
203
234
|
<span class="n">profile_provider</span><span class="p">:</span> <span class="nb">type</span><span class="p">[</span><span class="n">ProfileProvider</span><span class="p">]</span> <span class="o">|</span> <span class="n">ProfileProvider</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
|
|
204
235
|
<span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
|
205
236
|
<span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">"Initializing CognitoProvider instance"</span><span class="p">)</span>
|
|
@@ -208,59 +239,20 @@
|
|
|
208
239
|
<span class="k">if</span> <span class="ow">not</span> <span class="n">settings</span><span class="p">:</span>
|
|
209
240
|
<span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s2">"Settings must be provided"</span><span class="p">)</span>
|
|
210
241
|
|
|
211
|
-
<span class="c1"># TODO: Refactor this</span>
|
|
212
|
-
<span class="c1"># Lazy initialization for PermissionsProvider</span>
|
|
213
|
-
<span class="n">final_permissions_provider</span><span class="p">:</span> <span class="n">PermissionsProvider</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span>
|
|
214
|
-
<span class="k">if</span> <span class="n">permissions_provider</span><span class="p">:</span>
|
|
215
|
-
<span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">permissions_provider</span><span class="p">,</span> <span class="nb">type</span><span class="p">)</span> <span class="ow">and</span> <span class="nb">issubclass</span><span class="p">(</span>
|
|
216
|
-
<span class="n">permissions_provider</span><span class="p">,</span> <span class="n">PermissionsProvider</span>
|
|
217
|
-
<span class="p">):</span>
|
|
218
|
-
<span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">"Initializing PermissionsProvider"</span><span class="p">)</span>
|
|
219
|
-
<span class="n">final_permissions_provider</span> <span class="o">=</span> <span class="n">permissions_provider</span><span class="p">()</span>
|
|
220
|
-
<span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">permissions_provider</span><span class="p">,</span> <span class="n">PermissionsProvider</span><span class="p">):</span>
|
|
221
|
-
<span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">"Setting PermissionsProvider"</span><span class="p">)</span>
|
|
222
|
-
<span class="n">final_permissions_provider</span> <span class="o">=</span> <span class="n">permissions_provider</span>
|
|
223
|
-
<span class="k">else</span><span class="p">:</span>
|
|
224
|
-
<span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span>
|
|
225
|
-
<span class="s2">"permissions_provider must be a PermissionsProvider "</span>
|
|
226
|
-
<span class="s2">"or a subclass thereof"</span>
|
|
227
|
-
<span class="p">)</span>
|
|
228
|
-
|
|
229
|
-
<span class="c1"># TODO: Refactor this</span>
|
|
230
|
-
<span class="c1"># Lazy initialization for GroupsProvider</span>
|
|
231
|
-
<span class="n">final_groups_provider</span><span class="p">:</span> <span class="n">GroupsProvider</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span>
|
|
232
|
-
<span class="k">if</span> <span class="n">groups_provider</span><span class="p">:</span>
|
|
233
|
-
<span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">groups_provider</span><span class="p">,</span> <span class="nb">type</span><span class="p">)</span> <span class="ow">and</span> <span class="nb">issubclass</span><span class="p">(</span>
|
|
234
|
-
<span class="n">groups_provider</span><span class="p">,</span> <span class="n">GroupsProvider</span>
|
|
235
|
-
<span class="p">):</span>
|
|
236
|
-
<span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">"Initializing GroupsProvider"</span><span class="p">)</span>
|
|
237
|
-
<span class="n">final_groups_provider</span> <span class="o">=</span> <span class="n">groups_provider</span><span class="p">()</span>
|
|
238
|
-
<span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">groups_provider</span><span class="p">,</span> <span class="n">GroupsProvider</span><span class="p">):</span>
|
|
239
|
-
<span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">"Setting GroupsProvider"</span><span class="p">)</span>
|
|
240
|
-
<span class="n">final_groups_provider</span> <span class="o">=</span> <span class="n">groups_provider</span>
|
|
241
|
-
|
|
242
|
-
<span class="c1"># Lazy initialization for ProfileProvider</span>
|
|
243
|
-
<span class="n">final_profile_provider</span><span class="p">:</span> <span class="n">ProfileProvider</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span>
|
|
244
|
-
<span class="k">if</span> <span class="n">profile_provider</span><span class="p">:</span>
|
|
245
|
-
<span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">profile_provider</span><span class="p">,</span> <span class="nb">type</span><span class="p">)</span> <span class="ow">and</span> <span class="nb">issubclass</span><span class="p">(</span>
|
|
246
|
-
<span class="n">profile_provider</span><span class="p">,</span> <span class="n">ProfileProvider</span>
|
|
247
|
-
<span class="p">):</span>
|
|
248
|
-
<span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">"Initializing ProfileProvider"</span><span class="p">)</span>
|
|
249
|
-
<span class="n">final_profile_provider</span> <span class="o">=</span> <span class="n">profile_provider</span><span class="p">()</span>
|
|
250
|
-
<span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">profile_provider</span><span class="p">,</span> <span class="n">ProfileProvider</span><span class="p">):</span>
|
|
251
|
-
<span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">"Setting ProfileProvider"</span><span class="p">)</span>
|
|
252
|
-
<span class="n">final_profile_provider</span> <span class="o">=</span> <span class="n">profile_provider</span>
|
|
253
|
-
<span class="k">else</span><span class="p">:</span>
|
|
254
|
-
<span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span>
|
|
255
|
-
<span class="s2">"profile_provider must be a ProfileProvider "</span>
|
|
256
|
-
<span class="s2">"or a subclass thereof"</span>
|
|
257
|
-
<span class="p">)</span>
|
|
258
|
-
|
|
259
242
|
<span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span>
|
|
260
243
|
<span class="n">settings</span><span class="o">=</span><span class="n">settings</span><span class="p">,</span>
|
|
261
|
-
<span class="n">permissions_provider</span><span class="o">=</span><span class="n">
|
|
262
|
-
|
|
263
|
-
<span class="
|
|
244
|
+
<span class="n">permissions_provider</span><span class="o">=</span><span class="n">_resolve_provider</span><span class="p">(</span>
|
|
245
|
+
<span class="n">permissions_provider</span><span class="p">,</span> <span class="n">PermissionsProvider</span>
|
|
246
|
+
<span class="p">),</span>
|
|
247
|
+
<span class="n">groups_provider</span><span class="o">=</span><span class="n">_resolve_provider</span><span class="p">(</span>
|
|
248
|
+
<span class="n">groups_provider</span><span class="p">,</span> <span class="n">GroupsProvider</span><span class="p">,</span> <span class="n">allow_missing</span><span class="o">=</span><span class="kc">True</span>
|
|
249
|
+
<span class="p">),</span>
|
|
250
|
+
<span class="n">roles_provider</span><span class="o">=</span><span class="n">_resolve_provider</span><span class="p">(</span>
|
|
251
|
+
<span class="n">roles_provider</span><span class="p">,</span> <span class="n">RolesProvider</span><span class="p">,</span> <span class="n">allow_missing</span><span class="o">=</span><span class="kc">True</span>
|
|
252
|
+
<span class="p">),</span>
|
|
253
|
+
<span class="n">profile_provider</span><span class="o">=</span><span class="n">_resolve_provider</span><span class="p">(</span>
|
|
254
|
+
<span class="n">profile_provider</span><span class="p">,</span> <span class="n">ProfileProvider</span>
|
|
255
|
+
<span class="p">),</span>
|
|
264
256
|
<span class="p">)</span>
|
|
265
257
|
<span class="bp">self</span><span class="o">.</span><span class="n">_initialized</span> <span class="o">=</span> <span class="kc">True</span></div>
|
|
266
258
|
|
|
@@ -341,15 +333,12 @@
|
|
|
341
333
|
<span class="p">)</span>
|
|
342
334
|
<span class="k">raise</span> <span class="n">AWSException</span><span class="p">(</span><span class="s2">"No public key found!"</span><span class="p">)</span>
|
|
343
335
|
|
|
344
|
-
<span class="n">
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
<span class="
|
|
349
|
-
|
|
350
|
-
<span class="k">return</span> <span class="nb">bool</span><span class="p">(</span><span class="n">token</span><span class="o">.</span><span class="n">claims</span><span class="p">[</span><span class="s2">"exp"</span><span class="p">]</span> <span class="o">></span> <span class="n">time</span><span class="p">())</span>
|
|
351
|
-
|
|
352
|
-
<span class="k">return</span> <span class="kc">False</span></div>
|
|
336
|
+
<span class="n">key</span> <span class="o">=</span> <span class="n">import_key</span><span class="p">(</span><span class="n">hmac_key_candidate</span><span class="p">)</span>
|
|
337
|
+
<span class="k">try</span><span class="p">:</span>
|
|
338
|
+
<span class="n">joserfc_jwt</span><span class="o">.</span><span class="n">decode</span><span class="p">(</span><span class="n">token</span><span class="o">.</span><span class="n">jwt_token</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">algorithms</span><span class="o">=</span><span class="p">[</span><span class="s2">"RS256"</span><span class="p">])</span>
|
|
339
|
+
<span class="k">return</span> <span class="kc">True</span>
|
|
340
|
+
<span class="k">except</span> <span class="n">JoseError</span><span class="p">:</span>
|
|
341
|
+
<span class="k">return</span> <span class="kc">False</span></div>
|
|
353
342
|
|
|
354
343
|
|
|
355
344
|
<div class="viewcode-block" id="CognitoProvider.create_user_from_token">
|
|
@@ -368,7 +357,7 @@
|
|
|
368
357
|
<span class="n">client_id</span> <span class="o">=</span> <span class="n">M2MTokenDetector</span><span class="o">.</span><span class="n">get_client_id</span><span class="p">(</span><span class="n">token</span><span class="p">)</span> <span class="k">if</span> <span class="n">is_m2m</span> <span class="k">else</span> <span class="kc">None</span>
|
|
369
358
|
|
|
370
359
|
<span class="n">name_property</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="p">(</span>
|
|
371
|
-
<span class="s2">"username"</span> <span class="k">if</span> <span class="s2">"username"</span> <span class="ow">in</span> <span class="n">token</span><span class="o">.</span><span class="n">claims</span> <span class="k">else</span> <span class="
|
|
360
|
+
<span class="s2">"username"</span> <span class="k">if</span> <span class="s2">"username"</span> <span class="ow">in</span> <span class="n">token</span><span class="o">.</span><span class="n">claims</span> <span class="k">else</span> <span class="n">COGNITO_USERNAME_CLAIM</span>
|
|
372
361
|
<span class="p">)</span>
|
|
373
362
|
|
|
374
363
|
<span class="c1"># Get groups directly using the groups provider</span>
|
|
@@ -377,10 +366,17 @@
|
|
|
377
366
|
<span class="c1"># M2M tokens typically don't have groups</span>
|
|
378
367
|
<span class="n">groups</span> <span class="o">=</span> <span class="k">await</span> <span class="bp">self</span><span class="o">.</span><span class="n">_groups_provider</span><span class="o">.</span><span class="n">fetch_groups</span><span class="p">(</span><span class="n">token</span><span class="p">)</span>
|
|
379
368
|
|
|
369
|
+
<span class="c1"># Get roles directly using the roles provider</span>
|
|
370
|
+
<span class="n">roles</span><span class="p">:</span> <span class="nb">list</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="p">[]</span>
|
|
371
|
+
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_roles_provider</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">is_m2m</span><span class="p">:</span>
|
|
372
|
+
<span class="c1"># M2M tokens typically don't have roles</span>
|
|
373
|
+
<span class="n">roles</span> <span class="o">=</span> <span class="k">await</span> <span class="bp">self</span><span class="o">.</span><span class="n">_roles_provider</span><span class="o">.</span><span class="n">fetch_roles</span><span class="p">(</span><span class="n">token</span><span class="p">)</span>
|
|
374
|
+
|
|
380
375
|
<span class="k">return</span> <span class="n">User</span><span class="p">(</span>
|
|
381
376
|
<span class="n">token</span><span class="o">=</span><span class="nb">str</span><span class="p">(</span><span class="n">token</span><span class="p">),</span>
|
|
382
377
|
<span class="n">jwt_credentials</span><span class="o">=</span><span class="n">token</span><span class="p">,</span>
|
|
383
378
|
<span class="n">groups_provider</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_groups_provider</span><span class="p">,</span>
|
|
379
|
+
<span class="n">roles_provider</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_roles_provider</span><span class="p">,</span>
|
|
384
380
|
<span class="n">permissions_provider</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_permissions_provider</span><span class="p">,</span>
|
|
385
381
|
<span class="n">profile_provider</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_profile_provider</span><span class="p">,</span>
|
|
386
382
|
<span class="nb">id</span><span class="o">=</span><span class="n">token</span><span class="o">.</span><span class="n">claims</span><span class="p">[</span><span class="s2">"sub"</span><span class="p">],</span>
|
|
@@ -391,6 +387,7 @@
|
|
|
391
387
|
<span class="p">),</span>
|
|
392
388
|
<span class="n">email</span><span class="o">=</span><span class="n">token</span><span class="o">.</span><span class="n">claims</span><span class="p">[</span><span class="s2">"email"</span><span class="p">]</span> <span class="k">if</span> <span class="s2">"email"</span> <span class="ow">in</span> <span class="n">token</span><span class="o">.</span><span class="n">claims</span> <span class="k">else</span> <span class="kc">None</span><span class="p">,</span>
|
|
393
389
|
<span class="n">groups</span><span class="o">=</span><span class="n">groups</span><span class="p">,</span>
|
|
390
|
+
<span class="n">roles</span><span class="o">=</span><span class="n">roles</span><span class="p">,</span>
|
|
394
391
|
<span class="n">is_m2m</span><span class="o">=</span><span class="n">is_m2m</span><span class="p">,</span>
|
|
395
392
|
<span class="n">client_id</span><span class="o">=</span><span class="n">client_id</span><span class="p">,</span>
|
|
396
393
|
<span class="p">)</span></div>
|