21
21
#include " qgsfcgiserverrequest.h"
22
22
#include " qgsserverlogger.h"
23
23
#include " qgsmessagelog.h"
24
+ #include " qgsstringutils.h"
24
25
#include < fcgi_stdio.h>
25
26
#include < QDebug>
26
27
@@ -107,27 +108,13 @@ QgsFcgiServerRequest::QgsFcgiServerRequest()
107
108
setMethod ( method );
108
109
109
110
// Fill the headers dictionary
110
- const QStringList headers
111
+ for ( const auto &headerKey : qgsEnumMap<QgsServerRequest::RequestHeader>(). values () )
111
112
{
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 )
127
- {
128
- const char *result = qgetenv ( QStringLiteral ( " HTTP_%1" ).arg (
129
- headerName.toUpper ().replace ( QLatin1Char ( ' -' ), QLatin1Char ( ' _' ) ) ).toStdString ().c_str () );
130
- if ( result )
113
+ const QString headerName = QgsStringUtils::capitalize (
114
+ QString ( headerKey ).replace ( QLatin1Char ( ' _' ), QLatin1Char ( ' ' ) ), Qgis::Capitalization::TitleCase
115
+ ).replace ( QLatin1Char ( ' ' ), QLatin1Char ( ' -' ) );
116
+ const char *result = getenv ( QStringLiteral ( " HTTP_%1" ).arg ( headerKey ).toStdString ().c_str () );
117
+ if ( result && strlen ( result ) > 0 )
131
118
{
132
119
setHeader ( headerName, result );
133
120
}
@@ -243,6 +230,7 @@ void QgsFcgiServerRequest::printRequestInfos( const QUrl &url )
243
230
QStringLiteral ( " CONTENT_TYPE" ),
244
231
QStringLiteral ( " REQUEST_METHOD" ),
245
232
QStringLiteral ( " AUTH_TYPE" ),
233
+ QStringLiteral ( " HTTP_PROXY" ),
246
234
QStringLiteral ( " NO_PROXY" ),
247
235
QStringLiteral ( " QGIS_PROJECT_FILE" ),
248
236
QStringLiteral ( " QGIS_SERVER_IGNORE_BAD_LAYERS" ),
@@ -268,7 +256,6 @@ void QgsFcgiServerRequest::printRequestInfos( const QUrl &url )
268
256
269
257
QgsMessageLog::logMessage ( QStringLiteral ( " Headers:" ), QStringLiteral ( " Server" ), Qgis::MessageLevel::Info );
270
258
QgsMessageLog::logMessage ( QStringLiteral ( " ------------------------------------------------" ), QStringLiteral ( " Server" ), Qgis::MessageLevel::Info );
271
-
272
259
for ( const auto &headerName : headers ().keys () )
273
260
{
274
261
QgsMessageLog::logMessage ( QStringLiteral ( " %1: %2" ).arg ( headerName ).arg ( headers ().value ( headerName ) ), QStringLiteral ( " Server" ), Qgis::MessageLevel::Info );
0 commit comments