write initial config file

update cloud authentication server to secure connection (ignoring self signed errors)
This commit is contained in:
Simon Stürz 2016-09-09 13:20:07 +02:00 committed by Michael Zanetti
parent 7387bc1b72
commit 22ab445403
2 changed files with 30 additions and 3 deletions

View File

@ -36,7 +36,10 @@ CloudAuthenticator::CloudAuthenticator(QString clientId, QString clientSecret, Q
m_username = loadUserName(); m_username = loadUserName();
m_networkManager = new QNetworkAccessManager(this); m_networkManager = new QNetworkAccessManager(this);
m_networkManager->
connect(m_networkManager, &QNetworkAccessManager::finished, this, &CloudAuthenticator::replyFinished); connect(m_networkManager, &QNetworkAccessManager::finished, this, &CloudAuthenticator::replyFinished);
connect(m_networkManager, &QNetworkAccessManager::sslErrors, this, &CloudAuthenticator::onSslErrors);
m_timer = new QTimer(this); m_timer = new QTimer(this);
m_timer->setSingleShot(false); m_timer->setSingleShot(false);
@ -136,8 +139,10 @@ bool CloudAuthenticator::startAuthentication()
request.setRawHeader("Authorization", header.toLocal8Bit()); request.setRawHeader("Authorization", header.toLocal8Bit());
request.setHeader(QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlencoded"); request.setHeader(QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlencoded");
m_tokenRequests.append(m_networkManager->post(request, m_query.toString().toUtf8())); QNetworkReply *reply = m_networkManager->post(request, m_query.toString().toUtf8());
m_tokenRequests.append(reply);
return true; return true;
} else if (!m_refreshToken.isEmpty()) { } else if (!m_refreshToken.isEmpty()) {
// Use the refreshtoken if there is any // Use the refreshtoken if there is any
refreshTimeout(); refreshTimeout();
@ -302,6 +307,7 @@ void CloudAuthenticator::replyFinished(QNetworkReply *reply)
if (!authenticated()) if (!authenticated())
setAuthenticated(true); setAuthenticated(true);
} }
reply->deleteLater(); reply->deleteLater();
@ -320,7 +326,27 @@ void CloudAuthenticator::refreshTimeout()
QString header = "Basic " + data; QString header = "Basic " + data;
request.setRawHeader("Authorization", header.toLocal8Bit()); request.setRawHeader("Authorization", header.toLocal8Bit());
request.setHeader(QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlencoded"); request.setHeader(QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlencoded");
m_refreshTokenRequests.append(m_networkManager->post(request, query.toString().toUtf8()));
QNetworkReply *reply = m_networkManager->post(request, query.toString().toUtf8());
m_refreshTokenRequests.append(reply);
}
void CloudAuthenticator::onSslErrors(QNetworkReply *reply, const QList<QSslError> &errors)
{
reply->ignoreSslErrors();
//reply->ignoreSslErrors(QList<QSslError>() << QSslError(QSslError::SelfSignedCertificate) << QSslError(QSslError::CertificateUntrusted) << QSslError(QSslError::HostNameMismatch));
if (m_refreshTokenRequests.contains(reply)) {
qCWarning(dcCloud()) << "SSL errors occured for token refresh reply:";
} else if (m_tokenRequests.contains(reply)) {
qCWarning(dcCloud()) << "SSL errors occured for token reply:";
} else {
qCWarning(dcCloud()) << "SSL errors occured for unknown reply:";
}
foreach (const QSslError &error, errors) {
qCWarning(dcCloud()) << " " << (int)error.error() << error.errorString();
}
} }
} }

View File

@ -92,6 +92,7 @@ private:
private slots: private slots:
void replyFinished(QNetworkReply *reply); void replyFinished(QNetworkReply *reply);
void refreshTimeout(); void refreshTimeout();
void onSslErrors(QNetworkReply *reply, const QList<QSslError> &errors);
signals: signals:
void authenticationChanged(); void authenticationChanged();