This commit is contained in:
Markos Gogoulos
2025-12-28 15:41:01 +02:00
parent 9685c1b5d4
commit 45246eac4f

View File

@@ -8,6 +8,7 @@ import json
from typing import Any, Dict, Optional from typing import Any, Dict, Optional
from django.core.cache import cache from django.core.cache import cache
from pylti1p3.registration import Registration
from pylti1p3.request import Request from pylti1p3.request import Request
from pylti1p3.tool_config import ToolConfAbstract from pylti1p3.tool_config import ToolConfAbstract
@@ -221,9 +222,22 @@ class DjangoToolConfig(ToolConfAbstract):
if iss not in self._config: if iss not in self._config:
print(" -> Not found in config", flush=True) print(" -> Not found in config", flush=True)
return None return None
result = self._config[iss] config = self._config[iss]
print(f" -> Found: {result.get('client_id')}", flush=True) print(f" -> Found: {config.get('client_id')}", flush=True)
return result
# Create Registration object from config dict
registration = Registration()
registration.set_issuer(iss)
registration.set_client_id(config.get('client_id'))
registration.set_auth_login_url(config.get('auth_login_url'))
registration.set_auth_token_url(config.get('auth_token_url'))
if config.get('auth_audience'):
registration.set_auth_audience(config.get('auth_audience'))
registration.set_key_set_url(config.get('key_set_url'))
if config.get('key_set'):
registration.set_key_set(config.get('key_set'))
return registration
def find_registration_by_params(self, iss, client_id, *args, **kwargs): def find_registration_by_params(self, iss, client_id, *args, **kwargs):
"""Find registration by issuer and client ID""" """Find registration by issuer and client ID"""
@@ -233,12 +247,25 @@ class DjangoToolConfig(ToolConfAbstract):
return None return None
config = self._config[iss] config = self._config[iss]
if config.get('client_id') == client_id: if config.get('client_id') != client_id:
print(" -> Match found", flush=True) print(f" -> Client ID mismatch: expected {client_id}, got {config.get('client_id')}", flush=True)
return config return None
print(f" -> Client ID mismatch: expected {client_id}, got {config.get('client_id')}", flush=True) print(" -> Match found", flush=True)
return None
# Create Registration object from config dict
registration = Registration()
registration.set_issuer(iss)
registration.set_client_id(config.get('client_id'))
registration.set_auth_login_url(config.get('auth_login_url'))
registration.set_auth_token_url(config.get('auth_token_url'))
if config.get('auth_audience'):
registration.set_auth_audience(config.get('auth_audience'))
registration.set_key_set_url(config.get('key_set_url'))
if config.get('key_set'):
registration.set_key_set(config.get('key_set'))
return registration
def find_deployment(self, iss, deployment_id): def find_deployment(self, iss, deployment_id):
"""Find deployment by issuer and deployment ID""" """Find deployment by issuer and deployment ID"""