in agent/logging/agent_envoy_management_proxy.go [102:141]
func (envoyHandler *EnvoyLoggingHandler) validateEnableLoggingRequest() bool {
// Verify that the request is a POST
if envoyHandler.request.Method != http.MethodPost {
log.Debugf("Invalid method [%v] in request", envoyHandler.request.Method)
http.Error(*envoyHandler.response,
"Only POST requests are supported", http.StatusBadRequest)
return false
}
// Verify that no message body is present
if envoyHandler.request.ContentLength > 0 {
log.Debugf("Unexpected content in request. Body size [%d]",
envoyHandler.request.ContentLength)
http.Error(*envoyHandler.response, "Invalid request", http.StatusBadRequest)
return false
}
// Verify the parameters supplied
values, err := url.ParseQuery(envoyHandler.request.URL.RawQuery)
if err != nil {
log.Debug("Unable to parse queries in URL")
http.Error(*envoyHandler.response, "Invalid request", http.StatusBadRequest)
return false
}
queryParameterCount := len(values)
log.Debugf("Query Values: %v", values)
if queryParameterCount != 1 || values.Get(QUERY_KEY) == "" {
log.Debugf("Unexpected query parameters specified in request [%v]",
values)
http.Error(*envoyHandler.response, "Invalid request", http.StatusBadRequest)
return false
}
envoyHandler.queryParameters = values
return true
}