convert query parameters to lowercase before reading them
This commit is contained in:
parent
477c9d3ed5
commit
e3656d04dd
2 changed files with 18 additions and 1 deletions
|
@ -309,6 +309,18 @@ func TestServer_PublishGETOnlyOneTopic(t *testing.T) {
|
||||||
require.Equal(t, 404, response.Code)
|
require.Equal(t, 404, response.Code)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestServer_PublishCaseInsensitiveQueryParam(t *testing.T) {
|
||||||
|
s := newTestServer(t, newTestConfig(t))
|
||||||
|
response := request(t, s, "GET", "/mytopic/publish?MESSAGE=testing", "", nil)
|
||||||
|
require.Equal(t, "testing", toMessage(t, response.Body.String()).Message)
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestServer_PublishInvalidQueryParam(t *testing.T) {
|
||||||
|
s := newTestServer(t, newTestConfig(t))
|
||||||
|
response := request(t, s, "GET", "/mytopic/publish?MESSAGE=testing&fakeParam=test", "", nil)
|
||||||
|
require.Equal(t, "testing", toMessage(t, response.Body.String()).Message)
|
||||||
|
}
|
||||||
|
|
||||||
func TestServer_PublishNoCache(t *testing.T) {
|
func TestServer_PublishNoCache(t *testing.T) {
|
||||||
s := newTestServer(t, newTestConfig(t))
|
s := newTestServer(t, newTestConfig(t))
|
||||||
|
|
||||||
|
|
|
@ -48,8 +48,13 @@ func readHeaderParam(r *http.Request, names ...string) string {
|
||||||
}
|
}
|
||||||
|
|
||||||
func readQueryParam(r *http.Request, names ...string) string {
|
func readQueryParam(r *http.Request, names ...string) string {
|
||||||
|
lowerQueryParams := make(map[string]string, 0)
|
||||||
|
for k, vs := range r.URL.Query() {
|
||||||
|
lowerQueryParams[strings.ToLower(k)] = vs[0]
|
||||||
|
}
|
||||||
|
|
||||||
for _, name := range names {
|
for _, name := range names {
|
||||||
value := r.URL.Query().Get(strings.ToLower(name))
|
value := lowerQueryParams[strings.ToLower(name)]
|
||||||
if value != "" {
|
if value != "" {
|
||||||
return strings.TrimSpace(value)
|
return strings.TrimSpace(value)
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue