Fix base64 encoded prefix received on the server side for chinese characters (#1126)
Signed-off-by: Daniel Valdivia <18384552+dvaldivia@users.noreply.github.com>
This commit is contained in:
@@ -838,7 +838,7 @@ func getBucketRewindResponse(session *models.Principal, params user_api.GetBucke
|
|||||||
defer cancel()
|
defer cancel()
|
||||||
var prefix = ""
|
var prefix = ""
|
||||||
if params.Prefix != nil {
|
if params.Prefix != nil {
|
||||||
encodedPrefix := *params.Prefix
|
encodedPrefix := SanitizeEncodedPrefix(*params.Prefix)
|
||||||
decodedPrefix, err := base64.StdEncoding.DecodeString(encodedPrefix)
|
decodedPrefix, err := base64.StdEncoding.DecodeString(encodedPrefix)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, prepareError(err)
|
return nil, prepareError(err)
|
||||||
|
|||||||
@@ -87,7 +87,7 @@ func registerObjectsHandlers(api *operations.ConsoleAPI) {
|
|||||||
var prefixPath string
|
var prefixPath string
|
||||||
var filename string
|
var filename string
|
||||||
if params.Prefix != "" {
|
if params.Prefix != "" {
|
||||||
encodedPrefix := params.Prefix
|
encodedPrefix := SanitizeEncodedPrefix(params.Prefix)
|
||||||
decodedPrefix, err := base64.StdEncoding.DecodeString(encodedPrefix)
|
decodedPrefix, err := base64.StdEncoding.DecodeString(encodedPrefix)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Println(err)
|
log.Println(err)
|
||||||
@@ -187,7 +187,7 @@ func getListObjectsResponse(session *models.Principal, params user_api.ListObjec
|
|||||||
var withVersions bool
|
var withVersions bool
|
||||||
var withMetadata bool
|
var withMetadata bool
|
||||||
if params.Prefix != nil {
|
if params.Prefix != nil {
|
||||||
encodedPrefix := *params.Prefix
|
encodedPrefix := SanitizeEncodedPrefix(*params.Prefix)
|
||||||
decodedPrefix, err := base64.StdEncoding.DecodeString(encodedPrefix)
|
decodedPrefix, err := base64.StdEncoding.DecodeString(encodedPrefix)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, prepareError(err)
|
return nil, prepareError(err)
|
||||||
@@ -290,7 +290,7 @@ func getDownloadObjectResponse(session *models.Principal, params user_api.Downlo
|
|||||||
ctx := context.Background()
|
ctx := context.Background()
|
||||||
var prefix string
|
var prefix string
|
||||||
if params.Prefix != "" {
|
if params.Prefix != "" {
|
||||||
encodedPrefix := params.Prefix
|
encodedPrefix := SanitizeEncodedPrefix(params.Prefix)
|
||||||
decodedPrefix, err := base64.StdEncoding.DecodeString(encodedPrefix)
|
decodedPrefix, err := base64.StdEncoding.DecodeString(encodedPrefix)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, prepareError(err)
|
return nil, prepareError(err)
|
||||||
@@ -492,7 +492,7 @@ func getUploadObjectResponse(session *models.Principal, params user_api.PostBuck
|
|||||||
func uploadFiles(ctx context.Context, client MinioClient, params user_api.PostBucketsBucketNameObjectsUploadParams) error {
|
func uploadFiles(ctx context.Context, client MinioClient, params user_api.PostBucketsBucketNameObjectsUploadParams) error {
|
||||||
var prefix string
|
var prefix string
|
||||||
if params.Prefix != nil {
|
if params.Prefix != nil {
|
||||||
encodedPrefix := *params.Prefix
|
encodedPrefix := SanitizeEncodedPrefix(*params.Prefix)
|
||||||
decodedPrefix, err := base64.StdEncoding.DecodeString(encodedPrefix)
|
decodedPrefix, err := base64.StdEncoding.DecodeString(encodedPrefix)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
@@ -541,7 +541,7 @@ func getShareObjectResponse(session *models.Principal, params user_api.ShareObje
|
|||||||
ctx := context.Background()
|
ctx := context.Background()
|
||||||
var prefix string
|
var prefix string
|
||||||
if params.Prefix != "" {
|
if params.Prefix != "" {
|
||||||
encodedPrefix := params.Prefix
|
encodedPrefix := SanitizeEncodedPrefix(params.Prefix)
|
||||||
decodedPrefix, err := base64.StdEncoding.DecodeString(encodedPrefix)
|
decodedPrefix, err := base64.StdEncoding.DecodeString(encodedPrefix)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, prepareError(err)
|
return nil, prepareError(err)
|
||||||
@@ -595,7 +595,7 @@ func getSetObjectLegalHoldResponse(session *models.Principal, params user_api.Pu
|
|||||||
minioClient := minioClient{client: mClient}
|
minioClient := minioClient{client: mClient}
|
||||||
var prefix string
|
var prefix string
|
||||||
if params.Prefix != "" {
|
if params.Prefix != "" {
|
||||||
encodedPrefix := params.Prefix
|
encodedPrefix := SanitizeEncodedPrefix(params.Prefix)
|
||||||
decodedPrefix, err := base64.StdEncoding.DecodeString(encodedPrefix)
|
decodedPrefix, err := base64.StdEncoding.DecodeString(encodedPrefix)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return prepareError(err)
|
return prepareError(err)
|
||||||
@@ -631,7 +631,7 @@ func getSetObjectRetentionResponse(session *models.Principal, params user_api.Pu
|
|||||||
minioClient := minioClient{client: mClient}
|
minioClient := minioClient{client: mClient}
|
||||||
var prefix string
|
var prefix string
|
||||||
if params.Prefix != "" {
|
if params.Prefix != "" {
|
||||||
encodedPrefix := params.Prefix
|
encodedPrefix := SanitizeEncodedPrefix(params.Prefix)
|
||||||
decodedPrefix, err := base64.StdEncoding.DecodeString(encodedPrefix)
|
decodedPrefix, err := base64.StdEncoding.DecodeString(encodedPrefix)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return prepareError(err)
|
return prepareError(err)
|
||||||
@@ -684,7 +684,7 @@ func deleteObjectRetentionResponse(session *models.Principal, params user_api.De
|
|||||||
minioClient := minioClient{client: mClient}
|
minioClient := minioClient{client: mClient}
|
||||||
var prefix string
|
var prefix string
|
||||||
if params.Prefix != "" {
|
if params.Prefix != "" {
|
||||||
encodedPrefix := params.Prefix
|
encodedPrefix := SanitizeEncodedPrefix(params.Prefix)
|
||||||
decodedPrefix, err := base64.StdEncoding.DecodeString(encodedPrefix)
|
decodedPrefix, err := base64.StdEncoding.DecodeString(encodedPrefix)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return prepareError(err)
|
return prepareError(err)
|
||||||
@@ -719,7 +719,7 @@ func getPutObjectTagsResponse(session *models.Principal, params user_api.PutObje
|
|||||||
minioClient := minioClient{client: mClient}
|
minioClient := minioClient{client: mClient}
|
||||||
var prefix string
|
var prefix string
|
||||||
if params.Prefix != "" {
|
if params.Prefix != "" {
|
||||||
encodedPrefix := params.Prefix
|
encodedPrefix := SanitizeEncodedPrefix(params.Prefix)
|
||||||
decodedPrefix, err := base64.StdEncoding.DecodeString(encodedPrefix)
|
decodedPrefix, err := base64.StdEncoding.DecodeString(encodedPrefix)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return prepareError(err)
|
return prepareError(err)
|
||||||
|
|||||||
@@ -136,3 +136,8 @@ func ExpireSessionCookie() http.Cookie {
|
|||||||
SameSite: http.SameSiteLaxMode,
|
SameSite: http.SameSiteLaxMode,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// SanitizeEncodedPrefix replaces spaces for + since those are lost when you do GET parameters
|
||||||
|
func SanitizeEncodedPrefix(rawPrefix string) string {
|
||||||
|
return strings.Replace(rawPrefix, " ", "+", -1)
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user