summaryrefslogtreecommitdiffstats
path: root/keystone/token/core.py
diff options
context:
space:
mode:
Diffstat (limited to 'keystone/token/core.py')
-rw-r--r--keystone/token/core.py37
1 files changed, 24 insertions, 13 deletions
diff --git a/keystone/token/core.py b/keystone/token/core.py
index a8a3b82d..bc27b80d 100644
--- a/keystone/token/core.py
+++ b/keystone/token/core.py
@@ -16,6 +16,7 @@
"""Main entry point into the Token service."""
+import copy
import datetime
from keystone.common import cms
@@ -32,19 +33,6 @@ config.register_int('expiration', group='token', default=86400)
LOG = logging.getLogger(__name__)
-def unique_id(token_id):
- """Return a unique ID for a token.
-
- The returned value is useful as the primary key of a database table,
- memcache store, or other lookup table.
-
- :returns: Given a PKI token, returns it's hashed value. Otherwise, returns
- the passed-in value (such as a UUID token ID or an existing
- hash).
- """
- return cms.cms_hash_token(token_id)
-
-
def default_expire_time():
"""Determine when a fresh token should expire.
@@ -114,6 +102,29 @@ class Manager(manager.Manager):
def __init__(self):
super(Manager, self).__init__(CONF.token.driver)
+ def _unique_id(self, token_id):
+ """Return a unique ID for a token.
+
+ The returned value is useful as the primary key of a database table,
+ memcache store, or other lookup table.
+
+ :returns: Given a PKI token, returns it's hashed value. Otherwise,
+ returns the passed-in value (such as a UUID token ID or an
+ existing hash).
+ """
+ return cms.cms_hash_token(token_id)
+
+ def get_token(self, token_id):
+ return self.driver.get_token(self._unique_id(token_id))
+
+ def create_token(self, token_id, data):
+ data_copy = copy.deepcopy(data)
+ data_copy['id'] = self._unique_id(token_id)
+ return self.driver.create_token(self._unique_id(token_id), data_copy)
+
+ def delete_token(self, token_id):
+ return self.driver.delete_token(self._unique_id(token_id))
+
class Driver(object):
"""Interface description for a Token driver."""