Skip to content

Commit

Permalink
set-json to fail on custom policies without .json (#4745)
Browse files Browse the repository at this point in the history
  • Loading branch information
r-scheele authored Nov 27, 2023
1 parent 2178568 commit 5e6ae21
Show file tree
Hide file tree
Showing 2 changed files with 33 additions and 3 deletions.
34 changes: 32 additions & 2 deletions cmd/access-perms.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,12 @@

package cmd

import "path/filepath"
import (
"os"

json "github.com/minio/colorjson"
"github.com/minio/minio-go/v7/pkg/policy"
)

// isValidAccessPERM - is provided access perm string supported.
func (b accessPerms) isValidAccessPERM() bool {
Expand All @@ -29,7 +34,32 @@ func (b accessPerms) isValidAccessPERM() bool {
}

func (b accessPerms) isValidAccessFile() bool {
return filepath.Ext(string(b)) == ".json"
file, err := os.Open(string(b))
if err != nil {
fatalIf(errDummy().Trace(), "Unable to open access file.")
return false
}
defer file.Close()

var policy policy.BucketAccessPolicy
if json.NewDecoder(file).Decode(&policy) != nil {
fatalIf(errDummy().Trace(), "Unable to parse access file.")
return false
}

if policy.Version != "2012-10-17" {
fatalIf(errDummy().Trace(), "Invalid policy version. Only 2012-10-17 is supported.")
return false
}

for _, statement := range policy.Statements {
if statement.Effect != "Allow" && statement.Effect != "Deny" {
fatalIf(errDummy().Trace(), "Invalid policy effect. Only Allow and Deny are supported.")
return false
}
}

return true
}

// accessPerms - access level.
Expand Down
2 changes: 1 addition & 1 deletion cmd/anonymous-main.go
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ var anonymousCmd = cli.Command{
USAGE:
{{.HelpName}} [FLAGS] set PERMISSION TARGET
{{.HelpName}} [FLAGS] set-json TARGET FILE
{{.HelpName}} [FLAGS] set-json FILE TARGET
{{.HelpName}} [FLAGS] get TARGET
{{.HelpName}} [FLAGS] get-json TARGET
{{.HelpName}} [FLAGS] list TARGET
Expand Down

0 comments on commit 5e6ae21

Please sign in to comment.