@@ -82,6 +82,8 @@ QgsWmsProvider::QgsWmsProvider( QString const &uri )
82
82
, mCacheHits( 0 )
83
83
, mCacheMisses( 0 )
84
84
, mErrors( 0 )
85
+ , mUserName( QString::null )
86
+ , mPassword( QString::null )
85
87
{
86
88
// URL may contain username/password information for a WMS
87
89
// requiring authentication. In this case the URL is prefixed
@@ -113,8 +115,6 @@ void QgsWmsProvider::parseUri( QString uri )
113
115
// Strip off and store the user name and password (if they exist)
114
116
if ( !uri.startsWith ( " http:" ) )
115
117
{
116
- mUserName = " " ;
117
- mPassword = " " ;
118
118
mTiled = false ;
119
119
mTileWidth = 0 ;
120
120
mTileHeight = 0 ;
@@ -176,7 +176,6 @@ void QgsWmsProvider::parseUri( QString uri )
176
176
}
177
177
}
178
178
}
179
-
180
179
}
181
180
}
182
181
@@ -520,6 +519,7 @@ QImage *QgsWmsProvider::draw( QgsRectangle const &viewExtent, int pixelWidth, i
520
519
521
520
QgsDebugMsg ( QString ( " getmap: %1" ).arg ( url ) );
522
521
QNetworkRequest request ( url );
522
+ setAuthorization ( request );
523
523
request.setAttribute ( QNetworkRequest::CacheSaveControlAttribute, true );
524
524
cacheReply = QgsNetworkAccessManager::instance ()->get ( request );
525
525
connect ( cacheReply, SIGNAL ( finished () ), this , SLOT ( cacheReplyFinished () ) );
@@ -638,6 +638,7 @@ QImage *QgsWmsProvider::draw( QgsRectangle const &viewExtent, int pixelWidth, i
638
638
turl += urlargs;
639
639
640
640
QNetworkRequest request ( turl );
641
+ setAuthorization ( request );
641
642
QgsDebugMsg ( QString ( " tileRequest %1 %2/%3: %4" ).arg ( mTileReqNo ).arg ( i++ ).arg ( n ).arg ( turl ) );
642
643
request.setAttribute ( QNetworkRequest::CacheLoadControlAttribute, QNetworkRequest::PreferCache );
643
644
request.setAttribute ( QNetworkRequest::CacheSaveControlAttribute, true );
@@ -711,6 +712,7 @@ void QgsWmsProvider::tileReplyFinished()
711
712
if ( !redirect.isNull () )
712
713
{
713
714
QNetworkRequest request ( redirect.toUrl () );
715
+ setAuthorization ( request );
714
716
request.setAttribute ( QNetworkRequest::CacheLoadControlAttribute, QNetworkRequest::PreferCache );
715
717
request.setAttribute ( QNetworkRequest::CacheSaveControlAttribute, true );
716
718
request.setAttribute ( static_cast <QNetworkRequest::Attribute>( QNetworkRequest::User + 0 ), tileReqNo );
@@ -859,6 +861,7 @@ bool QgsWmsProvider::retrieveServerCapabilities( bool forceRefresh )
859
861
mError = " " ;
860
862
861
863
QNetworkRequest request ( url );
864
+ setAuthorization ( request );
862
865
request.setAttribute ( QNetworkRequest::CacheLoadControlAttribute, QNetworkRequest::PreferNetwork );
863
866
request.setAttribute ( QNetworkRequest::CacheSaveControlAttribute, true );
864
867
@@ -925,6 +928,7 @@ void QgsWmsProvider::capabilitiesReplyFinished()
925
928
emit statusChanged ( tr ( " Capabilities request redirected." ) );
926
929
927
930
QNetworkRequest request ( redirect.toUrl () );
931
+ setAuthorization ( request );
928
932
request.setAttribute ( QNetworkRequest::CacheLoadControlAttribute, QNetworkRequest::PreferNetwork );
929
933
request.setAttribute ( QNetworkRequest::CacheSaveControlAttribute, true );
930
934
@@ -2831,6 +2835,14 @@ void QgsWmsProvider::reloadData()
2831
2835
cachedImage = 0 ;
2832
2836
}
2833
2837
2838
+ void QgsWmsProvider::setAuthorization ( QNetworkRequest &request ) const
2839
+ {
2840
+ if ( !mUserName .isNull () || !mPassword .isNull () )
2841
+ {
2842
+ request.setRawHeader ( " Authorization" , " Basic " + QString ( " %1:%2" ).arg ( mUserName ).arg ( mPassword ).toAscii ().toBase64 () );
2843
+ }
2844
+ }
2845
+
2834
2846
/* *
2835
2847
* Class factory to return a pointer to a newly created
2836
2848
* QgsWmsProvider object
0 commit comments