Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add salt parameter to hash generation for sha256 plugins #631

Merged
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
laurent review
Aohzan committed Jun 10, 2024
commit ea8d3483917d1529c516bd490fb729e3de7a7824
6 changes: 0 additions & 6 deletions plugins/module_utils/user.py
Original file line number Diff line number Diff line change
@@ -190,8 +190,6 @@ def user_add(cursor, user, host, host_all, password, encrypted,
elif salt:
if plugin in ['caching_sha2_password', 'sha256_password']:
generated_hash_string = mysql_sha256_password_hash_hex(password=plugin_auth_string, salt=salt)
else:
module.fail_json(msg="salt not handled for %s authentication plugin" % plugin)
query_with_args = ("CREATE USER %s@%s IDENTIFIED WITH %s AS 0x" + generated_hash_string), (user, host, plugin)
else:
query_with_args = "CREATE USER %s@%s IDENTIFIED WITH %s BY %s", (user, host, plugin, plugin_auth_string)
@@ -358,8 +356,6 @@ def user_mod(cursor, user, host, host_all, password, encrypted,
if plugin in ['caching_sha2_password', 'sha256_password']:
if current_plugin[1] != mysql_sha256_password_hash(password=plugin_auth_string, salt=salt):
update = True
else:
module.fail_json(msg="salt not handled for %s authentication plugin" % plugin)
elif plugin_auth_string and current_plugin[1] != plugin_auth_string:
# this case can cause more updates than expected,
# as plugin can hash auth_string in any way it wants
@@ -377,8 +373,6 @@ def user_mod(cursor, user, host, host_all, password, encrypted,
elif salt:
if plugin in ['caching_sha2_password', 'sha256_password']:
generated_hash_string = mysql_sha256_password_hash_hex(password=plugin_auth_string, salt=salt)
else:
module.fail_json(msg="salt not handled for %s authentication plugin" % plugin)
query_with_args = ("ALTER USER %s@%s IDENTIFIED WITH %s AS 0x" + generated_hash_string), (user, host, plugin)
else:
query_with_args = "ALTER USER %s@%s IDENTIFIED WITH %s BY %s", (user, host, plugin, plugin_auth_string)
Original file line number Diff line number Diff line change
@@ -489,21 +489,9 @@
plugin_auth_string: '{{ test_plugin_auth_string }}'
salt: '{{ test_salt }}'
priv: '{{ test_default_priv }}'
register: result

- name: Plugin auth | Assert that plugin_auth_string and salt was successful
ansible.builtin.assert:
that:
- result is succeeded

- name: Plugin auth | Connect with user and password
ansible.builtin.command: "{{ mysql_command }} -u {{ test_user_name }} -p{{ test_plugin_auth_string }} -e \"SELECT 1\""
register: result

- name: Plugin auth | Assert that connection was successful
ansible.builtin.assert:
that:
- result is succeeded

- name: Plugin auth | Alter user with same plugin auth and same salt
community.mysql.mysql_user:
@@ -515,11 +503,7 @@
salt: '{{ test_salt }}'
priv: '{{ test_default_priv }}'
register: result

- name: Plugin auth | Assert that plugin_auth_string and salt doesn't trigger change
ansible.builtin.assert:
that:
- result is not changed
failed_when: result is not changed

- name: cleanup user
ansible.builtin.include_tasks: utils/remove_user.yml