Consider also to send a bug report to MapBox. In OGC standards the keys in 
key/value pairs are defined to be case insensitive and values case sensitive. I 
suppose that is applies alto to vendor options. And I do not see any value for 
MapBox to accept only “access_key” but not “ACCESS_KEY”.

-Jukka Rahkonen-

Lähettäjä: Jody Garnett <jody.garn...@gmail.com>
Lähetetty: perjantai 17. tammikuuta 2020 6.35
Vastaanottaja: Alexander Rey <alexander....@queensu.ca>
Kopio: geoserver-users@lists.sourceforge.net
Aihe: Re: [Geoserver-users] Trying to connect to a remote WMS that insists on 
lower case parameter names

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<mailto: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<mailto: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<mailto: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

Reply via email to