diff options
Diffstat (limited to 'weed/iamapi/iamapi_management_handlers.go')
| -rw-r--r-- | weed/iamapi/iamapi_management_handlers.go | 17 |
1 files changed, 7 insertions, 10 deletions
diff --git a/weed/iamapi/iamapi_management_handlers.go b/weed/iamapi/iamapi_management_handlers.go index e5c533e27..baa153cd6 100644 --- a/weed/iamapi/iamapi_management_handlers.go +++ b/weed/iamapi/iamapi_management_handlers.go @@ -332,26 +332,23 @@ func GetActions(policy *PolicyDocument) ([]string, error) { // Parse "arn:aws:s3:::my-bucket/shared/*" res := strings.Split(resource, ":") if len(res) != 6 || res[0] != "arn" || res[1] != "aws" || res[2] != "s3" { - return nil, fmt.Errorf("not a valid resource: '%s'. Expected prefix 'arn:aws:s3'", res) + glog.Infof("not a valid resource: %s", res) + continue } for _, action := range statement.Action { // Parse "s3:Get*" act := strings.Split(action, ":") if len(act) != 2 || act[0] != "s3" { - return nil, fmt.Errorf("not a valid action: '%s'. Expected prefix 's3:'", act) + glog.Infof("not a valid action: %s", act) + continue } statementAction := MapToStatementAction(act[1]) - if res[5] == "*" { + path := res[5] + if path == "*" { actions = append(actions, statementAction) continue } - // Parse my-bucket/shared/* - path := strings.Split(res[5], "/") - if len(path) != 2 || path[1] != "*" { - glog.Infof("not match bucket: %s", path) - continue - } - actions = append(actions, fmt.Sprintf("%s:%s", statementAction, path[0])) + actions = append(actions, fmt.Sprintf("%s:%s", statementAction, path)) } } } |
