From 4471497271e099e9eaba42c388d7b3cb8cd51aa3 Mon Sep 17 00:00:00 2001 From: usmannasir Date: Sun, 18 May 2025 19:20:38 +0500 Subject: [PATCH] update jwt secret --- websiteFunctions/views.py | 14 +++++++------- websiteFunctions/website.py | 17 +++++++++-------- 2 files changed, 16 insertions(+), 15 deletions(-) diff --git a/websiteFunctions/views.py b/websiteFunctions/views.py index 0c1804e03..f6225b314 100755 --- a/websiteFunctions/views.py +++ b/websiteFunctions/views.py @@ -2018,15 +2018,15 @@ def get_terminal_jwt(request): return JsonResponse({'status': 0, 'error_message': 'SSH user not configured for this website.'}) from datetime import datetime, timedelta import jwt as pyjwt - # Read JWT_SECRET from fastapi_ssh_server.py + # Read JWT_SECRET from fastapi_ssh_server.py using ProcessUtilities jwt_secret = None try: - with open('/usr/local/CyberCP/fastapi_ssh_server.py', 'r') as f: - for line in f: - m = re.match(r'\s*JWT_SECRET\s*=\s*[\'"](.+)[\'"]', line) - if m and m.group(1) != 'REPLACE_ME_WITH_INSTALLER': - jwt_secret = m.group(1) - break + content = ProcessUtilities.outputExecutioner('cat /usr/local/CyberCP/fastapi_ssh_server.py') + for line in content.splitlines(): + m = re.match(r'\s*JWT_SECRET\s*=\s*[\'"](.+)[\'"]', line) + if m and m.group(1) != 'REPLACE_ME_WITH_INSTALLER': + jwt_secret = m.group(1) + break except Exception as e: logger.error(f"Could not read JWT_SECRET: {e}") if not jwt_secret: diff --git a/websiteFunctions/website.py b/websiteFunctions/website.py index f1976ba74..f6d760b3f 100755 --- a/websiteFunctions/website.py +++ b/websiteFunctions/website.py @@ -4989,19 +4989,20 @@ StrictHostKeyChecking no from plogical.processUtilities import ProcessUtilities fastapi_file = '/usr/local/CyberCP/fastapi_ssh_server.py' + from plogical.CyberCPLogFileWriter import CyberCPLogFileWriter try: - with open(fastapi_file, 'r') as f: - content = f.read() - m = re.search(r'JWT_SECRET\s*=\s*[\'"](.+)[\'"]', content) - if m and m.group(1) in ['REPLACE_ME_WITH_INSTALLER', 'YOUR_SECRET_KEY']: + + content = ProcessUtilities.outputExecutioner(f'cat {fastapi_file}') + if 'REPLACE_ME_WITH_INSTALLER' in content: new_secret = secrets.token_urlsafe(32) - # Use sed to replace the line in-place (macOS compatible) - sed_cmd = f"sed -i '' 's|JWT_SECRET = \"{m.group(1)}\"|JWT_SECRET = \"{new_secret}\"|' '{fastapi_file}'" + + sed_cmd = f"sed -i 's|JWT_SECRET = \"REPLACE_ME_WITH_INSTALLER\"|JWT_SECRET = \"{new_secret}\"|' '{fastapi_file}'" ProcessUtilities.outputExecutioner(sed_cmd) - + command = 'systemctl restart fastapi_ssh_server' ProcessUtilities.outputExecutioner(command) - except Exception as e: + except Exception: + CyberCPLogFileWriter.writeLog(f"Failed to update JWT secret: {e}") pass #####