From 501bff6f7acbfdd159895e6c6ffaf4edd01887db Mon Sep 17 00:00:00 2001 From: Yogesh Mahajan Date: Tue, 28 Mar 2023 11:07:41 +0530 Subject: [PATCH] Ensure google authentication can be completed successfully, while pgAdmin is running in behind proxy servers. #5750 --- web/pgadmin/misc/cloud/google/__init__.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/web/pgadmin/misc/cloud/google/__init__.py b/web/pgadmin/misc/cloud/google/__init__.py index abf772d47..de5a2b520 100644 --- a/web/pgadmin/misc/cloud/google/__init__.py +++ b/web/pgadmin/misc/cloud/google/__init__.py @@ -12,6 +12,7 @@ import pickle import json import os from pathlib import Path +from urllib.parse import unquote from config import root from pgadmin.utils.csrf import pgCSRFProtect @@ -80,6 +81,7 @@ def verify_credentials(): error = None res_data = {} + client_secret_path = unquote(client_secret_path) try: client_secret_path = \ filename_with_file_manager_path(client_secret_path) @@ -102,7 +104,11 @@ def verify_credentials(): _google = pickle.loads(session['google']['google_obj']) # get auth url - auth_url, error_msg = _google.get_auth_url(request.host_url) + host_url = request.origin + '/' + if request.root_path != '': + host_url = host_url + request.root_path + '/' + + auth_url, error_msg = _google.get_auth_url(host_url) if error_msg: error = error_msg else: