Make minio work with curl and browsers again

master
Frederick F. Kautz IV 10 years ago
parent 73de05feb6
commit 82a16b8848
  1. 35
      pkg/api/api_generic_handlers.go
  2. 6
      pkg/api/contenttype.go

@ -72,22 +72,25 @@ func (h timeHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
return return
} }
// Verify if date headers are set, if not reject the request // 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 if r.Header.Get("Authorization") != "" {
writeErrorResponse(w, r, RequestTimeTooSkewed, acceptsContentType, r.URL.Path) if r.Header.Get("x-amz-date") == "" && r.Header.Get("Date") == "" {
return // 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)
date, err := getDate(r) return
if err != nil { }
// there is no way to knowing if this is a valid request, could be a attack reject such clients date, err := getDate(r)
writeErrorResponse(w, r, RequestTimeTooSkewed, acceptsContentType, r.URL.Path) if err != nil {
return // 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)
duration := time.Since(date) return
minutes := time.Duration(5) * time.Minute }
if duration.Minutes() > minutes.Minutes() { duration := time.Since(date)
writeErrorResponse(w, r, RequestTimeTooSkewed, acceptsContentType, r.URL.Path) minutes := time.Duration(5) * time.Minute
return if duration.Minutes() > minutes.Minutes() {
writeErrorResponse(w, r, RequestTimeTooSkewed, acceptsContentType, r.URL.Path)
return
}
} }
h.handler.ServeHTTP(w, r) h.handler.ServeHTTP(w, r)
} }

@ -32,12 +32,6 @@ func getContentType(req *http.Request) contentType {
switch { switch {
case acceptHeader == "application/json": case acceptHeader == "application/json":
return jsonContentType return jsonContentType
case acceptHeader == "application/xml":
return xmlContentType
case acceptHeader == "*/*":
return xmlContentType
case acceptHeader != "":
return unknownContentType
default: default:
return xmlContentType return xmlContentType
} }

Loading…
Cancel
Save