mirror of
https://github.com/yunionio/cloudpods.git
synced 2026-10-31 19:14:30 +08:00
fix: make authManager a singleton
This commit is contained in:
@@ -20,6 +20,7 @@ import (
|
||||
"net"
|
||||
"net/http"
|
||||
"strings"
|
||||
"sync"
|
||||
"time"
|
||||
|
||||
"yunion.io/x/jsonutils"
|
||||
@@ -161,16 +162,29 @@ type authManager struct {
|
||||
accessKeyCache *sAccessKeyCache
|
||||
}
|
||||
|
||||
var (
|
||||
authManagerInstane *authManager
|
||||
authManagerLock *sync.Mutex = &sync.Mutex{}
|
||||
)
|
||||
|
||||
func newAuthManager(cli *mcclient.Client, info *AuthInfo) *authManager {
|
||||
authm := &authManager{
|
||||
authManagerLock.Lock()
|
||||
defer authManagerLock.Unlock()
|
||||
|
||||
if authManagerInstane != nil {
|
||||
authManagerInstane.client = cli
|
||||
authManagerInstane.info = info
|
||||
return authManagerInstane
|
||||
}
|
||||
authManagerInstane = &authManager{
|
||||
client: cli,
|
||||
info: info,
|
||||
tokenCacheVerify: NewTokenCacheVerify(),
|
||||
accessKeyCache: newAccessKeyCache(),
|
||||
}
|
||||
authm.InitSync(authm)
|
||||
go authm.startRefreshRevokeTokens()
|
||||
return authm
|
||||
authManagerInstane.InitSync(authManagerInstane)
|
||||
go authManagerInstane.startRefreshRevokeTokens()
|
||||
return authManagerInstane
|
||||
}
|
||||
|
||||
func (a *authManager) startRefreshRevokeTokens() {
|
||||
|
||||
Reference in New Issue
Block a user