Kerberos running
This commit is contained in:
+16
-5
@@ -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
|
||||
Reference in New Issue
Block a user