Issue with special characters in uri square brackets [ ] in url query parameter

book

Article ID: 206890

calendar_today

Updated On:

Products

CA API Gateway

Issue/Introduction

On version 10 API gateway. After upgrade  we have encountered into an issue , one of our client using '[]' in his query while making request to gateway was not able to get response back from gateway. We are getting Http 400 error.  We dont see messages in the logs for this request.

But for same request if we replace '[]' with the encoded value %5B and %5D it start working or even if we remove brackets([]) from the request it works.

On earlier version v9.4 the same query was working fine. But after the upgrade client is facing this issue.

Sample url query ?query=last-modified:[2021-01-1400:12:15]&start=0&num=100

 

Environment

Release : 10.0

Component : API GATEWAY

Resolution

This is a apache/tomcat issue, which underlying the gatweay.

Chars:

< > [ \ ] ^ ` { | }

The HTTP/1.1 specification requires that certain characters are %nn encoded when used in URI query strings. Unfortunately, many user agents including all the major browsers are not compliant with this specification and use these characters in unencoded form.



I was able to resolve this by going to my listen port in policy manager
*** NOTE YOU CANNOT MODIFY THE PORT YOU CONNECT TO, So if you want 8443 to work you have to connect to 9443 and modify 8443.

So by manage listen ports, choose my port 8443,

Go to the advanced tab,

Add,

Property Name: relaxedQueryChars

Value []

Then restart ssg and I can use the chars in a query.

This is documented on the tomcat pages at,

https://tomcat.apache.org/tomcat-8.5-doc/config/http.html