diff options
| author | Chris Lu <chris.lu@gmail.com> | 2020-12-10 00:15:22 -0800 |
|---|---|---|
| committer | Chris Lu <chris.lu@gmail.com> | 2020-12-10 00:15:22 -0800 |
| commit | 765b3ef1beae5418491e338d397a589186ca4458 (patch) | |
| tree | 3e2a9b6a3a587a8801e08a3a10786cae8b6653e8 /weed/s3api | |
| parent | 97c942b5eefcd01428fc663ff2a2ec1be68812db (diff) | |
| download | seaweedfs-765b3ef1beae5418491e338d397a589186ca4458.tar.xz seaweedfs-765b3ef1beae5418491e338d397a589186ca4458.zip | |
save /etc/iam/identity.json inside filer store
Diffstat (limited to 'weed/s3api')
| -rw-r--r-- | weed/s3api/auth_credentials.go | 23 | ||||
| -rw-r--r-- | weed/s3api/auth_credentials_subscribe.go | 3 |
2 files changed, 11 insertions, 15 deletions
diff --git a/weed/s3api/auth_credentials.go b/weed/s3api/auth_credentials.go index 83f5269b7..c2ffefedc 100644 --- a/weed/s3api/auth_credentials.go +++ b/weed/s3api/auth_credentials.go @@ -50,33 +50,27 @@ func NewIdentityAccessManagement(option *S3ApiServerOption) *IdentityAccessManag } func (iam *IdentityAccessManagement) loadS3ApiConfigurationFromFiler(option *S3ApiServerOption) error { - s3ApiConfiguration := &iam_pb.S3ApiConfiguration{} content, err := filer.ReadContent(option.Filer, filer.IamConfigDirecotry, filer.IamIdentityFile) if err != nil { return fmt.Errorf("read S3 config: %v", err) } - if err = filer.ParseS3ConfigurationFromBytes(content, s3ApiConfiguration); err != nil { - return fmt.Errorf("parse S3 config: %v", err) - } - if err := iam.loadS3ApiConfiguration(s3ApiConfiguration); err != nil { - return fmt.Errorf("laod S3 config: %v", err) - } - glog.V(0).Infof("loaded %d s3 identities", len(iam.identities)) - return nil + return iam.loadS3ApiConfigurationFromBytes(content) } func (iam *IdentityAccessManagement) loadS3ApiConfigurationFromFile(fileName string) error { - s3ApiConfiguration := &iam_pb.S3ApiConfiguration{} - rawData, readErr := ioutil.ReadFile(fileName) + content, readErr := ioutil.ReadFile(fileName) if readErr != nil { glog.Warningf("fail to read %s : %v", fileName, readErr) return fmt.Errorf("fail to read %s : %v", fileName, readErr) } + return iam.loadS3ApiConfigurationFromBytes(content) +} - glog.V(1).Infof("load s3 config: %v", fileName) - if err := filer.ParseS3ConfigurationFromBytes(rawData, s3ApiConfiguration); err != nil { +func (iam *IdentityAccessManagement) loadS3ApiConfigurationFromBytes(content []byte) error { + s3ApiConfiguration := &iam_pb.S3ApiConfiguration{} + if err := filer.ParseS3ConfigurationFromBytes(content, s3ApiConfiguration); err != nil { glog.Warningf("unmarshal error: %v", err) - return fmt.Errorf("unmarshal %s error: %v", fileName, err) + return fmt.Errorf("unmarshal error: %v", err) } if err := iam.loadS3ApiConfiguration(s3ApiConfiguration); err != nil { return err @@ -84,6 +78,7 @@ func (iam *IdentityAccessManagement) loadS3ApiConfigurationFromFile(fileName str return nil } + func (iam *IdentityAccessManagement) loadS3ApiConfiguration(config *iam_pb.S3ApiConfiguration) error { var identities []*Identity for _, ident := range config.Identities { diff --git a/weed/s3api/auth_credentials_subscribe.go b/weed/s3api/auth_credentials_subscribe.go index f541628bb..ea4b69550 100644 --- a/weed/s3api/auth_credentials_subscribe.go +++ b/weed/s3api/auth_credentials_subscribe.go @@ -25,9 +25,10 @@ func (s3a *S3ApiServer) subscribeMetaEvents(clientName string, prefix string, la dir = message.NewParentPath } if dir == filer.IamConfigDirecotry && message.NewEntry.Name == filer.IamIdentityFile { - if err := s3a.iam.loadS3ApiConfigurationFromFiler(s3a.option); err != nil { + if err := s3a.iam.loadS3ApiConfigurationFromBytes(message.NewEntry.Content); err != nil { return err } + glog.V(0).Infof("updated %s/%s", filer.IamConfigDirecotry, filer.IamIdentityFile) } return nil |
