mirror of
https://github.com/nextcloud/desktop.git
synced 2024-11-23 05:25:50 +03:00
Use the certificateChain() in the SSL error dialog
This includes the self-signed certificate anyway, and the previous behavior led to funny side-effects.
This commit is contained in:
parent
db95e7291d
commit
c633302f31
3 changed files with 4 additions and 17 deletions
|
@ -65,9 +65,7 @@ void ownCloudInfo::setNetworkAccessManager( QNetworkAccessManager* qnam )
|
|||
_manager = qnam;
|
||||
|
||||
MirallConfigFile cfg( _configHandle );
|
||||
QSettings settings( cfg.configFile(), QSettings::IniFormat);
|
||||
QByteArray certs = settings.value(QLatin1String("CaCertificates")).toByteArray();
|
||||
QSslSocket::addDefaultCaCertificates(QSslCertificate::fromData(certs));
|
||||
QSslSocket::addDefaultCaCertificates(QSslCertificate::fromData(cfg.caCerts()));
|
||||
|
||||
connect( _manager, SIGNAL( sslErrors(QNetworkReply*, QList<QSslError>)),
|
||||
this, SIGNAL(sslFailed(QNetworkReply*, QList<QSslError>)) );
|
||||
|
|
|
@ -14,14 +14,13 @@
|
|||
#include "mirall/mirallconfigfile.h"
|
||||
#include "mirall/utility.h"
|
||||
#include "mirall/sslerrordialog.h"
|
||||
#include "mirall/owncloudinfo.h"
|
||||
|
||||
#include <QtGui>
|
||||
#include <QtNetwork>
|
||||
|
||||
namespace Mirall
|
||||
{
|
||||
#define CA_CERTS_KEY QLatin1String("CaCertificates")
|
||||
|
||||
SslErrorDialog::SslErrorDialog(QWidget *parent) :
|
||||
QDialog(parent), _allTrusted(false)
|
||||
{
|
||||
|
@ -42,14 +41,6 @@ SslErrorDialog::SslErrorDialog(QWidget *parent) :
|
|||
}
|
||||
}
|
||||
|
||||
QList<QSslCertificate> SslErrorDialog::storedCACerts()
|
||||
{
|
||||
MirallConfigFile cfg( _customConfigHandle );
|
||||
|
||||
QList<QSslCertificate> cacerts = QSslCertificate::fromData(cfg.caCerts());
|
||||
|
||||
return cacerts;
|
||||
}
|
||||
|
||||
QString SslErrorDialog::styleSheet() const
|
||||
{
|
||||
|
@ -68,12 +59,13 @@ QString SslErrorDialog::styleSheet() const
|
|||
|
||||
bool SslErrorDialog::setErrorList( QList<QSslError> errors )
|
||||
{
|
||||
QList<QSslCertificate> ourCerts = storedCACerts();
|
||||
QList<QSslCertificate> ourCerts = ownCloudInfo::instance()->certificateChain();
|
||||
|
||||
// check if unknown certs caused errors.
|
||||
_unknownCerts.clear();
|
||||
|
||||
QStringList errorStrings;
|
||||
|
||||
for (int i = 0; i < errors.count(); ++i) {
|
||||
if (ourCerts.contains(errors.at(i).certificate()) ||
|
||||
_unknownCerts.contains(errors.at(i).certificate() ))
|
||||
|
@ -191,9 +183,7 @@ void SslErrorDialog::accept()
|
|||
QSslSocket::addDefaultCaCertificates(_unknownCerts);
|
||||
|
||||
MirallConfigFile cfg( _customConfigHandle );
|
||||
|
||||
QByteArray certs = cfg.caCerts();
|
||||
|
||||
qDebug() << "Saving " << _unknownCerts.count() << " unknown certs.";
|
||||
foreach( const QSslCertificate& cert, _unknownCerts ) {
|
||||
certs += cert.toPem() + '\n';
|
||||
|
|
|
@ -45,7 +45,6 @@ public slots:
|
|||
void accept();
|
||||
|
||||
private:
|
||||
QList<QSslCertificate> storedCACerts();
|
||||
QString styleSheet() const;
|
||||
bool _allTrusted;
|
||||
|
||||
|
|
Loading…
Reference in a new issue