@@ -106,11 +106,31 @@ QgsFcgiServerRequest::QgsFcgiServerRequest()
106
106
setUrl ( url );
107
107
setMethod ( method );
108
108
109
- // Get accept header for content-type negotiation
110
- const char *accept = getenv ( " HTTP_ACCEPT" );
111
- if ( accept )
109
+ // Fill the headers dictionary
110
+ const QStringList headers
111
+ {
112
+ QStringLiteral ( " Accept" ),
113
+ QStringLiteral ( " User-Agent" ),
114
+ QStringLiteral ( " Proxy" ),
115
+ QStringLiteral ( " Authorization" ),
116
+ QStringLiteral ( " X-Qgis-Service-Url" ),
117
+ QStringLiteral ( " X-Qgis-WMS-Service-Url" ),
118
+ QStringLiteral ( " X-Qgis-WFS-Service-Url" ),
119
+ QStringLiteral ( " X-Qgis-WCS-Service-Url" ),
120
+ QStringLiteral ( " X-Qgis-WMTS-Service-Url" ),
121
+ QStringLiteral ( " Forwarded" ),
122
+ QStringLiteral ( " X-Forwarded-Host" ),
123
+ QStringLiteral ( " X-Forwarded-Proto" ),
124
+ QStringLiteral ( " Host" )
125
+ };
126
+ for ( const auto &headerName : headers )
112
127
{
113
- setHeader ( QStringLiteral ( " Accept" ), accept );
128
+ const char *result = qgetenv ( QStringLiteral ( " HTTP_%1" ).arg (
129
+ headerName.toUpper ().replace ( QLatin1Char ( ' -' ), QLatin1Char ( ' _' ) ) ).toStdString ().c_str () );
130
+ if ( result )
131
+ {
132
+ setHeader ( headerName, result );
133
+ }
114
134
}
115
135
116
136
// Output debug infos
@@ -233,23 +253,6 @@ void QgsFcgiServerRequest::printRequestInfos( const QUrl &url )
233
253
QStringLiteral ( " QGIS_SERVER_WCS_SERVICE_URL" ),
234
254
QStringLiteral ( " SERVER_PROTOCOL" )
235
255
};
236
- const QStringList headers
237
- {
238
- QStringLiteral ( " Accept" ),
239
- QStringLiteral ( " User-Agent" ),
240
- QStringLiteral ( " Proxy" ),
241
- QStringLiteral ( " Authorization" ),
242
- QStringLiteral ( " X-Qgis-Service-Url" ),
243
- QStringLiteral ( " X-Qgis-WMS-Service-Url" ),
244
- QStringLiteral ( " X-Qgis-WFS-Service-Url" ),
245
- QStringLiteral ( " X-Qgis-WCS-Service-Url" ),
246
- QStringLiteral ( " X-Qgis-WMTS-Service-Url" ),
247
- QStringLiteral ( " Forwarded" ),
248
- QStringLiteral ( " X-Forwarded-Host" ),
249
- QStringLiteral ( " X-Forwarded-Proto" ),
250
- QStringLiteral ( " Host" )
251
- };
252
-
253
256
254
257
QgsMessageLog::logMessage ( QStringLiteral ( " Request URL: %2" ).arg ( url.url () ), QStringLiteral ( " Server" ), Qgis::MessageLevel::Info );
255
258
@@ -265,14 +268,10 @@ void QgsFcgiServerRequest::printRequestInfos( const QUrl &url )
265
268
266
269
QgsMessageLog::logMessage ( QStringLiteral ( " Headers:" ), QStringLiteral ( " Server" ), Qgis::MessageLevel::Info );
267
270
QgsMessageLog::logMessage ( QStringLiteral ( " ------------------------------------------------" ), QStringLiteral ( " Server" ), Qgis::MessageLevel::Info );
268
- for ( const auto &headerName : headers )
271
+
272
+ for ( const auto &headerName : headers ().keys () )
269
273
{
270
- if ( !header ( headerName ).isEmpty () )
271
- {
272
- QgsMessageLog::logMessage ( QStringLiteral ( " %1: %2" ).arg ( headerName, header ( headerName ) ), QStringLiteral ( " Server" ), Qgis::MessageLevel::Info );
273
- // Fill the headers dictionary
274
- setHeader ( headerName, header ( headerName ) );
275
- }
274
+ QgsMessageLog::logMessage ( QStringLiteral ( " %1: %2" ).arg ( headerName ).arg ( headers ().value ( headerName ) ), QStringLiteral ( " Server" ), Qgis::MessageLevel::Info );
276
275
}
277
276
}
278
277
0 commit comments