added an option to enable/disable SSLErrorIgnoring, regards #70
This commit is contained in:
parent
3ee847b6c3
commit
3e4d30cf66
4 changed files with 34 additions and 2 deletions
|
|
@ -13,6 +13,7 @@
|
|||
#include <QtNetwork/QNetworkDiskCache>
|
||||
#include <QDesktopServices>
|
||||
#include <QDebug>
|
||||
#include "settings.hh"
|
||||
|
||||
QScopedPointer<MyNetworkManager> MyNetworkManager::m_instance(0);
|
||||
|
||||
|
|
@ -47,12 +48,16 @@ QNetworkReply *MyNetworkAccessManager::createRequest( QNetworkAccessManager::Ope
|
|||
QNetworkRequest request(req);
|
||||
request.setAttribute(QNetworkRequest::CacheLoadControlAttribute, QNetworkRequest::PreferCache);
|
||||
QNetworkReply *reply = QNetworkAccessManager::createRequest(op, request, outgoingData);
|
||||
if (Settings::instance()->ignoreSSLErrors()) {
|
||||
reply->ignoreSslErrors();
|
||||
}
|
||||
connect(reply, SIGNAL(error(QNetworkReply::NetworkError)), this, SLOT(onError(QNetworkReply::NetworkError)));
|
||||
return reply;
|
||||
}
|
||||
|
||||
void MyNetworkAccessManager::onError(QNetworkReply::NetworkError e) {
|
||||
qDebug() << "got network error " << (int)e;
|
||||
|
||||
if (e < QNetworkReply::ContentAccessDenied && e != QNetworkReply::TemporaryNetworkFailureError)
|
||||
this->error();
|
||||
}
|
||||
|
|
@ -62,8 +67,12 @@ void MyNetworkManager::onError() {
|
|||
}
|
||||
|
||||
void MyNetworkManager::onSslErrors(QNetworkReply *reply, const QList<QSslError> &errors) {
|
||||
qDebug("onSslErrors");
|
||||
reply->ignoreSslErrors(errors);
|
||||
if (Settings::instance()->ignoreSSLErrors()) {
|
||||
qDebug("onSslErrors");
|
||||
reply->ignoreSslErrors(errors);
|
||||
}
|
||||
else
|
||||
qDebug("not ignoring onSslErrors, since this is not specified in settings");
|
||||
}
|
||||
|
||||
void MyNetworkManager::onStarted() {
|
||||
|
|
|
|||
|
|
@ -82,6 +82,12 @@ Page {
|
|||
width: parent.width
|
||||
// enabled: !network.loading
|
||||
}
|
||||
TextSwitch {
|
||||
text: qsTr('Ignore SSL Errors')
|
||||
visible: server.text.substring(0, 5) === "https"
|
||||
checked: settings.ignoreSSLErrors
|
||||
onCheckedChanged: settings.ignoreSSLErrors = checked
|
||||
}
|
||||
Button {
|
||||
id: loginButton
|
||||
text: qsTr("Login")
|
||||
|
|
|
|||
|
|
@ -78,6 +78,14 @@ void Settings::setUseAutologin(bool useAutologin) {
|
|||
}
|
||||
}
|
||||
|
||||
void Settings::setIgnoreSSLErrors(bool ignoreSSLErrors) {
|
||||
if (_ignoreSSLErrors != ignoreSSLErrors) {
|
||||
_ignoreSSLErrors = ignoreSSLErrors;
|
||||
m_settings->setValue("ignoreSSLErrors", _ignoreSSLErrors);
|
||||
emit ignoreSSLErrorsChanged();
|
||||
}
|
||||
}
|
||||
|
||||
void Settings::setWhiteTheme(bool whiteTheme) {
|
||||
if (_whiteTheme != whiteTheme) {
|
||||
_whiteTheme = whiteTheme;
|
||||
|
|
@ -140,6 +148,7 @@ Settings::Settings(QObject *parent) : QObject(parent), m_settings(new QSettings(
|
|||
_password = m_settings->value("password", "").toString();
|
||||
_autologin = m_settings->value("autologin", false).toBool();
|
||||
_useAutologin = m_settings->value("useAutologin", true).toBool();
|
||||
_ignoreSSLErrors = m_settings->value("ignoreSSLErrors", false).toBool();
|
||||
|
||||
_httpauthuser = m_settings->value("httpauthusername", "").toString();
|
||||
_httpauthpasswd = m_settings->value("httpauthpassword", "").toString();
|
||||
|
|
|
|||
|
|
@ -16,6 +16,7 @@ class Settings : public QObject
|
|||
Q_PROPERTY(QString password READ password WRITE setPassword NOTIFY passwordChanged)
|
||||
Q_PROPERTY(bool autologin READ hasAutologin WRITE setAutologin NOTIFY autologinChanged)
|
||||
Q_PROPERTY(bool useAutologin READ hasUseAutologin WRITE setUseAutologin NOTIFY useAutologinChanged)
|
||||
Q_PROPERTY(bool ignoreSSLErrors READ ignoreSSLErrors WRITE setIgnoreSSLErrors NOTIFY ignoreSSLErrorsChanged)
|
||||
|
||||
Q_PROPERTY(QString httpauthusername READ httpauthUsername WRITE setHttpauthUsername NOTIFY httpauthUsernameChanged)
|
||||
Q_PROPERTY(QString httpauthpassword READ httpauthPassword WRITE setHttpauthPassword NOTIFY httpauthPasswordChanged)
|
||||
|
|
@ -55,6 +56,11 @@ public:
|
|||
}
|
||||
void setUseAutologin(bool useAutologin);
|
||||
|
||||
bool ignoreSSLErrors() const {
|
||||
return this->_ignoreSSLErrors;
|
||||
}
|
||||
void setIgnoreSSLErrors(bool ignoreSSLErrors);
|
||||
|
||||
QString httpauthUsername() const {
|
||||
return this->_httpauthuser;
|
||||
}
|
||||
|
|
@ -106,6 +112,7 @@ signals:
|
|||
void passwordChanged();
|
||||
void autologinChanged();
|
||||
void useAutologinChanged();
|
||||
void ignoreSSLErrorsChanged();
|
||||
|
||||
void httpauthUsernameChanged();
|
||||
void httpauthPasswordChanged();
|
||||
|
|
@ -131,6 +138,7 @@ private:
|
|||
QString _password;
|
||||
bool _autologin;
|
||||
bool _useAutologin;
|
||||
bool _ignoreSSLErrors;
|
||||
|
||||
QString _httpauthuser;
|
||||
QString _httpauthpasswd;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue