|
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- package accesstoken
-
- import (
- "context"
-
- "gitlink.org.cn/cloudream/common/consts/errorcode"
- stgglb "gitlink.org.cn/cloudream/jcs-pub/common/globals"
- "gitlink.org.cn/cloudream/jcs-pub/common/pkgs/accesstoken"
- corrpc "gitlink.org.cn/cloudream/jcs-pub/common/pkgs/rpc/coordinator"
- cortypes "gitlink.org.cn/cloudream/jcs-pub/coordinator/types"
- )
-
- type ExitEvent = accesstoken.ExitEvent
-
- type CacheKey = accesstoken.CacheKey
-
- type Cache struct {
- localHubID cortypes.HubID
- *accesstoken.Cache
- }
-
- func New(localHubID cortypes.HubID) *Cache {
- c := &Cache{
- localHubID: localHubID,
- }
- c.Cache = accesstoken.New(c.load)
-
- return c
- }
-
- func (c *Cache) load(key accesstoken.CacheKey) (cortypes.UserAccessToken, error) {
- corCli := stgglb.CoordinatorRPCPool.Get()
- defer corCli.Release()
-
- tokenResp, cerr := corCli.HubLoadAccessToken(context.Background(), &corrpc.HubLoadAccessToken{
- UserID: key.UserID,
- TokenID: key.TokenID,
- HubID: c.localHubID,
- })
- if cerr != nil {
- if cerr.Code == errorcode.DataNotFound {
- return cortypes.UserAccessToken{}, accesstoken.ErrTokenNotFound
- }
-
- return cortypes.UserAccessToken{}, cerr.ToError()
- }
-
- return tokenResp.Token, nil
- }
|