summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--keystone/common/utils.py5
-rw-r--r--tests/test_import_legacy.py21
2 files changed, 22 insertions, 4 deletions
diff --git a/keystone/common/utils.py b/keystone/common/utils.py
index 9c52b93f..b5269bed 100644
--- a/keystone/common/utils.py
+++ b/keystone/common/utils.py
@@ -143,7 +143,10 @@ class Ec2Signer(object):
def hash_password(password):
"""Hash a password. Hard."""
- h = passlib.hash.sha512_crypt.encrypt(password.encode('utf-8'),
+ password_utf8 = password.encode('utf-8')
+ if passlib.hash.sha512_crypt.identify(password_utf8):
+ return password_utf8
+ h = passlib.hash.sha512_crypt.encrypt(password_utf8,
rounds=CONF.crypt_strength)
return h
diff --git a/tests/test_import_legacy.py b/tests/test_import_legacy.py
index 05517985..2db34cb8 100644
--- a/tests/test_import_legacy.py
+++ b/tests/test_import_legacy.py
@@ -44,21 +44,36 @@ class ImportLegacy(test.TestCase):
migration = legacy.LegacyMigration('sqlite:///%s' % db_path)
migration.migrate_all()
- user_ref = self.identity_api.get_user('1')
+ admin_id = '1'
+ user_ref = self.identity_api.get_user(admin_id)
self.assertEquals(user_ref['name'], 'admin')
+ # check password hashing
+ user_ref, tenant_ref, metadata_ref = self.identity_api.authenticate(
+ user_id=admin_id, password='secrete')
+
def test_import_diablo(self):
db_path = self.setup_old_database('legacy_diablo.sqlite')
migration = legacy.LegacyMigration('sqlite:///%s' % db_path)
migration.migrate_all()
- user_ref = self.identity_api.get_user('1')
+ admin_id = '1'
+ user_ref = self.identity_api.get_user(admin_id)
self.assertEquals(user_ref['name'], 'admin')
+ # check password hashing
+ user_ref, tenant_ref, metadata_ref = self.identity_api.authenticate(
+ user_id=admin_id, password='secrete')
+
def test_import_essex(self):
db_path = self.setup_old_database('legacy_essex.sqlite')
migration = legacy.LegacyMigration('sqlite:///%s' % db_path)
migration.migrate_all()
- user_ref = self.identity_api.get_user('c93b19ea3fa94484824213db8ac0afce')
+ admin_id = 'c93b19ea3fa94484824213db8ac0afce'
+ user_ref = self.identity_api.get_user(admin_id)
self.assertEquals(user_ref['name'], 'admin')
+
+ # check password hashing
+ user_ref, tenant_ref, metadata_ref = self.identity_api.authenticate(
+ user_id=admin_id, password='secrete')