From e12613d9a4ebb082fb71d7c8fe564d2666868f15 Mon Sep 17 00:00:00 2001 From: Kevin Yue Date: Sat, 30 May 2020 11:22:05 +0800 Subject: [PATCH] Try to fix saml hang (#14) * Try to fix saml login hang * Add more logs * Add version number --- GPClient/main.cpp | 4 ++++ GPClient/samlloginwindow.cpp | 20 +++++++++++++++----- 2 files changed, 19 insertions(+), 5 deletions(-) diff --git a/GPClient/main.cpp b/GPClient/main.cpp index 14b7937..815249b 100644 --- a/GPClient/main.cpp +++ b/GPClient/main.cpp @@ -6,6 +6,8 @@ #include #include +static const QString version = "v1.2.2"; + int main(int argc, char *argv[]) { const QDir path = QStandardPaths::writableLocation(QStandardPaths::GenericCacheLocation) + "/GlobalProtect-openconnect"; @@ -17,6 +19,8 @@ int main(int argc, char *argv[]) static plog::ColorConsoleAppender consoleAppender; plog::init(plog::debug, logFile.toUtf8()).addAppender(&consoleAppender); + PLOGI << "GlobalProtect started, version: " << version; + QString port = QString::fromLocal8Bit(qgetenv(ENV_CDP_PORT)); if (port == "") { diff --git a/GPClient/samlloginwindow.cpp b/GPClient/samlloginwindow.cpp index e7de560..2729ca1 100644 --- a/GPClient/samlloginwindow.cpp +++ b/GPClient/samlloginwindow.cpp @@ -61,29 +61,39 @@ void SAMLLoginWindow::onResponseReceived(QJsonObject params) const QString preloginCookie = headers.value("prelogin-cookie").toString(); const QString userAuthCookie = headers.value("portal-userauthcookie").toString(); + LOGI << "Response received from " << response.value("url").toString(); + if (!username.isEmpty()) { + LOGI << "Got username from SAML response headers " << username; samlResult.insert("username", username); } if (!preloginCookie.isEmpty()) { + LOGI << "Got prelogin-cookie from SAML response headers " << preloginCookie; samlResult.insert("preloginCookie", preloginCookie); } if (!userAuthCookie.isEmpty()) { + LOGI << "Got portal-userauthcookie from SAML response headers " << userAuthCookie; samlResult.insert("userAuthCookie", userAuthCookie); } -} - -void SAMLLoginWindow::onLoadFinished() -{ - LOGI << "Load finished " << this->webView->page()->url().toString(); // Check the SAML result if (samlResult.contains("username") && (samlResult.contains("preloginCookie") || samlResult.contains("userAuthCookie"))) { + LOGI << "Got the SAML authentication information successfully. " + << "username: " << samlResult.value("username") + << ", preloginCookie: " << samlResult.value("preloginCookie") + << ", userAuthCookie: " << samlResult.value("userAuthCookie"); + emit success(samlResult); accept(); } else { this->show(); } } + +void SAMLLoginWindow::onLoadFinished() +{ + LOGI << "Load finished " << this->webView->page()->url().toString(); +}