diff --git a/pkg/api/api_generic_handlers.go b/pkg/api/api_generic_handlers.go index 6eb546a95..a297dfde7 100644 --- a/pkg/api/api_generic_handlers.go +++ b/pkg/api/api_generic_handlers.go @@ -72,22 +72,25 @@ func (h timeHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) { return } // Verify if date headers are set, if not reject the request - if r.Header.Get("x-amz-date") == "" && r.Header.Get("Date") == "" { - // there is no way to knowing if this is a valid request, could be a attack reject such clients - writeErrorResponse(w, r, RequestTimeTooSkewed, acceptsContentType, r.URL.Path) - return - } - date, err := getDate(r) - if err != nil { - // there is no way to knowing if this is a valid request, could be a attack reject such clients - writeErrorResponse(w, r, RequestTimeTooSkewed, acceptsContentType, r.URL.Path) - return - } - duration := time.Since(date) - minutes := time.Duration(5) * time.Minute - if duration.Minutes() > minutes.Minutes() { - writeErrorResponse(w, r, RequestTimeTooSkewed, acceptsContentType, r.URL.Path) - return + + if r.Header.Get("Authorization") != "" { + if r.Header.Get("x-amz-date") == "" && r.Header.Get("Date") == "" { + // there is no way to knowing if this is a valid request, could be a attack reject such clients + writeErrorResponse(w, r, RequestTimeTooSkewed, acceptsContentType, r.URL.Path) + return + } + date, err := getDate(r) + if err != nil { + // there is no way to knowing if this is a valid request, could be a attack reject such clients + writeErrorResponse(w, r, RequestTimeTooSkewed, acceptsContentType, r.URL.Path) + return + } + duration := time.Since(date) + minutes := time.Duration(5) * time.Minute + if duration.Minutes() > minutes.Minutes() { + writeErrorResponse(w, r, RequestTimeTooSkewed, acceptsContentType, r.URL.Path) + return + } } h.handler.ServeHTTP(w, r) } diff --git a/pkg/api/contenttype.go b/pkg/api/contenttype.go index aac3d3451..bac5c625e 100644 --- a/pkg/api/contenttype.go +++ b/pkg/api/contenttype.go @@ -32,12 +32,6 @@ func getContentType(req *http.Request) contentType { switch { case acceptHeader == "application/json": return jsonContentType - case acceptHeader == "application/xml": - return xmlContentType - case acceptHeader == "*/*": - return xmlContentType - case acceptHeader != "": - return unknownContentType default: return xmlContentType }