auth

Paddy 2014-09-01 Parent:5bf0a5fd1d01 Child:88523dab00a5

30:e0b3064daf02 Go to Latest

auth/memstore.go

Expunge the old stuff. Let's remove every trace of osin from this repo, and update the LICENSE accordingly, as we're now the full copyright holders.

History
paddy@28 1 package auth
paddy@28 2
paddy@28 3 import "sync"
paddy@28 4
paddy@28 5 type Memstore struct {
paddy@28 6 tokens map[string]Token
paddy@28 7 refreshTokenLookup map[string]string
paddy@28 8 profileTokenLookup map[string][]string
paddy@28 9 tokenLock sync.RWMutex
paddy@29 10
paddy@29 11 grants map[string]Grant
paddy@29 12 grantLock sync.RWMutex
paddy@28 13 }
paddy@28 14
paddy@28 15 func NewMemstore() *Memstore {
paddy@28 16 return &Memstore{
paddy@28 17 tokens: map[string]Token{},
paddy@28 18 refreshTokenLookup: map[string]string{},
paddy@28 19 profileTokenLookup: map[string][]string{},
paddy@29 20 grants: map[string]Grant{},
paddy@28 21 }
paddy@28 22 }
paddy@28 23
paddy@28 24 func (m *Memstore) lookupTokenByRefresh(token string) (string, error) {
paddy@28 25 m.tokenLock.RLock()
paddy@28 26 defer m.tokenLock.RUnlock()
paddy@28 27 t, ok := m.refreshTokenLookup[token]
paddy@28 28 if !ok {
paddy@28 29 return "", ErrTokenNotFound
paddy@28 30 }
paddy@28 31 return t, nil
paddy@28 32 }
paddy@28 33
paddy@28 34 func (m *Memstore) lookupTokensByProfileID(id string) ([]string, error) {
paddy@28 35 m.tokenLock.RLock()
paddy@28 36 defer m.tokenLock.RUnlock()
paddy@28 37 return m.profileTokenLookup[id], nil
paddy@28 38 }