registry/errors: Parse http forbidden as denied
Signed-off-by: Paweł Gronowski <pawel.gronowski@docker.com>master
							parent
							
								
									29b5e79f82
								
							
						
					
					
						commit
						5f1df02149
					
				|  | @ -54,6 +54,8 @@ func parseHTTPErrorResponse(statusCode int, r io.Reader) error { | |||
| 		switch statusCode { | ||||
| 		case http.StatusUnauthorized: | ||||
| 			return errcode.ErrorCodeUnauthorized.WithMessage(detailsErr.Details) | ||||
| 		case http.StatusForbidden: | ||||
| 			return errcode.ErrorCodeDenied.WithMessage(detailsErr.Details) | ||||
| 		case http.StatusTooManyRequests: | ||||
| 			return errcode.ErrorCodeTooManyRequests.WithMessage(detailsErr.Details) | ||||
| 		default: | ||||
|  |  | |||
|  | @ -102,3 +102,18 @@ func TestHandleErrorResponseUnexpectedStatusCode501(t *testing.T) { | |||
| 		t.Errorf("Expected \"%s\", got: \"%s\"", expectedMsg, err.Error()) | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| func TestHandleErrorResponseInsufficientPrivileges403(t *testing.T) { | ||||
| 	json := `{"details":"requesting higher privileges than access token allows"}` | ||||
| 	response := &http.Response{ | ||||
| 		Status:     "403 Forbidden", | ||||
| 		StatusCode: 403, | ||||
| 		Body:       nopCloser{bytes.NewBufferString(json)}, | ||||
| 	} | ||||
| 	err := HandleErrorResponse(response) | ||||
| 
 | ||||
| 	expectedMsg := "denied: requesting higher privileges than access token allows" | ||||
| 	if !strings.Contains(err.Error(), expectedMsg) { | ||||
| 		t.Errorf("Expected \"%s\", got: \"%s\"", expectedMsg, err.Error()) | ||||
| 	} | ||||
| } | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue