Opened 17 years ago

Closed 17 years ago

#110 closed defect (fixed)

Invalid URL Encoding in WMS Provider

Reported by: gregboone Owned by: gregboone
Priority: major Milestone: 3.3.0
Component: WMS Provider Version: 3.3.0
Severity: 1 Keywords: WMS WFS OWS
Cc: External ID:

Description (last modified by gregboone)

Doesn't Work (FDO Output):

http://demo.ermapper.com/ecwp/ecw_wms.dll?skdemo?&version=1%2E1%2E1&service=WMS&REQUEST=GetMap&LAYERS=ERIC%5FCLIP&STYLES=&CRS=EPSG%3A26913&SRS=EPSG%3A26913&FORMAT=image%2Fpng&BBOX=318504%2E021168%2C5405015%2E092878%2C556941%2E817003%2C5788873%2E742216&HEIGHT=586&WIDTH=364&TRANSPARENT=TRUE&BGCOLOR=0xFFFFFF%20HTTP/1.1

Works (Remove URL encoding)

http://demo.ermapper.com/ecwp/ecw_wms.dll?skdemo?&version=1.1.1&service=WMS&REQUEST=GetMap&LAYERS=ERIC_CLIP &STYLES=&CRS=EPSG:26913&SRS=EPSG:26913&FORMAT=image/png &BBOX=318504.021168,5405015.092878,556941.817003,5788873.742216 &HEIGHT=586&WIDTH=364&TRANSPARENT=TRUE&BGCOLOR=0xFFFFFF

WMS 1.1.1 Spec

6.2.1 Reserved characters in HTTP GET URLs The URL specification [IETF RFC 2396] reserves particular characters as significant and requires that these be escaped when they might conflict with their defined usage. The present WMS specification explicitly reserves several of these characters for use in the query portion of HTTP GET requests. When the characters "?", "&", "=", "/", ":" and "," appear in one of the roles defined in Table 1, they are to appear literally in the URL. When such characters appear elsewhere (for example, in the value of a parameter), they are to be encoded as defined in [IETF RFC 2396].

Table 1 Reserved Characters in HTTP GET Query Character...Reserved Usage ? Separator indicating start of query string. & Separator between parameters in query string.

Separator between name and value of parameter.

/ Separator between MIME type and subtype in format parameter value. : Separator between Namespace and Identifier in SRS parameter value. , Separator between individual values in list-oriented parameters.

Alternative (per WMS spec - does not work - handcrafted)

http://demo.ermapper.com/ecwp/ecw_wms.dll?skdemo?&version=1%2E1%2E1&service=WMS&REQUEST=GetMap&LAYERS=ERIC%5FCLIP&STYLES=&CRS=EPSG%3A26913&SRS=EPSG:26913&FORMAT=image/png&BBOX=318504%2E021168,5405015%2E092878,556941%2E817003,5788873%2E742216&HEIGHT=586&WIDTH=364&TRANSPARENT=TRUE&BGCOLOR=0xFFFFFF%20HTTP/1.1

Alternative (works - found by changing encoding by hand one character at a time)

http://demo.ermapper.com/ecwp/ecw_wms.dll?skdemo?&version=1.1.1&service=WMS&REQUEST=GetMap&LAYERS=ERIC%5FCLIP&STYLES=&CRS=EPSG%3A26913&SRS=EPSG:26913&FORMAT=image/png &BBOX=318504.021168,5405015.092878,556941.817003,5788873.742216 &HEIGHT=586&WIDTH=364&TRANSPARENT=TRUE&BGCOLOR=0xFFFFFF%20HTTP/1.1

Possible Conclusions:

ERMapper does not accept input "version=1%2E1%2E1"2E for "version=1.1.1" as specified in WMS 1.1.1 (section 6.2.1)

ERMapper does not seem to accept "%2E" as "." as specified in WMS 1.1.1 (section 6.2.1)

FDO outputs "SRS=EPSG%3A26913" instead of "SRS=EPSG:26913" as specified in WMS 1.1.1 (section 6.2.1)

FDO outputs "BOX=318504%2E021168%2C5405015%2E092878%2C556941%2E817003%2C5788873%2E742216" instead of "BBOX=318504%2E021168,5405015%2E092878,556941%2E817003,5788873%2E742216" as specified in WMS 1.1.1 (section 6.2.1)

It appears that there is confusion about whether "." is a reserved character...it is not according to IETF RFC 2396

Change History (6)

comment:1 by gregboone, 17 years ago

Description: modified (diff)

comment:2 by gregboone, 17 years ago

Component: FDO APIWMS Provider
Keywords: WMS WFS OWS added
Severity: 31
Version: 3.2.03.3.0

comment:3 by gregboone, 17 years ago

Owner: changed from gregboone to klainqin

comment:4 by gregboone, 17 years ago

Owner: changed from klainqin to gregboone

comment:5 by gregboone, 17 years ago

Status: newassigned

comment:6 by gregboone, 17 years ago

Resolution: fixed
Status: assignedclosed
Note: See TracTickets for help on using tickets.