mirror of
https://github.com/qgis/QGIS.git
synced 2025-03-01 00:46:20 -05:00
[auth] Added mutex to protect cache for basic auth
This commit is contained in:
parent
a4a33dff75
commit
d76b04a975
@ -21,6 +21,7 @@
|
||||
#include "qgslogger.h"
|
||||
|
||||
#include <QNetworkProxy>
|
||||
#include <QMutexLocker>
|
||||
|
||||
static const QString AUTH_METHOD_KEY = QStringLiteral( "Basic" );
|
||||
static const QString AUTH_METHOD_DESCRIPTION = QStringLiteral( "Basic authentication" );
|
||||
@ -169,6 +170,7 @@ void QgsAuthBasicMethod::clearCachedConfig( const QString &authcfg )
|
||||
|
||||
QgsAuthMethodConfig QgsAuthBasicMethod::getMethodConfig( const QString &authcfg, bool fullconfig )
|
||||
{
|
||||
QMutexLocker locker( &mConfigMutex );
|
||||
QgsAuthMethodConfig mconfig;
|
||||
|
||||
// check if it is cached
|
||||
@ -187,6 +189,7 @@ QgsAuthMethodConfig QgsAuthBasicMethod::getMethodConfig( const QString &authcfg,
|
||||
}
|
||||
|
||||
// cache bundle
|
||||
locker.unlock();
|
||||
putMethodConfig( authcfg, mconfig );
|
||||
|
||||
return mconfig;
|
||||
@ -194,12 +197,14 @@ QgsAuthMethodConfig QgsAuthBasicMethod::getMethodConfig( const QString &authcfg,
|
||||
|
||||
void QgsAuthBasicMethod::putMethodConfig( const QString &authcfg, const QgsAuthMethodConfig &mconfig )
|
||||
{
|
||||
QMutexLocker locker( &mConfigMutex );
|
||||
QgsDebugMsg( QString( "Putting basic config for authcfg: %1" ).arg( authcfg ) );
|
||||
sAuthConfigCache.insert( authcfg, mconfig );
|
||||
}
|
||||
|
||||
void QgsAuthBasicMethod::removeMethodConfig( const QString &authcfg )
|
||||
{
|
||||
QMutexLocker locker( &mConfigMutex );
|
||||
if ( sAuthConfigCache.contains( authcfg ) )
|
||||
{
|
||||
sAuthConfigCache.remove( authcfg );
|
||||
|
@ -18,6 +18,7 @@
|
||||
#define QGSAUTHBASICMETHOD_H
|
||||
|
||||
#include <QObject>
|
||||
#include <QMutex>
|
||||
|
||||
#include "qgsauthconfig.h"
|
||||
#include "qgsauthmethod.h"
|
||||
@ -61,6 +62,8 @@ class QgsAuthBasicMethod : public QgsAuthMethod
|
||||
QString escapeUserPass( const QString &val, QChar delim = '\'' ) const;
|
||||
|
||||
static QMap<QString, QgsAuthMethodConfig> sAuthConfigCache;
|
||||
|
||||
QMutex mConfigMutex;
|
||||
};
|
||||
|
||||
#endif // QGSAUTHBASICMETHOD_H
|
||||
|
Loading…
x
Reference in New Issue
Block a user