aboutsummaryrefslogtreecommitdiff
path: root/weed/s3api/auth_credentials.go
diff options
context:
space:
mode:
authorchrislu <chris.lu@gmail.com>2022-05-29 19:00:03 -0700
committerchrislu <chris.lu@gmail.com>2022-05-29 19:00:03 -0700
commitb8f3db0d4607e71e9725152d82399d1b9ce5c4a9 (patch)
treeb24356fe997b73f23a973620621f6d279397c836 /weed/s3api/auth_credentials.go
parent81d615929068878ed5dd5d0b8c555c64b4cda1ed (diff)
downloadseaweedfs-b8f3db0d4607e71e9725152d82399d1b9ce5c4a9.tar.xz
seaweedfs-b8f3db0d4607e71e9725152d82399d1b9ce5c4a9.zip
s3: keep auth enabled in case identities are set to empty
fix https://github.com/chrislusf/seaweedfs/issues/3084
Diffstat (limited to 'weed/s3api/auth_credentials.go')
-rw-r--r--weed/s3api/auth_credentials.go12
1 files changed, 7 insertions, 5 deletions
diff --git a/weed/s3api/auth_credentials.go b/weed/s3api/auth_credentials.go
index 53a55617f..3ab1df336 100644
--- a/weed/s3api/auth_credentials.go
+++ b/weed/s3api/auth_credentials.go
@@ -26,8 +26,9 @@ type Iam interface {
type IdentityAccessManagement struct {
m sync.RWMutex
- identities []*Identity
- domain string
+ identities []*Identity
+ isAuthEnabled bool
+ domain string
}
type Identity struct {
@@ -137,14 +138,15 @@ func (iam *IdentityAccessManagement) loadS3ApiConfiguration(config *iam_pb.S3Api
iam.m.Lock()
// atomically switch
iam.identities = identities
+ if !iam.isAuthEnabled { // one-directional, no toggling
+ iam.isAuthEnabled = len(identities) > 0
+ }
iam.m.Unlock()
return nil
}
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) {