Browse Source

s3: keep auth enabled in case identities are set to empty

fix https://github.com/chrislusf/seaweedfs/issues/3084
pull/3112/head
chrislu 3 years ago
parent
commit
b8f3db0d46
  1. 12
      weed/s3api/auth_credentials.go

12
weed/s3api/auth_credentials.go

@ -26,8 +26,9 @@ type Iam interface {
type IdentityAccessManagement struct { type IdentityAccessManagement struct {
m sync.RWMutex m sync.RWMutex
identities []*Identity
domain string
identities []*Identity
isAuthEnabled bool
domain string
} }
type Identity struct { type Identity struct {
@ -137,14 +138,15 @@ func (iam *IdentityAccessManagement) loadS3ApiConfiguration(config *iam_pb.S3Api
iam.m.Lock() iam.m.Lock()
// atomically switch // atomically switch
iam.identities = identities iam.identities = identities
if !iam.isAuthEnabled { // one-directional, no toggling
iam.isAuthEnabled = len(identities) > 0
}
iam.m.Unlock() iam.m.Unlock()
return nil return nil
} }
func (iam *IdentityAccessManagement) isEnabled() bool { func (iam *IdentityAccessManagement) isEnabled() bool {
iam.m.RLock()
defer iam.m.RUnlock()
return len(iam.identities) > 0
return iam.isAuthEnabled
} }
func (iam *IdentityAccessManagement) lookupByAccessKey(accessKey string) (identity *Identity, cred *Credential, found bool) { func (iam *IdentityAccessManagement) lookupByAccessKey(accessKey string) (identity *Identity, cred *Credential, found bool) {

Loading…
Cancel
Save