parent
dda3a303d2
commit
cc44c1a981
2 changed files with 26 additions and 2 deletions
|
|
@ -18,7 +18,7 @@ from builtins import range, bytes
|
||||||
|
|
||||||
from octoprint.settings import settings
|
from octoprint.settings import settings
|
||||||
|
|
||||||
from octoprint.util import atomic_write
|
from octoprint.util import atomic_write, to_str
|
||||||
|
|
||||||
class UserManager(object):
|
class UserManager(object):
|
||||||
valid_roles = ["user", "admin"]
|
valid_roles = ["user", "admin"]
|
||||||
|
|
@ -114,7 +114,7 @@ class UserManager(object):
|
||||||
settings().set(["accessControl", "salt"], salt)
|
settings().set(["accessControl", "salt"], salt)
|
||||||
settings().save()
|
settings().save()
|
||||||
|
|
||||||
return hashlib.sha512(password + salt).hexdigest()
|
return hashlib.sha512(to_str(password, encoding="utf-8", errors="replace") + to_str(salt)).hexdigest()
|
||||||
|
|
||||||
def checkPassword(self, username, password):
|
def checkPassword(self, username, password):
|
||||||
user = self.findUser(username)
|
user = self.findUser(username)
|
||||||
|
|
|
||||||
24
tests/users/test_usermanager.py
Normal file
24
tests/users/test_usermanager.py
Normal file
|
|
@ -0,0 +1,24 @@
|
||||||
|
# coding=utf-8
|
||||||
|
"""
|
||||||
|
Unit tests for octoprint.users.UserManager
|
||||||
|
"""
|
||||||
|
|
||||||
|
__license__ = 'GNU Affero General Public License http://www.gnu.org/licenses/agpl.html'
|
||||||
|
__copyright__ = "Copyright (C) 2017 The OctoPrint Project - Released under terms of the AGPLv3 License"
|
||||||
|
|
||||||
|
import unittest
|
||||||
|
import ddt
|
||||||
|
|
||||||
|
import octoprint.users
|
||||||
|
|
||||||
|
@ddt.ddt
|
||||||
|
class UserManagerTest(unittest.TestCase):
|
||||||
|
|
||||||
|
def test_createPasswordHash_nonascii(self):
|
||||||
|
"""Test for issue #1891"""
|
||||||
|
|
||||||
|
password = u"password with ümläutß"
|
||||||
|
salt = "abc"
|
||||||
|
|
||||||
|
# should not throw an exception
|
||||||
|
octoprint.users.UserManager.createPasswordHash(password, salt=salt)
|
||||||
Loading…
Reference in a new issue