From 4c2b197850a1e4e16f7b4d690eeb0ecd123422c5 Mon Sep 17 00:00:00 2001 From: phil Date: Sat, 22 Feb 2025 14:02:05 +0100 Subject: [PATCH 01/26] Cosmetic --- src/oidc_test/auth/utils.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/oidc_test/auth/utils.py b/src/oidc_test/auth/utils.py index 7dd0e3d..134131e 100644 --- a/src/oidc_test/auth/utils.py +++ b/src/oidc_test/auth/utils.py @@ -5,10 +5,8 @@ import logging from fastapi import HTTPException, Request, Depends, status from fastapi.security import OAuth2PasswordBearer from authlib.integrations.starlette_client import OAuth, OAuthError, StarletteOAuth2App -from jwt import ExpiredSignatureError, InvalidKeyError, DecodeError, PyJWTError - -# from authlib.oauth1.auth import OAuthToken from authlib.oauth2.rfc6749 import OAuth2Token +from jwt import ExpiredSignatureError, InvalidKeyError, DecodeError, PyJWTError from oidc_test.auth.provider import Provider from oidc_test.models import User From f6a84fd3aaef82460c3a701ad4dc451aeb7ac73e Mon Sep 17 00:00:00 2001 From: phil Date: Sat, 22 Feb 2025 18:57:25 +0100 Subject: [PATCH 02/26] Cosmetic --- src/oidc_test/auth/utils.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/oidc_test/auth/utils.py b/src/oidc_test/auth/utils.py index 134131e..c51b039 100644 --- a/src/oidc_test/auth/utils.py +++ b/src/oidc_test/auth/utils.py @@ -20,7 +20,7 @@ logger = logging.getLogger("oidc-test") async def fetch_token(name, request): assert name is not None assert request is not None - logger.warn("TODO: fetch_token") + logger.warning("TODO: fetch_token") ... # if name in oidc_providers: # model = OAuth2Token @@ -32,7 +32,10 @@ async def fetch_token(name, request): async def update_token( - provider_id, token, refresh_token: str | None = None, access_token: str | None = None + provider_id, + token, + refresh_token: str | None = None, + access_token: str | None = None, ): """Update the token in the database""" provider = providers[provider_id] From 850db9f59035645cb8530625388ae42ec69103c9 Mon Sep 17 00:00:00 2001 From: phil Date: Sun, 23 Feb 2025 16:37:47 +0100 Subject: [PATCH 03/26] Fix scope cannot be determined when the access token cannot be decoded --- src/oidc_test/main.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/oidc_test/main.py b/src/oidc_test/main.py index 54d69c5..e5238c8 100644 --- a/src/oidc_test/main.py +++ b/src/oidc_test/main.py @@ -123,19 +123,20 @@ async def home( try: access_token_parsed = provider.decode(token["access_token"], verify_signature=False) context["access_token_parsed"] = access_token_parsed + context["access_token_scope"] = access_token_parsed.get("scope") except PyJWTError as err: - access_token_parsed = {"Cannot parse": err.__class__.__name__} + context["access_token_parsed"] = {"Cannot parse": err.__class__.__name__} + context["access_token_scope"] = None try: id_token_parsed = provider.decode(token["id_token"], verify_signature=False) context["id_token_parsed"] = id_token_parsed except PyJWTError as err: - id_token_parsed = {"Cannot parse": err.__class__.__name__} + context["id_token_parsed"] = {"Cannot parse": err.__class__.__name__} try: refresh_token_parsed = provider.decode(token["refresh_token"], verify_signature=False) context["refresh_token_parsed"] = refresh_token_parsed except PyJWTError as err: - refresh_token_parsed = {"Cannot parse": err.__class__.__name__} - context["access_token_scope"] = access_token_parsed.get("scope") + context["refresh_token_parsed"] = {"Cannot parse": err.__class__.__name__} context["resources"] = registry.resources context["resource_providers"] = provider.resource_providers return templates.TemplateResponse(name="home.html", request=request, context=context) From 5f429797ff7a8656dee9dfc9cbc156dfe27f9c8f Mon Sep 17 00:00:00 2001 From: phil Date: Sun, 23 Feb 2025 17:14:04 +0100 Subject: [PATCH 04/26] Fix auto check of auth provider resource (resource_name in template) --- src/oidc_test/templates/home.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/oidc_test/templates/home.html b/src/oidc_test/templates/home.html index b4460ee..167616f 100644 --- a/src/oidc_test/templates/home.html +++ b/src/oidc_test/templates/home.html @@ -93,13 +93,13 @@ {% for resource in auth_provider.resources %} {% if resource.default_resource_id %} {% else %} -