mirror of https://github.com/minio/minio.git
bucketpolicy: checkBucketPolicy should keep resources in map.
This is done to make sure to avoid appending duplicates for resources for each actions.
This commit is contained in:
parent
600a932acb
commit
996d2e2a10
|
@ -193,7 +193,7 @@ var invalidPrefixActions = map[string]struct{}{
|
|||
func checkBucketPolicy(bucket string, bucketPolicy BucketPolicy) APIErrorCode {
|
||||
// Validate statements for special actions and collect resources
|
||||
// for others to validate nesting.
|
||||
var resources []string
|
||||
var resourceMap = make(map[string]struct{})
|
||||
for _, statement := range bucketPolicy.Statements {
|
||||
for _, action := range statement.Actions {
|
||||
for _, resource := range statement.Resources {
|
||||
|
@ -211,12 +211,17 @@ func checkBucketPolicy(bucket string, bucketPolicy BucketPolicy) APIErrorCode {
|
|||
return ErrMalformedPolicy
|
||||
}
|
||||
// All valid resources collect them separately to verify nesting.
|
||||
resources = append(resources, resourcePrefix)
|
||||
resourceMap[resourcePrefix] = struct{}{}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
var resources []string
|
||||
for resource := range resourceMap {
|
||||
resources = append(resources, resource)
|
||||
}
|
||||
|
||||
// Sort strings as shorter first.
|
||||
sort.Strings(resources)
|
||||
|
||||
|
|
Loading…
Reference in New Issue