Skip to content

Commit

Permalink
Merge pull request #46401 from benoitdm-oslandia/fix_filter_%
Browse files Browse the repository at this point in the history
fix percent encoding in server query parameter
  • Loading branch information
elpaso committed Dec 7, 2021
2 parents a94f9fc + b39b937 commit 2b5128e
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 4 deletions.
2 changes: 1 addition & 1 deletion src/server/qgsserverparameters.cpp
Expand Up @@ -454,7 +454,7 @@ QUrlQuery QgsServerParameters::urlQuery() const
const auto constMap( toMap().toStdMap() );
for ( const auto &param : constMap )
{
const QString value = QString( param.second ).replace( '+', QLatin1String( "%2B" ) );
const QString value = QUrl::toPercentEncoding( QString( param.second ) );
query.addQueryItem( param.first, value );
}
}
Expand Down
11 changes: 8 additions & 3 deletions tests/src/server/wms/test_qgsserver_wms_parameters.cpp
Expand Up @@ -83,14 +83,19 @@ void TestQgsServerWmsParameters::percent_encoding()
// '+' in its encoded ('%2B') form is transformed in '+' sign and
// forwarded to parameters subclasses
QUrlQuery query;
query.addQueryItem( "MYPARAM", QString( "my%1value" ).arg( QLatin1String( "%2B" ) ) );
query.addQueryItem( "MYPARAM", QString( "a%2Cb%2Cc%2C%C3%A4%C3%B6s+%2B+%25%26%23" ) );

QgsServerParameters params;
params.load( query );
QCOMPARE( params.value( "MYPARAM" ), QString( "my+value" ) );
QCOMPARE( params.value( "MYPARAM" ), QString( "a,b,c,äös + %&#" ) );

const QgsWms::QgsWmsParameters wmsParams( params );
QCOMPARE( wmsParams.value( "MYPARAM" ), QString( "my+value" ) );
QCOMPARE( wmsParams.value( "MYPARAM" ), QString( "a,b,c,äös + %&#" ) );

// back to urlQuery
QgsServerParameters params2;
params2.load( params.urlQuery() );
QCOMPARE( params2.value( "MYPARAM" ), QString( "a,b,c,äös + %&#" ) );
}

void TestQgsServerWmsParameters::version_negotiation()
Expand Down

0 comments on commit 2b5128e

Please sign in to comment.