mirror of
https://github.com/minio/minio.git
synced 2025-11-07 12:52:58 -05:00
Reply in xml from validate and ignore handlers
This commit is contained in:
@@ -17,6 +17,7 @@ type ErrorResponse struct {
|
||||
Message string
|
||||
Resource string
|
||||
RequestId string
|
||||
HostId string
|
||||
}
|
||||
|
||||
/// Error codes, non exhaustive list
|
||||
@@ -162,9 +163,12 @@ func getErrorResponse(err Error, resource string) ErrorResponse {
|
||||
var data = ErrorResponse{}
|
||||
data.Code = err.Code
|
||||
data.Message = err.Description
|
||||
data.Resource = resource
|
||||
if resource != "" {
|
||||
data.Resource = resource
|
||||
}
|
||||
// TODO implement this in future
|
||||
data.RequestId = "3LI37"
|
||||
data.RequestId = "3L137"
|
||||
data.HostId = "3L137"
|
||||
|
||||
return data
|
||||
}
|
||||
|
||||
@@ -32,17 +32,23 @@ func validateHandler(conf config.Config, h http.Handler) http.Handler {
|
||||
|
||||
func (h vHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
|
||||
accessKey := stripAccessKey(r)
|
||||
acceptsContentType := getContentType(r)
|
||||
if accessKey != "" {
|
||||
if err := h.conf.ReadConfig(); err != nil {
|
||||
w.WriteHeader(http.StatusInternalServerError)
|
||||
error := errorCodeError(InternalError)
|
||||
errorResponse := getErrorResponse(error, "")
|
||||
w.WriteHeader(error.HttpStatusCode)
|
||||
w.Write(writeErrorResponse(w, errorResponse, acceptsContentType))
|
||||
} else {
|
||||
user := h.conf.GetKey(accessKey)
|
||||
ok, err := signers.ValidateRequest(user, r)
|
||||
ok, _ := signers.ValidateRequest(user, r)
|
||||
if ok {
|
||||
h.handler.ServeHTTP(w, r)
|
||||
} else {
|
||||
w.WriteHeader(http.StatusUnauthorized)
|
||||
w.Write([]byte(err.Error()))
|
||||
error := errorCodeError(AccessDenied)
|
||||
errorResponse := getErrorResponse(error, "")
|
||||
w.WriteHeader(error.HttpStatusCode)
|
||||
w.Write(writeErrorResponse(w, errorResponse, acceptsContentType))
|
||||
}
|
||||
}
|
||||
} else {
|
||||
@@ -58,8 +64,12 @@ func (h vHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
func ignoreUnimplementedResources(h http.Handler) http.Handler {
|
||||
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
|
||||
acceptsContentType := getContentType(r)
|
||||
if ignoreUnImplementedObjectResources(r) || ignoreUnImplementedBucketResources(r) {
|
||||
w.WriteHeader(http.StatusNotImplemented)
|
||||
error := errorCodeError(NotImplemented)
|
||||
errorResponse := getErrorResponse(error, "")
|
||||
w.WriteHeader(error.HttpStatusCode)
|
||||
w.Write(writeErrorResponse(w, errorResponse, acceptsContentType))
|
||||
} else {
|
||||
h.ServeHTTP(w, r)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user