Skip to content

Commit

Permalink
Fix: ssl settings are ignored in uri for HANA
Browse files Browse the repository at this point in the history
  • Loading branch information
Maksim Rylov authored and mrylov committed Dec 7, 2020
1 parent 7616885 commit cccd30b
Show file tree
Hide file tree
Showing 7 changed files with 29 additions and 26 deletions.
3 changes: 2 additions & 1 deletion src/providers/hana/qgshanacolumntypethread.cpp
Expand Up @@ -16,6 +16,7 @@
***************************************************************************/
#include "qgshanacolumntypethread.h"
#include "qgshanaconnection.h"
#include "qgshanautils.h"
#include "qgslogger.h"
#include "qgsmessagelog.h"
#include <mutex>
Expand Down Expand Up @@ -46,7 +47,7 @@ void QgsHanaColumnTypeThread::run()
QgsHanaConnectionRef conn( mUri );
if ( conn.isNull() )
{
QgsDebugMsg( "Connection failed - " + mUri.connectionInfo( false ) );
QgsDebugMsg( "Connection failed - " + conn->connInfo() );
mStopped = true;
return;
}
Expand Down
4 changes: 2 additions & 2 deletions src/providers/hana/qgshanaconnectionstringbuilder.cpp
Expand Up @@ -25,10 +25,10 @@ QgsHanaConnectionStringBuilder::QgsHanaConnectionStringBuilder( const QgsDataSou
, mPassword( uri.password() )
, mSslEnabled( false )
{
if ( !uri.hasParam( QStringLiteral( "encrypt" ) ) )
if ( !uri.hasParam( QStringLiteral( "sslEnabled" ) ) )
return;

mSslEnabled = ( uri.param( QStringLiteral( "encrypt" ) ) == QStringLiteral( "true" ) ) ? true : false;
mSslEnabled = ( uri.param( QStringLiteral( "sslEnabled" ) ) == QStringLiteral( "true" ) ) ? true : false;
mSslCryptoProvider = uri.param( QStringLiteral( "sslCryptoProvider" ) );
mSslValidateCertificate = uri.param( QStringLiteral( "sslValidateCertificate" ) ) == QStringLiteral( "true" ) ? true : false;
if ( mSslValidateCertificate )
Expand Down
12 changes: 6 additions & 6 deletions src/providers/hana/qgshanaprovider.cpp
Expand Up @@ -335,7 +335,7 @@ QgsHanaProvider::QgsHanaProvider(

mValid = true;

QgsDebugMsgLevel( QStringLiteral( "Connection info is %1" ).arg( mUri.connectionInfo( false ) ), 4 );
QgsDebugMsgLevel( QStringLiteral( "Connection info is %1" ).arg( QgsHanaUtils::connectionInfo( mUri ) ), 4 );
QgsDebugMsgLevel( QStringLiteral( "Schema is: %1" ).arg( mSchemaName ), 4 );
QgsDebugMsgLevel( QStringLiteral( "Table name is: %1" ).arg( mTableName ), 4 );
QgsDebugMsgLevel( QStringLiteral( "Geometry column is: %1" ).arg( mGeometryColumn ), 4 );
Expand Down Expand Up @@ -1741,11 +1741,11 @@ QVariantMap QgsHanaProviderMetadata::decodeUri( const QString &uri )
if ( ! dsUri.srid().isEmpty() )
uriParts[ QStringLiteral( "srid" ) ] = dsUri.srid();

if ( dsUri.hasParam( QStringLiteral( "encrypt" ) ) )
if ( dsUri.hasParam( QStringLiteral( "sslEnabled" ) ) )
{
QString value = dsUri.param( QStringLiteral( "encrypt" ) );
QString value = dsUri.param( QStringLiteral( "sslEnabled" ) );
if ( ! value.isEmpty() )
uriParts[ QStringLiteral( "encrypt" ) ] = value;
uriParts[ QStringLiteral( "sslEnabled" ) ] = value;
}
if ( dsUri.hasParam( QStringLiteral( "sslCryptoProvider" ) ) )
{
Expand Down Expand Up @@ -1817,8 +1817,8 @@ QString QgsHanaProviderMetadata::encodeUri( const QVariantMap &parts )
if ( parts.contains( QStringLiteral( "srid" ) ) )
dsUri.setSrid( parts.value( QStringLiteral( "srid" ) ).toString() );

if ( parts.contains( QStringLiteral( "encrypt" ) ) )
dsUri.setParam( QStringLiteral( "encrypt" ), parts.value( QStringLiteral( "encrypt" ) ).toString() );
if ( parts.contains( QStringLiteral( "sslEnabled" ) ) )
dsUri.setParam( QStringLiteral( "sslEnabled" ), parts.value( QStringLiteral( "sslEnabled" ) ).toString() );
if ( parts.contains( QStringLiteral( "sslCryptoProvider" ) ) )
dsUri.setParam( QStringLiteral( "sslCryptoProvider" ), parts.value( QStringLiteral( "sslCryptoProvider" ) ).toString() );
if ( parts.contains( QStringLiteral( "sslValidateCertificate" ) ) )
Expand Down
2 changes: 1 addition & 1 deletion src/providers/hana/qgshanaproviderconnection.cpp
Expand Up @@ -42,7 +42,7 @@ QgsHanaProviderConnection::QgsHanaProviderConnection( const QString &name )
}

QgsHanaProviderConnection::QgsHanaProviderConnection( const QString &uri, const QVariantMap &configuration ):
QgsAbstractDatabaseProviderConnection( QgsDataSourceUri( uri ).connectionInfo( false ), configuration )
QgsAbstractDatabaseProviderConnection( QgsHanaUtils::connectionInfo( QgsDataSourceUri( uri ) ), configuration )
{
setCapabilities();
}
Expand Down
6 changes: 3 additions & 3 deletions src/providers/hana/qgshanasettings.cpp
Expand Up @@ -70,8 +70,8 @@ void QgsHanaSettings::setFromDataSourceUri( const QgsDataSourceUri &uri )
mSslHostNameInCertificate = "";
mSslKeyStore = "";
mSslTrustStore = "";
if ( uri.hasParam( QStringLiteral( "encrypt" ) ) )
mSslEnabled = QVariant( uri.param( "encrypt" ) ).toBool();
if ( uri.hasParam( QStringLiteral( "sslEnabled" ) ) )
mSslEnabled = QVariant( uri.param( "sslEnabled" ) ).toBool();
if ( uri.hasParam( QStringLiteral( "sslCryptoProvider" ) ) )
mSslCryptoProvider = uri.param( QStringLiteral( "sslCryptoProvider" ) );
if ( uri.hasParam( QStringLiteral( "sslValidateCertificate" ) ) )
Expand Down Expand Up @@ -109,7 +109,7 @@ QgsDataSourceUri QgsHanaSettings::toDataSourceUri() const
uri.setSchema( mSchema );
if ( mSslEnabled )
{
uri.setParam( QStringLiteral( "encrypt" ), QStringLiteral( "true" ) );
uri.setParam( QStringLiteral( "sslEnabled" ), QStringLiteral( "true" ) );
uri.setParam( QStringLiteral( "sslCryptoProvider" ), mSslCryptoProvider );
uri.setParam( QStringLiteral( "sslValidateCertificate" ), mSslValidateCertificate ? QStringLiteral( "true" ) : QStringLiteral( "false" ) );
if ( !mSslHostNameInCertificate.isEmpty() )
Expand Down
2 changes: 1 addition & 1 deletion src/providers/hana/qgshanasourceselect.cpp
Expand Up @@ -507,7 +507,7 @@ void QgsHanaSourceSelect::addButtonClicked()
if ( idx.column() != QgsHanaTableModel::DbtmTable )
continue;

QString uri = mTableModel.layerURI( mProxyModel.mapToSource( idx ), mDataSrcUri.connectionInfo( false ) );
QString uri = mTableModel.layerURI( mProxyModel.mapToSource( idx ), QgsHanaUtils::connectionInfo( mDataSrcUri ) );
if ( uri.isNull() )
continue;

Expand Down
26 changes: 14 additions & 12 deletions src/providers/hana/qgshanautils.cpp
Expand Up @@ -61,23 +61,25 @@ QString QgsHanaUtils::connectionInfo( const QgsDataSourceUri &uri )
connectionItems << "password='" + escape( uri.password() ) + '\'';
}

if ( uri.hasParam( QStringLiteral( "encrypt" ) ) )
connectionItems << "encrypt='" + uri.param( QStringLiteral( "encrypt" ) ) + '\'';
if ( uri.hasParam( QStringLiteral( "sslEnabled" ) ) )
{
connectionItems << "sslEnabled='" + uri.param( QStringLiteral( "sslEnabled" ) ) + '\'';

if ( uri.hasParam( QStringLiteral( "sslCryptoProvider" ) ) )
connectionItems << "sslCryptoProvider='" + uri.param( QStringLiteral( "sslCryptoProvider" ) ) + '\'';
if ( uri.hasParam( QStringLiteral( "sslCryptoProvider" ) ) )
connectionItems << "sslCryptoProvider='" + uri.param( QStringLiteral( "sslCryptoProvider" ) ) + '\'';

if ( uri.hasParam( QStringLiteral( "sslValidateCertificate" ) ) )
connectionItems << "sslValidateCertificate='" + uri.param( QStringLiteral( "sslValidateCertificate" ) ) + '\'';
if ( uri.hasParam( QStringLiteral( "sslValidateCertificate" ) ) )
connectionItems << "sslValidateCertificate='" + uri.param( QStringLiteral( "sslValidateCertificate" ) ) + '\'';

if ( uri.hasParam( QStringLiteral( "sslHostNameInCertificate" ) ) )
connectionItems << "sslHostNameInCertificate='" + uri.param( QStringLiteral( "sslHostNameInCertificate" ) ) + '\'';
if ( uri.hasParam( QStringLiteral( "sslHostNameInCertificate" ) ) )
connectionItems << "sslHostNameInCertificate='" + uri.param( QStringLiteral( "sslHostNameInCertificate" ) ) + '\'';

if ( uri.hasParam( QStringLiteral( "sslKeyStore" ) ) )
connectionItems << "sslKeyStore='" + uri.param( QStringLiteral( "sslKeyStore" ) ) + '\'';
if ( uri.hasParam( QStringLiteral( "sslKeyStore" ) ) )
connectionItems << "sslKeyStore='" + uri.param( QStringLiteral( "sslKeyStore" ) ) + '\'';

if ( uri.hasParam( QStringLiteral( "sslTrustStore" ) ) )
connectionItems << "sslTrustStore='" + uri.param( QStringLiteral( "sslTrustStore" ) ) + '\'';
if ( uri.hasParam( QStringLiteral( "sslTrustStore" ) ) )
connectionItems << "sslTrustStore='" + uri.param( QStringLiteral( "sslTrustStore" ) ) + '\'';
}

return connectionItems.join( QStringLiteral( " " ) );
}
Expand Down

0 comments on commit cccd30b

Please sign in to comment.