I can confirm there are definitely a bunch of services out there where
the REST keys are case sensitive. Unfortunately I can't check and see
what the guilty software is right now.
On 17/01/2020 08:40, Andrea Aime wrote:
Hi Jody,
thinking out loud, the OWS spec (that WMTS is based on) states that keys
are case insensitive.
So the Mapbox server is broken, but I see no need to uppercase the keys in
the GeoTools code,
just let them be whatever they are?
Cheers
Andrea
On Fri, Jan 17, 2020 at 5:45 AM Jody Garnett <jody.garn...@gmail.com> wrote:
I am not aware of anyone working on this issue...
Having a look myself (the geotools library is used for this interaction):
AbstractRequest has the following
<https://github.com/geotools/geotools/blob/master/modules/library/main/src/main/java/org/geotools/data/ows/AbstractRequest.java#L155>
:
String value = (String) entry.getValue();
/*
* Some servers do not follow the rule that parameter names
* must be case insensitive. We will let each specification
* implementation deal with it in their own way.
*/
String param = processKey((String) entry.getKey());
So some allowance has been made to be case insensitive or not...
WMTSSpecification GetCapsRequest has this implemented
<https://github.com/geotools/geotools/blob/master/modules/extension/wmts/src/main/java/org/geotools/ows/wmts/WMTSSpecification.java#L132>
as:
@Override
protected String processKey(String key) {
return WMTSSpecification.processKey(key);
}
WMTSSepcification forces everything uppercase
<https://github.com/geotools/geotools/blob/master/modules/extension/wmts/src/main/java/org/geotools/ows/wmts/WMTSSpecification.java#L147>
:
public static String processKey(String key) {
return key.trim().toUpperCase();
}
So a minimal change would be to WMTS GetCapsRequest above:
final Set<String> SPECIFICATION_PARAMETERS.containsKey;
{
Set<String> official = new HashSet<String>();
official.add("SERVICE");
official.add("VERSION");
official.add("REQUEST");
...
SPECIFICATION_PARAMETERS = Collections. unmodifiableSet(official);
}
protected String processKey(String key) {
String key = key.trim();
if( SPECIFICATION_PARAMETERS.containsKey(key.toUpperCase()){
return WMTSSpecification.processKey(key);
}
else {
return key;
}
}
Do you want to collect the official list of parameters for above code
snippet and we can try for a fix?
On Thu, Jan 16, 2020 at 9:55 AM Alexander Rey <alexander....@queensu.ca>
wrote:
Hi,
I was wondering if there’s been any movement on this issues since this
was last raised. Mapbox is a really useful source of maps and provides a
WMTS interface that could be cascaded, but since GeoServer forces the key
name “access_key” to be uppercase, it fails the Mapbox api authentication.
This doesn’t seem to be a very widespread issue, but has been raised
elsewhere (
https://gis.stackexchange.com/questions/326612/auth-error-cascading-mapbox-wmts-with-geoserver).
It also poses an issue when authenticating using the MapTiler service.
I’m not sure how feasible a fix for this would be, but since the previous
thread indicated it was possible, I thought I would follow up.
Thanks,
Alexander
PhD. Candidate, Water Resources Engineering
Department of Civil Engineering, Queen’s University
Kingston ON, Canada K7L 3N6
Phone: 519-755-1728
Email: alexander....@queensu.ca
_______________________________________________
Geoserver-users mailing list
Please make sure you read the following two resources before posting to
this list:
- Earning your support instead of buying it, but Ian Turton:
http://www.ianturton.com/talks/foss4g.html#/
- The GeoServer user list posting guidelines:
http://geoserver.org/comm/userlist-guidelines.html
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
_______________________________________________
Geoserver-users mailing list
Please make sure you read the following two resources before posting to
this list:
- Earning your support instead of buying it, but Ian Turton:
http://www.ianturton.com/talks/foss4g.html#/
- The GeoServer user list posting guidelines:
http://geoserver.org/comm/userlist-guidelines.html
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
_______________________________________________
Geoserver-users mailing list
Please make sure you read the following two resources before posting to this
list:
- Earning your support instead of buying it, but Ian Turton:
http://www.ianturton.com/talks/foss4g.html#/
- The GeoServer user list posting guidelines:
http://geoserver.org/comm/userlist-guidelines.html
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
_______________________________________________
Geoserver-users mailing list
Please make sure you read the following two resources before posting to this
list:
- Earning your support instead of buying it, but Ian Turton:
http://www.ianturton.com/talks/foss4g.html#/
- The GeoServer user list posting guidelines:
http://geoserver.org/comm/userlist-guidelines.html
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