Skip to content

Commit

Permalink
Merge pull request #5524 from boundlessgeo/basic_cas_backport
Browse files Browse the repository at this point in the history
[bugfix][auth] Basic method uses trusted CAs when connecting to DB
  • Loading branch information
elpaso committed Nov 3, 2017
2 parents 08889c7 + 3fab140 commit 92ce3be
Showing 1 changed file with 21 additions and 0 deletions.
21 changes: 21 additions & 0 deletions src/auth/basic/qgsauthbasicmethod.cpp
Expand Up @@ -22,6 +22,7 @@

#include <QNetworkProxy>
#include <QMutexLocker>
#include <QUuid>

static const QString AUTH_METHOD_KEY = "Basic";
static const QString AUTH_METHOD_DESCRIPTION = "Basic authentication";
Expand Down Expand Up @@ -126,6 +127,26 @@ bool QgsAuthBasicMethod::updateDataSourceUriItems( QStringList &connectionItems,
connectionItems.append( passparam );
}

// add extra CAs
// save CAs to temp file
QString tempFileBase = QLatin1String( "tmp_basic_%1.pem" );
QString caFilePath = QgsAuthCertUtils::pemTextToTempFile(
tempFileBase.arg( QUuid::createUuid().toString() ),
QgsAuthManager::instance()->getTrustedCaCertsPemText( ) );
if ( ! caFilePath.isEmpty() )
{
QString caparam = "sslrootcert='" + caFilePath + "'";
int sslcaindx = connectionItems.indexOf( QRegExp( "^sslrootcert='.*" ) );
if ( sslcaindx != -1 )
{
connectionItems.replace( sslcaindx, caparam );
}
else
{
connectionItems.append( caparam );
}
}

return true;
}

Expand Down

0 comments on commit 92ce3be

Please sign in to comment.