Add read locks to LookupToken/ValidateWrappingToken (#2232)

This commit is contained in:
Jeff Mitchell 2017-01-04 16:52:03 -05:00 committed by GitHub
parent de5d4f8f08
commit d256ae265b
2 changed files with 18 additions and 0 deletions

View File

@ -508,6 +508,15 @@ func (c *Core) LookupToken(token string) (*TokenEntry, error) {
return nil, fmt.Errorf("missing client token") return nil, fmt.Errorf("missing client token")
} }
c.stateLock.RLock()
defer c.stateLock.RUnlock()
if c.sealed {
return nil, ErrSealed
}
if c.standby {
return nil, ErrStandby
}
// Many tests don't have a token store running // Many tests don't have a token store running
if c.tokenStore == nil { if c.tokenStore == nil {
return nil, nil return nil, nil

View File

@ -271,6 +271,15 @@ func (c *Core) ValidateWrappingToken(req *logical.Request) (bool, error) {
return false, fmt.Errorf("token is empty") return false, fmt.Errorf("token is empty")
} }
c.stateLock.RLock()
defer c.stateLock.RUnlock()
if c.sealed {
return nil, ErrSealed
}
if c.standby {
return nil, ErrStandby
}
te, err := c.tokenStore.Lookup(token) te, err := c.tokenStore.Lookup(token)
if err != nil { if err != nil {
return false, err return false, err