Skip to content
Snippets Groups Projects
Commit d6a8a0ee authored by Florian Spreckelsen's avatar Florian Spreckelsen
Browse files

FIX: Add check for minimum password length

parent cc49e32b
No related branches found
No related tags found
1 merge request!37ENH: add function that generates passwords
Pipeline #17249 passed
...@@ -59,7 +59,8 @@ def set_server_property(key, value): ...@@ -59,7 +59,8 @@ def set_server_property(key, value):
con._form_data_request(method="POST", path="_server_properties", con._form_data_request(method="POST", path="_server_properties",
params={key: value}).read() params={key: value}).read()
except EntityDoesNotExistError: except EntityDoesNotExistError:
raise ServerConfigurationException("Debug mode in server is probably disabled.") from None raise ServerConfigurationException(
"Debug mode in server is probably disabled.") from None
def get_server_properties(): def get_server_properties():
...@@ -74,9 +75,11 @@ def get_server_properties(): ...@@ -74,9 +75,11 @@ def get_server_properties():
""" """
con = get_connection() con = get_connection()
try: try:
body = con._http_request(method="GET", path="_server_properties").response body = con._http_request(
method="GET", path="_server_properties").response
except EntityDoesNotExistError: except EntityDoesNotExistError:
raise ServerConfigurationException("Debug mode in server is probably disabled.") from None raise ServerConfigurationException(
"Debug mode in server is probably disabled.") from None
xml = etree.parse(body) xml = etree.parse(body)
props = dict() props = dict()
...@@ -112,7 +115,27 @@ def get_server_property(key): ...@@ -112,7 +115,27 @@ def get_server_property(key):
def generate_password(length: int): def generate_password(length: int):
""" creates a random password that fulfills the security requirements """ """Create a random password that fulfills the security requirements
Parameters
----------
length : int
Length of the generated password. Has to be greater than 7.
Returns
-------
password : string
Generated random password of the given length
Raises
------
ValueError:
If the length is less than 8.
"""
minimum_password_length = 8
if length < minimum_password_length:
raise ValueError("CaosDB passwords have to be at least {} characters.".format(
minimum_password_length))
sample_letters = string.ascii_letters + string.digits + "!#$%*+-/:;?_" sample_letters = string.ascii_letters + string.digits + "!#$%*+-/:;?_"
password = ''.join((random.choice(sample_letters) for i in range(length))) password = ''.join((random.choice(sample_letters) for i in range(length)))
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment