Get the cached value from Redis

This commit is contained in:
Peter Stuifzand 2018-09-15 16:04:50 +02:00
parent 3c9f7eae47
commit 7361b524e8
Signed by: peter
GPG Key ID: 374322D56E5209E8

View File

@ -43,14 +43,10 @@ func (b *memoryBackend) cachedCheckAuthToken(conn redis.Conn, header string, r *
var err error
values, err := redis.Values(conn.Do("HGETALL", key))
if err == nil && len(values) > 0 {
if err = redis.ScanStruct(values, r); err == nil {
areweauth, err := getCachedValue(err, conn, key, r)
if areweauth {
return true
}
} else {
log.Printf("Error while HGETALL %v\n", err)
}
authorized := b.checkAuthToken(header, r)
if authorized {
@ -75,6 +71,16 @@ func (b *memoryBackend) cachedCheckAuthToken(conn redis.Conn, header string, r *
return authorized
}
func getCachedValue(err error, conn redis.Conn, key string, r *auth.TokenResponse) (bool, error) {
values, err := redis.Values(conn.Do("HGETALL", key))
if err == nil && len(values) > 0 {
if err = redis.ScanStruct(values, r); err == nil {
return true, nil
}
}
return false, fmt.Errorf("error while getting value from backend: %v", err)
}
func (b *memoryBackend) checkAuthToken(header string, token *auth.TokenResponse) bool {
log.Println("Checking auth token")