Merge "Fixed bug 905422. Swift caching should work again. Also fixed a few other minor syntactical stuff."
This commit is contained in:
commit
6c40cc9223
15
keystone/middleware/auth_token.py
Executable file → Normal file
15
keystone/middleware/auth_token.py
Executable file → Normal file
@ -335,12 +335,12 @@ class AuthProtocol(object):
|
|||||||
def _cache_put(self, env, token, claims, valid):
|
def _cache_put(self, env, token, claims, valid):
|
||||||
""" Put a claim into the cache """
|
""" Put a claim into the cache """
|
||||||
cache = self._cache(env)
|
cache = self._cache(env)
|
||||||
if (cache and claims):
|
if cache and claims:
|
||||||
key = 'tokens/%s' % (token)
|
key = 'tokens/%s' % (token)
|
||||||
claims = self._protect_claims(token, claims)
|
|
||||||
if "timeout" in cache.set.func_code.co_varnames:
|
if "timeout" in cache.set.func_code.co_varnames:
|
||||||
# swift cache
|
# swift cache
|
||||||
expires = self._convert_date(claims['expires'])
|
expires = self._convert_date(claims['expires'])
|
||||||
|
claims = self._protect_claims(token, claims)
|
||||||
cache.set(key, (claims, expires, valid),
|
cache.set(key, (claims, expires, valid),
|
||||||
timeout=expires - time.time())
|
timeout=expires - time.time())
|
||||||
else:
|
else:
|
||||||
@ -351,6 +351,7 @@ class AuthProtocol(object):
|
|||||||
if timeout > MAX_CACHE_TIME or not valid:
|
if timeout > MAX_CACHE_TIME or not valid:
|
||||||
# Limit cache to one day (and cache bad tokens for a day)
|
# Limit cache to one day (and cache bad tokens for a day)
|
||||||
timeout = MAX_CACHE_TIME
|
timeout = MAX_CACHE_TIME
|
||||||
|
claims = self._protect_claims(token, claims)
|
||||||
cache.set(key, (claims, expires, valid), time=timeout)
|
cache.set(key, (claims, expires, valid), time=timeout)
|
||||||
|
|
||||||
def _cache_get(self, env, token):
|
def _cache_get(self, env, token):
|
||||||
@ -363,14 +364,18 @@ class AuthProtocol(object):
|
|||||||
if cached_claims:
|
if cached_claims:
|
||||||
claims, expires, valid = cached_claims
|
claims, expires, valid = cached_claims
|
||||||
if valid:
|
if valid:
|
||||||
if expires > datetime.now():
|
if "timeout" in cache.set.func_code.co_varnames:
|
||||||
claims = self._unprotect_claims(token, claims)
|
if expires > time.time():
|
||||||
|
claims = self._unprotect_claims(token, claims)
|
||||||
|
else:
|
||||||
|
if expires > datetime.now():
|
||||||
|
claims = self._unprotect_claims(token, claims)
|
||||||
return (claims, expires, valid)
|
return (claims, expires, valid)
|
||||||
return None
|
return None
|
||||||
|
|
||||||
def _cache(self, env):
|
def _cache(self, env):
|
||||||
""" Return a cache to use for token caching, or none """
|
""" Return a cache to use for token caching, or none """
|
||||||
if (self.cache is not None):
|
if self.cache is not None:
|
||||||
return env.get(self.cache, None)
|
return env.get(self.cache, None)
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user