Skip to content

Commit 9f96b8f

Browse files
committed
Add provider ID as header for QFC to rely on
1 parent 2f6cd2e commit 9f96b8f

File tree

1 file changed

+11
-0
lines changed

1 file changed

+11
-0
lines changed

src/core/qfieldcloudconnection.cpp

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -576,9 +576,11 @@ void QFieldCloudConnection::setAuthenticationDetails( QNetworkRequest &request )
576576

577577
if ( !mProvider.isEmpty() )
578578
{
579+
QString providerId;
579580
if ( mProviderConfigId.isEmpty() && mAvailableProviders.contains( mProvider ) )
580581
{
581582
const QVariantMap providerDetails = mAvailableProviders[mProvider].details();
583+
providerId = providerDetails.value( "id" ).toString();
582584

583585
QVariantMap configMap;
584586
configMap["accessMethod"] = 0;
@@ -604,14 +606,23 @@ void QFieldCloudConnection::setAuthenticationDetails( QNetworkRequest &request )
604606
config.setName( "qfieldcloud-sso" );
605607
config.setMethod( "OAuth2" );
606608
config.setConfig( "oauth2config", json.toJson() );
609+
config.setConfig( "qfieldcloud-sso-id", providerId );
607610
QgsApplication::instance()->authManager()->storeAuthenticationConfig( config, true );
608611

609612
mProviderConfigId = config.id();
610613
QSettings().setValue( QStringLiteral( "/QFieldCloud/providerConfigId" ), mProviderConfigId );
611614
emit providerConfigurationChanged();
612615
}
616+
else
617+
{
618+
QgsAuthMethodConfig config;
619+
QgsApplication::instance()->authManager()->loadAuthenticationConfig( mProviderConfigId, config, true );
620+
providerId = config.config( "qfieldcloud-sso-id" );
621+
}
613622

614623
QgsApplication::instance()->authManager()->updateNetworkRequest( request, mProviderConfigId );
624+
request.setRawHeader( "X-QFC-IDP-ID", providerId.toLatin1() );
625+
615626
const QList<QNetworkCookie> cookies = QgsNetworkAccessManager::instance()->cookieJar()->cookiesForUrl( mUrl );
616627
for ( const QNetworkCookie &cookie : cookies )
617628
{

0 commit comments

Comments
 (0)