[#506] Deny bucket names with dot #514

Merged
alexvanin merged 1 commit from mbiryukova/frostfs-s3-gw:feature/deny_dot into master 2024-10-10 10:28:15 +00:00
2 changed files with 5 additions and 11 deletions

View file

@ -1011,18 +1011,12 @@ func checkBucketName(bucketName string) error {
return apierr.GetAPIError(apierr.ErrInvalidBucketName) return apierr.GetAPIError(apierr.ErrInvalidBucketName)
} }
labels := strings.Split(bucketName, ".") for i, r := range bucketName {
for _, label := range labels { if r == '.' || (!isAlphaNum(r) && r != '-') {
if len(label) == 0 {
return apierr.GetAPIError(apierr.ErrInvalidBucketName) return apierr.GetAPIError(apierr.ErrInvalidBucketName)
} }
for i, r := range label { if (i == 0 || i == len(bucketName)-1) && r == '-' {
if !isAlphaNum(r) && r != '-' { return apierr.GetAPIError(apierr.ErrInvalidBucketName)
return apierr.GetAPIError(apierr.ErrInvalidBucketName)
}
if (i == 0 || i == len(label)-1) && r == '-' {
return apierr.GetAPIError(apierr.ErrInvalidBucketName)
}
} }
} }

View file

@ -42,10 +42,10 @@ func TestCheckBucketName(t *testing.T) {
}{ }{
{name: "bucket"}, {name: "bucket"},
{name: "2bucket"}, {name: "2bucket"},
{name: "buc.ket"},
{name: "buc-ket"}, {name: "buc-ket"},
{name: "abc"}, {name: "abc"},
{name: "63aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"}, {name: "63aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"},
{name: "buc.ket", err: true},
{name: "buc.-ket", err: true}, {name: "buc.-ket", err: true},
{name: "bucket.", err: true}, {name: "bucket.", err: true},
{name: ".bucket", err: true}, {name: ".bucket", err: true},