From 4e45c083739fa03affcec48e0140bed7af93bcc7 Mon Sep 17 00:00:00 2001 From: appleb_m Date: Thu, 11 Jun 2026 16:45:41 +0200 Subject: [PATCH] Kerberos running --- src/aare/gui/auth.py | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/src/aare/gui/auth.py b/src/aare/gui/auth.py index 74c009f9..fcd2e6c0 100644 --- a/src/aare/gui/auth.py +++ b/src/aare/gui/auth.py @@ -1,3 +1,4 @@ +import json import subprocess import jwt @@ -7,6 +8,7 @@ from aare.common.logger_config import setup_logger logger = setup_logger('aareGUI') + def auth(base_url: str | None, cert_path: str | None) -> str: curr_user = get_user() if base_url is None: @@ -46,7 +48,7 @@ def auth(base_url: str | None, cert_path: str | None) -> str: logger.error(f"Token request curl error: {e}") raise RuntimeError( "Cannot reach AareDAQ server (unknown error). " - ) + ) from e if token_result.returncode != 0: logger.error(f"Token curl exited {token_result.returncode}. stderr: {token_result.stderr[:500]}") @@ -55,12 +57,21 @@ def auth(base_url: str | None, cert_path: str | None) -> str: "Check Kerberos ticket is valid (kinit) and server is reachable." ) - token = token_result.stdout.strip() - if not token: - logger.error(f"Empty token response. stderr: {token_result.stderr[:500]}") + try: + response_json = json.loads(token_result.stdout) + except json.JSONDecodeError as e: + logger.error(f"Token response not JSON. stdout: {token_result.stdout[:500]}") raise RuntimeError( - "Authentication failed (empty server response). " + "Authentication failed (invalid server response). " "The server may be starting up or misconfigured." + ) from e + + token = response_json.get("access_token") + if not token or not isinstance(token, str): + logger.error(f"Missing access_token. Keys: {list(response_json.keys())}. Server response {response_json}") + raise RuntimeError( + "Authentication failed (missing token in server response). " + "The server may be starting up." ) return token \ No newline at end of file