|
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 |
|
@@ -106,11 +107,17 @@ QgsFcgiServerRequest::QgsFcgiServerRequest()
|
106 | 107 | setUrl( url );
|
107 | 108 | setMethod( method );
|
108 | 109 |
|
109 |
| - // Get accept header for content-type negotiation |
110 |
| - const char *accept = getenv( "HTTP_ACCEPT" ); |
111 |
| - if ( accept ) |
| 110 | + // Fill the headers dictionary |
| 111 | + for ( const auto &headerKey : qgsEnumMap<QgsServerRequest::RequestHeader>().values() ) |
112 | 112 | {
|
113 |
| - setHeader( QStringLiteral( "Accept" ), accept ); |
| 113 | + const QString headerName = QgsStringUtils::capitalize( |
| 114 | + QString( headerKey ).replace( QLatin1Char( '_' ), QLatin1Char( ' ' ) ), QgsStringUtils::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 ) |
| 118 | + { |
| 119 | + setHeader( headerName, result ); |
| 120 | + } |
114 | 121 | }
|
115 | 122 |
|
116 | 123 | // Output debug infos
|
@@ -223,41 +230,36 @@ void QgsFcgiServerRequest::printRequestInfos( const QUrl &url )
|
223 | 230 | QStringLiteral( "CONTENT_TYPE" ),
|
224 | 231 | QStringLiteral( "REQUEST_METHOD" ),
|
225 | 232 | QStringLiteral( "AUTH_TYPE" ),
|
226 |
| - QStringLiteral( "HTTP_ACCEPT" ), |
227 |
| - QStringLiteral( "HTTP_USER_AGENT" ), |
228 | 233 | QStringLiteral( "HTTP_PROXY" ),
|
229 | 234 | QStringLiteral( "NO_PROXY" ),
|
230 |
| - QStringLiteral( "HTTP_AUTHORIZATION" ), |
231 | 235 | QStringLiteral( "QGIS_PROJECT_FILE" ),
|
232 | 236 | QStringLiteral( "QGIS_SERVER_IGNORE_BAD_LAYERS" ),
|
233 | 237 | QStringLiteral( "QGIS_SERVER_SERVICE_URL" ),
|
234 | 238 | QStringLiteral( "QGIS_SERVER_WMS_SERVICE_URL" ),
|
235 | 239 | QStringLiteral( "QGIS_SERVER_WFS_SERVICE_URL" ),
|
236 | 240 | QStringLiteral( "QGIS_SERVER_WMTS_SERVICE_URL" ),
|
237 | 241 | QStringLiteral( "QGIS_SERVER_WCS_SERVICE_URL" ),
|
238 |
| - QStringLiteral( "HTTP_X_QGIS_SERVICE_URL" ), |
239 |
| - QStringLiteral( "HTTP_X_QGIS_WMS_SERVICE_URL" ), |
240 |
| - QStringLiteral( "HTTP_X_QGIS_WFS_SERVICE_URL" ), |
241 |
| - QStringLiteral( "HTTP_X_QGIS_WCS_SERVICE_URL" ), |
242 |
| - QStringLiteral( "HTTP_X_QGIS_WMTS_SERVICE_URL" ), |
243 |
| - QStringLiteral( "HTTP_FORWARDED" ), |
244 |
| - QStringLiteral( "HTTP_X_FORWARDED_HOST" ), |
245 |
| - QStringLiteral( "HTTP_X_FORWARDED_PROTO" ), |
246 |
| - QStringLiteral( "HTTP_HOST" ), |
247 | 242 | QStringLiteral( "SERVER_PROTOCOL" )
|
248 | 243 | };
|
249 | 244 |
|
250 | 245 | QgsMessageLog::logMessage( QStringLiteral( "Request URL: %2" ).arg( url.url() ), QStringLiteral( "Server" ), Qgis::MessageLevel::Info );
|
| 246 | + |
251 | 247 | QgsMessageLog::logMessage( QStringLiteral( "Environment:" ), QStringLiteral( "Server" ), Qgis::MessageLevel::Info );
|
252 | 248 | QgsMessageLog::logMessage( QStringLiteral( "------------------------------------------------" ), QStringLiteral( "Server" ), Qgis::MessageLevel::Info );
|
253 |
| - |
254 | 249 | for ( const auto &envVar : envVars )
|
255 | 250 | {
|
256 | 251 | if ( getenv( envVar.toStdString().c_str() ) )
|
257 | 252 | {
|
258 | 253 | QgsMessageLog::logMessage( QStringLiteral( "%1: %2" ).arg( envVar ).arg( QString( getenv( envVar.toStdString().c_str() ) ) ), QStringLiteral( "Server" ), Qgis::MessageLevel::Info );
|
259 | 254 | }
|
260 | 255 | }
|
| 256 | + |
| 257 | + qDebug() << "Headers:"; |
| 258 | + qDebug() << "------------------------------------------------"; |
| 259 | + for ( const auto &headerName : headers().keys() ) |
| 260 | + { |
| 261 | + qDebug() << headerName << ": " << headers().value( headerName ); |
| 262 | + } |
261 | 263 | }
|
262 | 264 |
|
263 | 265 | QString QgsFcgiServerRequest::header( const QString &name ) const
|
|
0 commit comments