whitelist를 mg로 이동
This commit is contained in:
@ -177,6 +177,8 @@ type Maingate struct {
|
||||
//services servicelist
|
||||
serviceptr unsafe.Pointer
|
||||
admins unsafe.Pointer
|
||||
wl whitelist
|
||||
|
||||
tokenEndpoints map[string]string
|
||||
authorizationEndpoints map[string]string
|
||||
userinfoEndpoint map[string]string
|
||||
@ -422,6 +424,12 @@ func (mg *Maingate) prepare(context context.Context) (err error) {
|
||||
}
|
||||
}
|
||||
|
||||
var whites []whitelistmember
|
||||
if err := mg.mongoClient.AllAs(CollectionWhitelist, &whites, options.Find().SetReturnKey(false)); err != nil {
|
||||
return err
|
||||
}
|
||||
mg.wl.init(whites)
|
||||
|
||||
go watchAuthCollection(context, mg.auths, mg.mongoClient)
|
||||
go mg.watchWhitelistCollection(context)
|
||||
|
||||
|
||||
@ -139,7 +139,7 @@ type serviceDescription struct {
|
||||
Admins []string `bson:"admins" json:"admins"`
|
||||
|
||||
auths *common.AuthCollection
|
||||
wl whitelist
|
||||
wl *whitelist
|
||||
mongoClient common.MongoClient
|
||||
sessionTTL time.Duration
|
||||
serviceCodeBytes []byte
|
||||
@ -250,20 +250,13 @@ func (sh *serviceDescription) prepare(mg *Maingate) error {
|
||||
sh.mongoClient = mg.mongoClient
|
||||
sh.auths = mg.auths
|
||||
sh.sessionTTL = time.Duration(mg.SessionTTL * int64(time.Second))
|
||||
sh.wl = whitelist{}
|
||||
sh.serviceCodeBytes, _ = hex.DecodeString(sh.ServiceCode)
|
||||
sh.getUserBrowserInfo = mg.GetUserBrowserInfo
|
||||
sh.getUserTokenWithCheck = mg.getUserTokenWithCheck
|
||||
sh.updateUserinfo = mg.updateUserinfo
|
||||
sh.getProviderInfo = mg.getProviderInfo
|
||||
|
||||
var whites []whitelistmember
|
||||
if err := mg.mongoClient.AllAs(CollectionWhitelist, &whites, options.Find().SetReturnKey(false)); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
sh.wl.init(whites)
|
||||
sh.admins = unsafe.Pointer(&sh.Admins)
|
||||
sh.wl = &mg.wl
|
||||
bt, _ := json.Marshal(sh)
|
||||
atomic.StorePointer(&sh.serviceSerialized, unsafe.Pointer(&bt))
|
||||
|
||||
|
||||
Reference in New Issue
Block a user