[Geoserver-users] Automatic Uppercase of WMTS Query Parameters

Hello,

I have encountered an issue relating to the automatic uppercasing of WMTS query parameters in WMTS stores.

I am using Geoserver 2.12.0 in docker on Linux.

The problem is that some WMTS services are case sensitive to the query parameters, the case in point being MapBox WMTS (https://docs.mapbox.com/help/tutorials/mapbox-arcgis-qgis/).

If I go to the following URL with a valid access token I can see a GetCapabilities XML page: https://api.mapbox.com/styles/v1/mapbox/streets-v11/wmts?access_token=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx. However, if I go to the same page with an uppercase ACCESS_TOKEN query parameter it returns a 401 unauthorised error.

When I enter the valid URL in a Geoserver WMTS store Capabilities URL field and save the store I get an error saying:

Server returned HTTP error code 401 for URL https://api.mapbox.com/styles/v1/mapbox/streets-v11/wmts?REQUEST=GetCapabilities&ACCESS_TOKEN=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&VERSION=1.0.0&SERVICE=WMTS

Notice that the URL has a few extra query parameters and the access_token parameter is now uppercase.

Is there a reason the existing query parameters in the WMTS GetCapabillities URL are converted to uppercase? Given that it appears that this behaviour is disallowing users to create stores from MapBox WMTS URLs, should this be classified as a bug?

Cheers,

Ben Kleywegt

I’m not 100% clear on what you are trying to do, but it looks like you are possibly trying WMTS cascading. That is, you are trying to use GeoServer as a WMTS client.

If that is the case, you are probably hitting https://osgeo-org.atlassian.net/browse/GEOT-5999

That was fixed more than two years ago in https://github.com/geotools/geotools/pull/1873

It is probably a good idea to upgrade in any case – 2.12.0 is well out of support.

Brad

From: Ben Kleywegt ben@anonymised.com
Sent: Wednesday, 29 July 2020 10:13 AM
To: geoserver-users@lists.sourceforge.net
Subject: [Geoserver-users] Automatic Uppercase of WMTS Query Parameters

Hello,

I have encountered an issue relating to the automatic uppercasing of WMTS query parameters in WMTS stores.

I am using Geoserver 2.12.0 in docker on Linux.

The problem is that some WMTS services are case sensitive to the query parameters, the case in point being MapBox WMTS (https://docs.mapbox.com/help/tutorials/mapbox-arcgis-qgis/).

If I go to the following URL with a valid access token I can see a GetCapabilities XML page: https://api.mapbox.com/styles/v1/mapbox/streets-v11/wmts?access_token=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx. However, if I go to the same page with an uppercase ACCESS_TOKEN query parameter it returns a 401 unauthorised error.

When I enter the valid URL in a Geoserver WMTS store Capabilities URL field and save the store I get an error saying:

Server returned HTTP error code 401 for URL https://api.mapbox.com/styles/v1/mapbox/streets-v11/wmts?REQUEST=GetCapabilities&ACCESS_TOKEN=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&VERSION=1.0.0&SERVICE=WMTS

Notice that the URL has a few extra query parameters and the access_token parameter is now uppercase.

Is there a reason the existing query parameters in the WMTS GetCapabillities URL are converted to uppercase? Given that it appears that this behaviour is disallowing users to create stores from MapBox WMTS URLs, should this be classified as a bug?

Cheers,

Ben Kleywegt

Thanks for your response Brad.

My apologies as I was too brief in my original email. We first experienced the issue on version 2.12.0 but we upgraded to 2.17.0 and continued to experience the problem.

You are correct, we are trying to use GeoServer as a WMTS client. We want to make a request to Geoserver for a vector layer with a WMTS basemap background. The reason we are not using something like Leaflet for this is that we don’t want an interactive map, but a static image for use in a HTML/PDF report, based on a bounding box of the vector layer.

···

Cheers

Ben

From: Brad Hards bradh@anonymised.com
Sent: Wednesday, 29 July 2020 2:52 PM
To: Ben Kleywegt ben@anonymised.com; geoserver-users@anonymised.comceforge.net
Subject: RE: [Geoserver-users] Automatic Uppercase of WMTS Query Parameters

I’m not 100% clear on what you are trying to do, but it looks like you are possibly trying WMTS cascading. That is, you are trying to use GeoServer as a WMTS client.

If that is the case, you are probably hitting https://osgeo-org.atlassian.net/browse/GEOT-5999

That was fixed more than two years ago in https://github.com/geotools/geotools/pull/1873

It is probably a good idea to upgrade in any case – 2.12.0 is well out of support.

Brad

From: Ben Kleywegt <ben@anonymised.com.>
Sent: Wednesday, 29 July 2020 10:13 AM
To: geoserver-users@lists.sourceforge.net
Subject: [Geoserver-users] Automatic Uppercase of WMTS Query Parameters

Hello,

I have encountered an issue relating to the automatic uppercasing of WMTS query parameters in WMTS stores.

I am using Geoserver 2.12.0 in docker on Linux.

The problem is that some WMTS services are case sensitive to the query parameters, the case in point being MapBox WMTS (https://docs.mapbox.com/help/tutorials/mapbox-arcgis-qgis/).

If I go to the following URL with a valid access token I can see a GetCapabilities XML page: https://api.mapbox.com/styles/v1/mapbox/streets-v11/wmts?access_token=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx. However, if I go to the same page with an uppercase ACCESS_TOKEN query parameter it returns a 401 unauthorised error.

When I enter the valid URL in a Geoserver WMTS store Capabilities URL field and save the store I get an error saying:

Server returned HTTP error code 401 for URL https://api.mapbox.com/styles/v1/mapbox/streets-v11/wmts?REQUEST=GetCapabilities&ACCESS_TOKEN=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&VERSION=1.0.0&SERVICE=WMTS

Notice that the URL has a few extra query parameters and the access_token parameter is now uppercase.

Is there a reason the existing query parameters in the WMTS GetCapabillities URL are converted to uppercase? Given that it appears that this behaviour is disallowing users to create stores from MapBox WMTS URLs, should this be classified as a bug?

Cheers,

Ben Kleywegt

I don’t think that bug does relate to this - but the WMTS standard (like other OGC standards) mandates case insensitivity for keys in KVP requests, so to make life easy we uppercase them all when storing them (this makes finding duplicates and later lookups more efficient). So I would raise a bug with MapBox.

You could add a patch to the GeoTools code to only uppercase “well known” parameter keys but I suspect that would break things down the chain with cascading too.

Ian

···

Ian Turton

Thanks Ian,

I suspected something like this might be the case. Thanks, I believe you have answered my question and the behaviour is not a bug with Geoserver.

Cheers,

Ben Kleywegt

···

From: Ian Turton <ijturton@…84…>
Sent: Wednesday, 29 July 2020 5:37 PM
To: Brad Hards <bradh@…7296…>
Cc: Ben Kleywegt <ben@…10485…>; geoserver-users geoserver-users@lists.sourceforge.net
Subject: Re: [Geoserver-users] Automatic Uppercase of WMTS Query Parameters

I don’t think that bug does relate to this - but the WMTS standard (like other OGC standards) mandates case insensitivity for keys in KVP requests, so to make life easy we uppercase them all when storing them (this makes finding duplicates and later lookups more efficient). So I would raise a bug with MapBox.

You could add a patch to the GeoTools code to only uppercase “well known” parameter keys but I suspect that would break things down the chain with cascading too.

Ian

On Wed, 29 Jul 2020 at 05:55, Brad Hards <bradh@…7296…> wrote:

I’m not 100% clear on what you are trying to do, but it looks like you are possibly trying WMTS cascading. That is, you are trying to use GeoServer as a WMTS client.

If that is the case, you are probably hitting https://osgeo-org.atlassian.net/browse/GEOT-5999

That was fixed more than two years ago in https://github.com/geotools/geotools/pull/1873

It is probably a good idea to upgrade in any case – 2.12.0 is well out of support.

Brad

From: Ben Kleywegt <ben@…10485…>
Sent: Wednesday, 29 July 2020 10:13 AM
To: geoserver-users@lists.sourceforge.net
Subject: [Geoserver-users] Automatic Uppercase of WMTS Query Parameters

Hello,

I have encountered an issue relating to the automatic uppercasing of WMTS query parameters in WMTS stores.

I am using Geoserver 2.12.0 in docker on Linux.

The problem is that some WMTS services are case sensitive to the query parameters, the case in point being MapBox WMTS (https://docs.mapbox.com/help/tutorials/mapbox-arcgis-qgis/).

If I go to the following URL with a valid access token I can see a GetCapabilities XML page: https://api.mapbox.com/styles/v1/mapbox/streets-v11/wmts?access_token=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx. However, if I go to the same page with an uppercase ACCESS_TOKEN query parameter it returns a 401 unauthorised error.

When I enter the valid URL in a Geoserver WMTS store Capabilities URL field and save the store I get an error saying:

Server returned HTTP error code 401 for URL https://api.mapbox.com/styles/v1/mapbox/streets-v11/wmts?REQUEST=GetCapabilities&ACCESS_TOKEN=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&VERSION=1.0.0&SERVICE=WMTS

Notice that the URL has a few extra query parameters and the access_token parameter is now uppercase.

Is there a reason the existing query parameters in the WMTS GetCapabillities URL are converted to uppercase? Given that it appears that this behaviour is disallowing users to create stores from MapBox WMTS URLs, should this be classified as a bug?

Cheers,

Ben Kleywegt


Geoserver-users mailing list

Please make sure you read the following two resources before posting to this list:

If you want to request a feature or an improvement, also see this: https://github.com/geoserver/geoserver/wiki/Successfully-requesting-and-integrating-new-features-and-improvements-in-GeoServer

Geoserver-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-users

Ian Turton