Ref T160, improved / more detailed info for user-agent in requests

* renamed to getSwiftNetworkRequest (make clear request is tweaked)
* add details to user request
This commit is contained in:
Klaus Basan
2017-09-24 03:16:58 +02:00
parent efe5419e9a
commit dabe50bcfe
5 changed files with 24 additions and 15 deletions

View File

@@ -1434,12 +1434,10 @@ namespace BlackCore
}
Q_ASSERT_X(QThread::currentThread() == m_accessManager->thread(), Q_FUNC_INFO, "Network manager thread mismatch");
QNetworkRequest copiedRequest(request); // no QObject
CNetworkUtils::ignoreSslVerification(copiedRequest);
CNetworkUtils::setSwiftUserAgent(copiedRequest);
QNetworkRequest copiedRequest = CNetworkUtils::getSwiftNetworkRequest(request, this->getApplicationNameAndVersion());
// If URL is one of the shared URLs, add swift client SSL certificate to request
CNetworkUtils::setSwiftClientSslCertificate(copiedRequest, getGlobalSetup().getSwiftSharedUrls());
CNetworkUtils::setSwiftClientSslCertificate(copiedRequest, this->getGlobalSetup().getSwiftSharedUrls());
QNetworkReply *reply = requestOrPostMethod(*m_accessManager, copiedRequest);
reply->setProperty("started", QVariant(QDateTime::currentMSecsSinceEpoch()));

View File

@@ -88,7 +88,7 @@ namespace BlackCore
if (sApp->getGlobalSetup().dbDebugFlag()) { CNetworkUtils::addDebugFlag(params); }
QString query = params.toString();
const QNetworkRequest request(CNetworkUtils::getNetworkRequest(url, CNetworkUtils::PostUrlEncoded));
const QNetworkRequest request(CNetworkUtils::getSwiftNetworkRequest(url, CNetworkUtils::PostUrlEncoded, sApp->getApplicationNameAndVersion()));
sApp->postToNetwork(request, CApplication::NoLogRequestId, query.toUtf8(), { this, &CDatabaseAuthenticationService::parseServerResponse});
static const QString rm("Sent request to authentication server '%1'");
msgs.push_back(CStatusMessage(cats, CStatusMessage::SeverityInfo, rm.arg(url.toQString())));
@@ -99,7 +99,7 @@ namespace BlackCore
{
CUrl url(sApp->getGlobalSetup().getDbLoginServiceUrl());
url.setQuery("logoff=true");
QNetworkRequest request(CNetworkUtils::getNetworkRequest(url));
QNetworkRequest request(CNetworkUtils::getSwiftNetworkRequest(url));
sApp->getFromNetwork(request, { this, &CDatabaseAuthenticationService::parseServerResponse });
this->m_swiftDbUser.set(CAuthenticatedUser());
}

View File

@@ -225,10 +225,10 @@ namespace BlackMisc
request.setSslConfiguration(conf);
}
void CNetworkUtils::setSwiftUserAgent(QNetworkRequest &request)
void CNetworkUtils::setSwiftUserAgent(QNetworkRequest &request, const QString &userAgentDetails)
{
static const QString userAgent("swift/" + CBuildConfig::getVersionString());
request.setRawHeader("User-Agent", userAgent.toLatin1());
static const QString defaultUserAgent("swift/" + CBuildConfig::getVersionString());
request.setRawHeader("User-Agent", userAgentDetails.isEmpty() ? defaultUserAgent.toLatin1() : QString("swift/" + userAgentDetails).toLatin1());
}
//! \cond PRIVATE
@@ -279,7 +279,7 @@ namespace BlackMisc
qurl.addQueryItem("XDEBUG_SESSION_START", "ECLIPSE_DBGP");
}
QNetworkRequest CNetworkUtils::getNetworkRequest(const CUrl &url, RequestType type)
QNetworkRequest CNetworkUtils::getSwiftNetworkRequest(const CUrl &url, RequestType type, const QString &userAgentDetails)
{
QNetworkRequest request(url.toQUrl());
switch (type)
@@ -291,10 +291,18 @@ namespace BlackMisc
break;
}
CNetworkUtils::ignoreSslVerification(request);
CNetworkUtils::setSwiftUserAgent(request);
CNetworkUtils::setSwiftUserAgent(request, userAgentDetails);
return request;
}
QNetworkRequest CNetworkUtils::getSwiftNetworkRequest(const QNetworkRequest &request, const QString &userAgentDetails)
{
QNetworkRequest req(request); // copy
CNetworkUtils::ignoreSslVerification(req);
CNetworkUtils::setSwiftUserAgent(req, userAgentDetails);
return req;
}
qint64 CNetworkUtils::lastModifiedMsSinceEpoch(QNetworkReply *nwReply)
{
Q_ASSERT(nwReply);

View File

@@ -106,7 +106,7 @@ namespace BlackMisc
static void ignoreSslVerification(QNetworkRequest &request);
//! Set user agent for request
static void setSwiftUserAgent(QNetworkRequest &request);
static void setSwiftUserAgent(QNetworkRequest &request, const QString &userAgentDetails = {});
//! Set swift client SSL certificate
static void setSwiftClientSslCertificate(QNetworkRequest &request);
@@ -117,8 +117,11 @@ namespace BlackMisc
//! Add debug flag
static void addDebugFlag(QUrlQuery &qurl);
//! Our tweaked network request
static QNetworkRequest getNetworkRequest(const CUrl &url, RequestType type = Get);
//! Our tweaked network request with swift header
static QNetworkRequest getSwiftNetworkRequest(const CUrl &url, RequestType type = Get, const QString &userAgentDetails = {});
//! Get a copied network request with swift header
static QNetworkRequest getSwiftNetworkRequest(const QNetworkRequest &request, const QString &userAgentDetails = {});
//! Last modified from reply
static qint64 lastModifiedMsSinceEpoch(QNetworkReply *nwReply);

View File

@@ -145,7 +145,7 @@ namespace BlackMisc
QNetworkRequest CUrl::toNetworkRequest() const
{
return CNetworkUtils::getNetworkRequest(*this);
return CNetworkUtils::getSwiftNetworkRequest(*this);
}
CUrl CUrl::withAppendedPath(const QString &path) const