Report generated on 03-Jan-2024 at 12:06:45 by pytest-html v3.1.1
Packages | {"pluggy": "0.13.0", "pytest": "7.1.2"} |
Platform | Linux-6.2.0-39-generic-x86_64-with-glibc2.35 |
Plugins | {"html": "3.1.1", "metadata": "2.0.4", "testinfra": "5.0.0"} |
Python | 3.10.12 |
24 tests ran in 1826.13 seconds.
(Un)check the boxes to filter the results.
15 passed, 0 skipped, 9 failed, 0 errors, 0 expected failures, 0 unexpected passesTests | Failed | Success | XFail | Error |
---|---|---|---|---|
test_cluster/test_integrity_sync/test_integrity_sync.py | 0 | 4 | 0 | 0 |
test_cluster/test_ruleset_sync_status/test_ruleset_sync_status.py | 0 | 1 | 0 | 0 |
test_jwt_invalidation/test_change_rbac_mode.py | 2 | 2 | 0 | 0 |
test_jwt_invalidation/test_change_security_resources.py | 2 | 2 | 0 | 0 |
test_jwt_invalidation/test_disconnected_nodes.py | 0 | 1 | 0 | 0 |
test_jwt_invalidation/test_revoke_endpoint.py | 3 | 3 | 0 | 0 |
test_jwt_invalidation/test_update_password.py | 2 | 2 | 0 | 0 |
Result | Time | Test | Description | Duration | Markers | Links | Tier |
---|---|---|---|---|---|---|---|
No results found. Try to check the filters | |||||||
Failed | 2024-01-03 11:06:45.135726 | test_jwt_invalidation/test_change_rbac_mode.py::test_change_rbac_mode_with_endpoint[login_endpoint1] | Check that all tokens are revoked when changing RBAC mode with the security endpoint. | 1.42 | agentless_cluster_env | Test arguments wazuh-worker2_cluster.log wazuh-master_cluster.log wazuh-worker1_cluster.log | |
Test function detailsExtended SummaryParametersself = <wazuh_testing.tools.system.HostManager object at 0x7ffbd91330a0>, host = 'wazuh-master', user = 'wazuh-wui', password = 'wazuh-wui', auth_context = {'username': 'elastic'}, port = 55000, check = False def get_api_token(self, host, user='wazuh', password='wazuh', auth_context=None, port=55000, check=False): """Return an API token for the specified user. Args: host (str): Hostname. user (str, optional): API username. Default `wazuh` password (str, optional): API password. Default `wazuh` auth_context (dict, optional): Authorization context body. Default `None` port (int, optional): API port. Default `55000` check (bool, optional): Ansible check mode("Dry Run"), by default it is enabled so no changes will be applied. Default `False` Returns: API token (str): Usable API token. """ login_endpoint = '/security/user/authenticate' login_method = 'POST' login_body = '' if auth_context is not None: login_endpoint = '/security/user/authenticate/run_as' login_body = 'body="{}"'.format(json.dumps(auth_context).replace('"', '\\"').replace(' ', '')) try: token_response = self.get_host(host).ansible('uri', f"url=https://localhost:{port}{login_endpoint} " f"user={user} password={password} " f"method={login_method} {login_body} validate_certs=no " f"force_basic_auth=yes", check=check) print(f"url=https://localhost:{port}{login_endpoint} " f"user={user} password={password} " f"method={login_method} {login_body} validate_certs=no " f"force_basic_auth=yes", check) print(token_response) > return token_response['json']['data']['token'] E KeyError: 'json' /usr/local/lib/python3.10/dist-packages/wazuh_testing/tools/system.py:233: KeyError During handling of the above exception, another exception occurred: login_endpoint = {'auth_context': {'username': 'elastic'}, 'password': 'wazuh-wui', 'user': 'wazuh-wui'}, set_default_api_conf = None, restore_default_security_settings = None @pytest.mark.parametrize('login_endpoint', [ # User-roles based login {}, # Auth context login {'user': 'wazuh-wui', 'password': 'wazuh-wui', 'auth_context': {"username": "elastic"}} ]) def test_change_rbac_mode_with_endpoint(login_endpoint, set_default_api_conf, restore_default_security_settings): """Check that all tokens are revoked when changing RBAC mode with the security endpoint.""" # Get valid tokens > tokens = {host: host_manager.get_api_token(host, **login_endpoint) for host in test_hosts} test_jwt_invalidation/test_change_rbac_mode.py:43: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ test_jwt_invalidation/test_change_rbac_mode.py:43: in <dictcomp> tokens = {host: host_manager.get_api_token(host, **login_endpoint) for host in test_hosts} _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <wazuh_testing.tools.system.HostManager object at 0x7ffbd91330a0>, host = 'wazuh-master', user = 'wazuh-wui', password = 'wazuh-wui', auth_context = {'username': 'elastic'}, port = 55000, check = False def get_api_token(self, host, user='wazuh', password='wazuh', auth_context=None, port=55000, check=False): """Return an API token for the specified user. Args: host (str): Hostname. user (str, optional): API username. Default `wazuh` password (str, optional): API password. Default `wazuh` auth_context (dict, optional): Authorization context body. Default `None` port (int, optional): API port. Default `55000` check (bool, optional): Ansible check mode("Dry Run"), by default it is enabled so no changes will be applied. Default `False` Returns: API token (str): Usable API token. """ login_endpoint = '/security/user/authenticate' login_method = 'POST' login_body = '' if auth_context is not None: login_endpoint = '/security/user/authenticate/run_as' login_body = 'body="{}"'.format(json.dumps(auth_context).replace('"', '\\"').replace(' ', '')) try: token_response = self.get_host(host).ansible('uri', f"url=https://localhost:{port}{login_endpoint} " f"user={user} password={password} " f"method={login_method} {login_body} validate_certs=no " f"force_basic_auth=yes", check=check) print(f"url=https://localhost:{port}{login_endpoint} " f"user={user} password={password} " f"method={login_method} {login_body} validate_certs=no " f"force_basic_auth=yes", check) print(token_response) return token_response['json']['data']['token'] except KeyError: > raise KeyError(f'Failed to get token: {token_response}') E KeyError: "Failed to get token: {'changed': False, 'connection': 'close', 'content_length': '65', 'content_type': 'application/problem+json; charset=utf-8', 'date': 'Wed, 03 Jan 2024 10:52:27 GMT', 'elapsed': 0, 'msg': 'Status code was 400 and not [200]: HTTP Error 400: Bad Request', 'redirected': False, 'status': 400, 'url': 'https://localhost:55000/security/user/authenticate/run_as'}" /usr/local/lib/python3.10/dist-packages/wazuh_testing/tools/system.py:235: KeyError ------------------------------Captured stdout call------------------------------ url=https://localhost:55000/security/user/authenticate/run_as user=wazuh-wui password=wazuh-wui method=POST body="{\"username\":\"elastic\"}" validate_certs=no force_basic_auth=yes False {'changed': False, 'connection': 'close', 'content_length': '65', 'content_type': 'application/problem+json; charset=utf-8', 'date': 'Wed, 03 Jan 2024 10:52:27 GMT', 'elapsed': 0, 'msg': 'Status code was 400 and not [200]: HTTP Error 400: Bad Request', 'redirected': False, 'status': 400, 'url': 'https://localhost:55000/security/user/authenticate/run_as'} | |||||||
Failed | 2024-01-03 11:06:45.138973 | test_jwt_invalidation/test_change_rbac_mode.py::test_change_rbac_mode_manually[login_endpoint1] | Check that all tokens are revoked when changing RBAC mode manually in the security.yaml . | 65.94 | agentless_cluster_env | Test arguments wazuh-worker2_cluster.log wazuh-master_cluster.log wazuh-worker1_cluster.log | |
Test function detailsExtended SummaryParametersself = <wazuh_testing.tools.system.HostManager object at 0x7ffbd91330a0>, host = 'wazuh-master', user = 'wazuh-wui', password = 'wazuh-wui', auth_context = {'username': 'elastic'}, port = 55000, check = False def get_api_token(self, host, user='wazuh', password='wazuh', auth_context=None, port=55000, check=False): """Return an API token for the specified user. Args: host (str): Hostname. user (str, optional): API username. Default `wazuh` password (str, optional): API password. Default `wazuh` auth_context (dict, optional): Authorization context body. Default `None` port (int, optional): API port. Default `55000` check (bool, optional): Ansible check mode("Dry Run"), by default it is enabled so no changes will be applied. Default `False` Returns: API token (str): Usable API token. """ login_endpoint = '/security/user/authenticate' login_method = 'POST' login_body = '' if auth_context is not None: login_endpoint = '/security/user/authenticate/run_as' login_body = 'body="{}"'.format(json.dumps(auth_context).replace('"', '\\"').replace(' ', '')) try: token_response = self.get_host(host).ansible('uri', f"url=https://localhost:{port}{login_endpoint} " f"user={user} password={password} " f"method={login_method} {login_body} validate_certs=no " f"force_basic_auth=yes", check=check) print(f"url=https://localhost:{port}{login_endpoint} " f"user={user} password={password} " f"method={login_method} {login_body} validate_certs=no " f"force_basic_auth=yes", check) print(token_response) > return token_response['json']['data']['token'] E KeyError: 'json' /usr/local/lib/python3.10/dist-packages/wazuh_testing/tools/system.py:233: KeyError During handling of the above exception, another exception occurred: login_endpoint = {'auth_context': {'username': 'elastic'}, 'password': 'wazuh-wui', 'user': 'wazuh-wui'}, set_default_api_conf = None, restore_default_security_settings = None @pytest.mark.parametrize('login_endpoint', [ # Normal admin {}, # Auth context login {'user': 'wazuh-wui', 'password': 'wazuh-wui', 'auth_context': {"username": "elastic"}} ]) def test_change_rbac_mode_manually(login_endpoint, set_default_api_conf, restore_default_security_settings): """Check that all tokens are revoked when changing RBAC mode manually in the security.yaml .""" # Get valid tokens > tokens = {host: host_manager.get_api_token(host, **login_endpoint) for host in test_hosts} test_jwt_invalidation/test_change_rbac_mode.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ test_jwt_invalidation/test_change_rbac_mode.py:70: in <dictcomp> tokens = {host: host_manager.get_api_token(host, **login_endpoint) for host in test_hosts} _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <wazuh_testing.tools.system.HostManager object at 0x7ffbd91330a0>, host = 'wazuh-master', user = 'wazuh-wui', password = 'wazuh-wui', auth_context = {'username': 'elastic'}, port = 55000, check = False def get_api_token(self, host, user='wazuh', password='wazuh', auth_context=None, port=55000, check=False): """Return an API token for the specified user. Args: host (str): Hostname. user (str, optional): API username. Default `wazuh` password (str, optional): API password. Default `wazuh` auth_context (dict, optional): Authorization context body. Default `None` port (int, optional): API port. Default `55000` check (bool, optional): Ansible check mode("Dry Run"), by default it is enabled so no changes will be applied. Default `False` Returns: API token (str): Usable API token. """ login_endpoint = '/security/user/authenticate' login_method = 'POST' login_body = '' if auth_context is not None: login_endpoint = '/security/user/authenticate/run_as' login_body = 'body="{}"'.format(json.dumps(auth_context).replace('"', '\\"').replace(' ', '')) try: token_response = self.get_host(host).ansible('uri', f"url=https://localhost:{port}{login_endpoint} " f"user={user} password={password} " f"method={login_method} {login_body} validate_certs=no " f"force_basic_auth=yes", check=check) print(f"url=https://localhost:{port}{login_endpoint} " f"user={user} password={password} " f"method={login_method} {login_body} validate_certs=no " f"force_basic_auth=yes", check) print(token_response) return token_response['json']['data']['token'] except KeyError: > raise KeyError(f'Failed to get token: {token_response}') E KeyError: "Failed to get token: {'changed': False, 'connection': 'close', 'content_length': '65', 'content_type': 'application/problem+json; charset=utf-8', 'date': 'Wed, 03 Jan 2024 10:53:11 GMT', 'elapsed': 0, 'msg': 'Status code was 400 and not [200]: HTTP Error 400: Bad Request', 'redirected': False, 'status': 400, 'url': 'https://localhost:55000/security/user/authenticate/run_as'}" /usr/local/lib/python3.10/dist-packages/wazuh_testing/tools/system.py:235: KeyError ------------------------------Captured stdout call------------------------------ url=https://localhost:55000/security/user/authenticate/run_as user=wazuh-wui password=wazuh-wui method=POST body="{\"username\":\"elastic\"}" validate_certs=no force_basic_auth=yes False {'changed': False, 'connection': 'close', 'content_length': '65', 'content_type': 'application/problem+json; charset=utf-8', 'date': 'Wed, 03 Jan 2024 10:53:11 GMT', 'elapsed': 0, 'msg': 'Status code was 400 and not [200]: HTTP Error 400: Bad Request', 'redirected': False, 'status': 400, 'url': 'https://localhost:55000/security/user/authenticate/run_as'} ----------------------------Captured stdout teardown---------------------------- url=https://localhost:55000/security/user/authenticate user=wazuh password=wazuh method=POST validate_certs=no force_basic_auth=yes False {'cache_control': 'no-cache, no-store, must-revalidate, max-age=0', 'changed': False, 'connection': 'close', 'content_length': '433', 'content_security_policy': 'none', 'content_type': 'application/json; charset=utf-8', 'cookies': {}, 'cookies_string': '', 'date': 'Wed, 03 Jan 2024 10:53:12 GMT', 'elapsed': 0, 'expires': '0', 'json': {'data': {'token': 'eyJhbGciOiJFUzUxMiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJ3YXp1aCIsImF1ZCI6IldhenVoIEFQSSBSRVNUIiwibmJmIjoxNzA0Mjc5MTkyLCJleHAiOjE3MDQyODAwOTIsInN1YiI6IndhenVoIiwicnVuX2FzIjpmYWxzZSwicmJhY19yb2xlcyI6WzFdLCJyYmFjX21vZGUiOiJibGFjayJ9.AOY7IU3LCv6azWUIGI1vCcdKBky-B_EtobDuwGz0HbrIVCKbSBswaSDF2oNWuVN8KcoYV7Xhhftj50JX5RXGb2lQAHlaLfQvZ_ERb-NttMbt9h5njPLkNXyiIC1dWoci048HFTX9KZlXe2yAuYNBMaXiroXH_HG2J_peF7dScNOOJhqe'}, 'error': 0}, 'msg': 'OK (433 bytes)', 'pragma': 'no-cache', 'redirected': False, 'referrer_policy': 'no-referrer, strict-origin-when-cross-origin', 'status': 200, 'strict_transport_security': 'max-age=63072000; includeSubdomains', 'url': 'https://localhost:55000/security/user/authenticate', 'x_content_type_options': 'nosniff', 'x_frame_options': 'DENY', 'x_xss_protection': '1; mode=block'} | |||||||
Failed | 2024-01-03 11:06:45.142302 | test_jwt_invalidation/test_change_security_resources.py::test_change_user_policy_and_role[wazuh-master-wazuh-worker1-login_endpoint1] | Test that the obtained token is invalid after changing a role or policy related to the user. | 1.47 | agentless_cluster_env | Test arguments wazuh-worker2_cluster.log wazuh-master_cluster.log wazuh-worker1_cluster.log | |
Test function detailsExtended SummaryParametersParameter(name='node1', type='str', desc=['Node from the cluster.']) Parameter(name='node2', type='str', desc=['Node from the cluster.']) self = <wazuh_testing.tools.system.HostManager object at 0x7ffbd9133940>, host = 'wazuh-master', user = 'testing_user', password = 'Testing1*', auth_context = {'username': 'testing'}, port = 55000, check = False def get_api_token(self, host, user='wazuh', password='wazuh', auth_context=None, port=55000, check=False): """Return an API token for the specified user. Args: host (str): Hostname. user (str, optional): API username. Default `wazuh` password (str, optional): API password. Default `wazuh` auth_context (dict, optional): Authorization context body. Default `None` port (int, optional): API port. Default `55000` check (bool, optional): Ansible check mode("Dry Run"), by default it is enabled so no changes will be applied. Default `False` Returns: API token (str): Usable API token. """ login_endpoint = '/security/user/authenticate' login_method = 'POST' login_body = '' if auth_context is not None: login_endpoint = '/security/user/authenticate/run_as' login_body = 'body="{}"'.format(json.dumps(auth_context).replace('"', '\\"').replace(' ', '')) try: token_response = self.get_host(host).ansible('uri', f"url=https://localhost:{port}{login_endpoint} " f"user={user} password={password} " f"method={login_method} {login_body} validate_certs=no " f"force_basic_auth=yes", check=check) print(f"url=https://localhost:{port}{login_endpoint} " f"user={user} password={password} " f"method={login_method} {login_body} validate_certs=no " f"force_basic_auth=yes", check) print(token_response) > return token_response['json']['data']['token'] E KeyError: 'json' /usr/local/lib/python3.10/dist-packages/wazuh_testing/tools/system.py:233: KeyError During handling of the above exception, another exception occurred: login_endpoint = {'auth_context': {'username': 'testing'}}, node1 = 'wazuh-master', node2 = 'wazuh-worker1', set_default_api_conf = None, create_testing_api_user = None, create_security_resources = None set_role_to_user = None @pytest.mark.parametrize('login_endpoint', [ # User-roles based login {}, # Auth context login {'auth_context': {"username": "testing"}} ]) @pytest.mark.parametrize('node1, node2', [ (test_hosts[0], test_hosts[1]), (test_hosts[1], test_hosts[2]) ]) def test_change_user_policy_and_role(login_endpoint, node1, node2, set_default_api_conf, create_testing_api_user, create_security_resources, set_role_to_user): """Test that the obtained token is invalid after changing a role or policy related to the user. Parameters ---------- node1 : str Node from the cluster. node2 : str Node from the cluster. """ def check_revoked_token(node, current_token): # Check that the token was revoked resp = host_manager.make_api_call(node, endpoint='/agents', token=current_token) assert resp['status'] == 401, f'Token was not revoked: {resp}' # Get token with testing user > token = host_manager.get_api_token(node1, user=test_user, password=test_passw, **login_endpoint) test_jwt_invalidation/test_change_security_resources.py:68: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <wazuh_testing.tools.system.HostManager object at 0x7ffbd9133940>, host = 'wazuh-master', user = 'testing_user', password = 'Testing1*', auth_context = {'username': 'testing'}, port = 55000, check = False def get_api_token(self, host, user='wazuh', password='wazuh', auth_context=None, port=55000, check=False): """Return an API token for the specified user. Args: host (str): Hostname. user (str, optional): API username. Default `wazuh` password (str, optional): API password. Default `wazuh` auth_context (dict, optional): Authorization context body. Default `None` port (int, optional): API port. Default `55000` check (bool, optional): Ansible check mode("Dry Run"), by default it is enabled so no changes will be applied. Default `False` Returns: API token (str): Usable API token. """ login_endpoint = '/security/user/authenticate' login_method = 'POST' login_body = '' if auth_context is not None: login_endpoint = '/security/user/authenticate/run_as' login_body = 'body="{}"'.format(json.dumps(auth_context).replace('"', '\\"').replace(' ', '')) try: token_response = self.get_host(host).ansible('uri', f"url=https://localhost:{port}{login_endpoint} " f"user={user} password={password} " f"method={login_method} {login_body} validate_certs=no " f"force_basic_auth=yes", check=check) print(f"url=https://localhost:{port}{login_endpoint} " f"user={user} password={password} " f"method={login_method} {login_body} validate_certs=no " f"force_basic_auth=yes", check) print(token_response) return token_response['json']['data']['token'] except KeyError: > raise KeyError(f'Failed to get token: {token_response}') E KeyError: "Failed to get token: {'changed': False, 'connection': 'close', 'content_length': '65', 'content_type': 'application/problem+json; charset=utf-8', 'date': 'Wed, 03 Jan 2024 10:55:56 GMT', 'elapsed': 0, 'msg': 'Status code was 400 and not [200]: HTTP Error 400: Bad Request', 'redirected': False, 'status': 400, 'url': 'https://localhost:55000/security/user/authenticate/run_as'}" /usr/local/lib/python3.10/dist-packages/wazuh_testing/tools/system.py:235: KeyError ------------------------------Captured stdout call------------------------------ url=https://localhost:55000/security/user/authenticate/run_as user=testing_user password=Testing1* method=POST body="{\"username\":\"testing\"}" validate_certs=no force_basic_auth=yes False {'changed': False, 'connection': 'close', 'content_length': '65', 'content_type': 'application/problem+json; charset=utf-8', 'date': 'Wed, 03 Jan 2024 10:55:56 GMT', 'elapsed': 0, 'msg': 'Status code was 400 and not [200]: HTTP Error 400: Bad Request', 'redirected': False, 'status': 400, 'url': 'https://localhost:55000/security/user/authenticate/run_as'} | |||||||
Failed | 2024-01-03 11:06:45.146287 | test_jwt_invalidation/test_change_security_resources.py::test_change_user_policy_and_role[wazuh-worker1-wazuh-worker2-login_endpoint1] | Test that the obtained token is invalid after changing a role or policy related to the user. | 68.25 | agentless_cluster_env | Test arguments wazuh-worker2_cluster.log wazuh-master_cluster.log wazuh-worker1_cluster.log | |
Test function detailsExtended SummaryParametersParameter(name='node1', type='str', desc=['Node from the cluster.']) Parameter(name='node2', type='str', desc=['Node from the cluster.']) self = <wazuh_testing.tools.system.HostManager object at 0x7ffbd9133940>, host = 'wazuh-worker1', user = 'testing_user', password = 'Testing1*', auth_context = {'username': 'testing'}, port = 55000, check = False def get_api_token(self, host, user='wazuh', password='wazuh', auth_context=None, port=55000, check=False): """Return an API token for the specified user. Args: host (str): Hostname. user (str, optional): API username. Default `wazuh` password (str, optional): API password. Default `wazuh` auth_context (dict, optional): Authorization context body. Default `None` port (int, optional): API port. Default `55000` check (bool, optional): Ansible check mode("Dry Run"), by default it is enabled so no changes will be applied. Default `False` Returns: API token (str): Usable API token. """ login_endpoint = '/security/user/authenticate' login_method = 'POST' login_body = '' if auth_context is not None: login_endpoint = '/security/user/authenticate/run_as' login_body = 'body="{}"'.format(json.dumps(auth_context).replace('"', '\\"').replace(' ', '')) try: token_response = self.get_host(host).ansible('uri', f"url=https://localhost:{port}{login_endpoint} " f"user={user} password={password} " f"method={login_method} {login_body} validate_certs=no " f"force_basic_auth=yes", check=check) print(f"url=https://localhost:{port}{login_endpoint} " f"user={user} password={password} " f"method={login_method} {login_body} validate_certs=no " f"force_basic_auth=yes", check) print(token_response) > return token_response['json']['data']['token'] E KeyError: 'json' /usr/local/lib/python3.10/dist-packages/wazuh_testing/tools/system.py:233: KeyError During handling of the above exception, another exception occurred: login_endpoint = {'auth_context': {'username': 'testing'}}, node1 = 'wazuh-worker1', node2 = 'wazuh-worker2', set_default_api_conf = None, create_testing_api_user = None, create_security_resources = None set_role_to_user = None @pytest.mark.parametrize('login_endpoint', [ # User-roles based login {}, # Auth context login {'auth_context': {"username": "testing"}} ]) @pytest.mark.parametrize('node1, node2', [ (test_hosts[0], test_hosts[1]), (test_hosts[1], test_hosts[2]) ]) def test_change_user_policy_and_role(login_endpoint, node1, node2, set_default_api_conf, create_testing_api_user, create_security_resources, set_role_to_user): """Test that the obtained token is invalid after changing a role or policy related to the user. Parameters ---------- node1 : str Node from the cluster. node2 : str Node from the cluster. """ def check_revoked_token(node, current_token): # Check that the token was revoked resp = host_manager.make_api_call(node, endpoint='/agents', token=current_token) assert resp['status'] == 401, f'Token was not revoked: {resp}' # Get token with testing user > token = host_manager.get_api_token(node1, user=test_user, password=test_passw, **login_endpoint) test_jwt_invalidation/test_change_security_resources.py:68: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <wazuh_testing.tools.system.HostManager object at 0x7ffbd9133940>, host = 'wazuh-worker1', user = 'testing_user', password = 'Testing1*', auth_context = {'username': 'testing'}, port = 55000, check = False def get_api_token(self, host, user='wazuh', password='wazuh', auth_context=None, port=55000, check=False): """Return an API token for the specified user. Args: host (str): Hostname. user (str, optional): API username. Default `wazuh` password (str, optional): API password. Default `wazuh` auth_context (dict, optional): Authorization context body. Default `None` port (int, optional): API port. Default `55000` check (bool, optional): Ansible check mode("Dry Run"), by default it is enabled so no changes will be applied. Default `False` Returns: API token (str): Usable API token. """ login_endpoint = '/security/user/authenticate' login_method = 'POST' login_body = '' if auth_context is not None: login_endpoint = '/security/user/authenticate/run_as' login_body = 'body="{}"'.format(json.dumps(auth_context).replace('"', '\\"').replace(' ', '')) try: token_response = self.get_host(host).ansible('uri', f"url=https://localhost:{port}{login_endpoint} " f"user={user} password={password} " f"method={login_method} {login_body} validate_certs=no " f"force_basic_auth=yes", check=check) print(f"url=https://localhost:{port}{login_endpoint} " f"user={user} password={password} " f"method={login_method} {login_body} validate_certs=no " f"force_basic_auth=yes", check) print(token_response) return token_response['json']['data']['token'] except KeyError: > raise KeyError(f'Failed to get token: {token_response}') E KeyError: "Failed to get token: {'changed': False, 'connection': 'close', 'content_length': '65', 'content_type': 'application/problem+json; charset=utf-8', 'date': 'Wed, 03 Jan 2024 10:56:13 GMT', 'elapsed': 0, 'msg': 'Status code was 400 and not [200]: HTTP Error 400: Bad Request', 'redirected': False, 'status': 400, 'url': 'https://localhost:55000/security/user/authenticate/run_as'}" /usr/local/lib/python3.10/dist-packages/wazuh_testing/tools/system.py:235: KeyError ------------------------------Captured stdout call------------------------------ url=https://localhost:55000/security/user/authenticate/run_as user=testing_user password=Testing1* method=POST body="{\"username\":\"testing\"}" validate_certs=no force_basic_auth=yes False {'changed': False, 'connection': 'close', 'content_length': '65', 'content_type': 'application/problem+json; charset=utf-8', 'date': 'Wed, 03 Jan 2024 10:56:13 GMT', 'elapsed': 0, 'msg': 'Status code was 400 and not [200]: HTTP Error 400: Bad Request', 'redirected': False, 'status': 400, 'url': 'https://localhost:55000/security/user/authenticate/run_as'} ----------------------------Captured stdout teardown---------------------------- url=https://localhost:55000/security/user/authenticate user=wazuh password=wazuh method=POST validate_certs=no force_basic_auth=yes False {'cache_control': 'no-cache, no-store, must-revalidate, max-age=0', 'changed': False, 'connection': 'close', 'content_length': '433', 'content_security_policy': 'none', 'content_type': 'application/json; charset=utf-8', 'cookies': {}, 'cookies_string': '', 'date': 'Wed, 03 Jan 2024 10:56:14 GMT', 'elapsed': 0, 'expires': '0', 'json': {'data': {'token': 'eyJhbGciOiJFUzUxMiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJ3YXp1aCIsImF1ZCI6IldhenVoIEFQSSBSRVNUIiwibmJmIjoxNzA0Mjc5Mzc0LCJleHAiOjE3MDQyODAyNzQsInN1YiI6IndhenVoIiwicnVuX2FzIjpmYWxzZSwicmJhY19yb2xlcyI6WzFdLCJyYmFjX21vZGUiOiJibGFjayJ9.AagyXBFBMp_byHtRd_37gE57BSa-9G_D-exR35nbBWZAfy2XZzKuok9LuNTkEDSw-Aq_8dtx9HUDLXPJffEr_-3tAK_kPf64OhNWPuhzLNuPNZpkjFfsIpFiRepRKr1TfOOEdSIYL3uMZU2Xbx5Sjyqgb2y6X8hO5LBGZlOgzhEurJRs'}, 'error': 0}, 'msg': 'OK (433 bytes)', 'pragma': 'no-cache', 'redirected': False, 'referrer_policy': 'no-referrer, strict-origin-when-cross-origin', 'status': 200, 'strict_transport_security': 'max-age=63072000; includeSubdomains', 'url': 'https://localhost:55000/security/user/authenticate', 'x_content_type_options': 'nosniff', 'x_frame_options': 'DENY', 'x_xss_protection': '1; mode=block'} url=https://localhost:55000/security/user/authenticate user=wazuh password=wazuh method=POST validate_certs=no force_basic_auth=yes False {'cache_control': 'no-cache, no-store, must-revalidate, max-age=0', 'changed': False, 'connection': 'close', 'content_length': '433', 'content_security_policy': 'none', 'content_type': 'application/json; charset=utf-8', 'cookies': {}, 'cookies_string': '', 'date': 'Wed, 03 Jan 2024 10:56:20 GMT', 'elapsed': 0, 'expires': '0', 'json': {'data': {'token': 'eyJhbGciOiJFUzUxMiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJ3YXp1aCIsImF1ZCI6IldhenVoIEFQSSBSRVNUIiwibmJmIjoxNzA0Mjc5MzgwLCJleHAiOjE3MDQyODAyODAsInN1YiI6IndhenVoIiwicnVuX2FzIjpmYWxzZSwicmJhY19yb2xlcyI6WzFdLCJyYmFjX21vZGUiOiJibGFjayJ9.AUQ606KZ966MFqNUakbb08cW3vjL8OIfrMegkADOG-gCd6wxodw0tZVYihY1jhFvvBOFDJvXSAVxw9S2cdH4jd0lAWX61wsJhrkoZer_eftxQ4FM_7NER8ynjHZb4xgQf1D8vjX9YSIvbe6jxp2lP2rS5bW1imfGPYYgTClilbV4d30x'}, 'error': 0}, 'msg': 'OK (433 bytes)', 'pragma': 'no-cache', 'redirected': False, 'referrer_policy': 'no-referrer, strict-origin-when-cross-origin', 'status': 200, 'strict_transport_security': 'max-age=63072000; includeSubdomains', 'url': 'https://localhost:55000/security/user/authenticate', 'x_content_type_options': 'nosniff', 'x_frame_options': 'DENY', 'x_xss_protection': '1; mode=block'} | |||||||
Failed | 2024-01-03 11:06:45.148729 | test_jwt_invalidation/test_revoke_endpoint.py::test_revoke_all_tokens_with_api[wazuh-master-login_endpoint1] | Test that every token gets revoked after making an API call to 'PUT /security/user/revoke'. | 1.50 | agentless_cluster_env | Test arguments wazuh-worker2_cluster.log wazuh-master_cluster.log wazuh-worker1_cluster.log | |
Test function detailsExtended SummaryParametersParameter(name='host', type='str', desc=['Host where the test will be run.']) self = <wazuh_testing.tools.system.HostManager object at 0x7ffbd916c040>, host = 'wazuh-master', user = 'wazuh-wui', password = 'wazuh-wui', auth_context = {'username': 'elastic'}, port = 55000, check = False def get_api_token(self, host, user='wazuh', password='wazuh', auth_context=None, port=55000, check=False): """Return an API token for the specified user. Args: host (str): Hostname. user (str, optional): API username. Default `wazuh` password (str, optional): API password. Default `wazuh` auth_context (dict, optional): Authorization context body. Default `None` port (int, optional): API port. Default `55000` check (bool, optional): Ansible check mode("Dry Run"), by default it is enabled so no changes will be applied. Default `False` Returns: API token (str): Usable API token. """ login_endpoint = '/security/user/authenticate' login_method = 'POST' login_body = '' if auth_context is not None: login_endpoint = '/security/user/authenticate/run_as' login_body = 'body="{}"'.format(json.dumps(auth_context).replace('"', '\\"').replace(' ', '')) try: token_response = self.get_host(host).ansible('uri', f"url=https://localhost:{port}{login_endpoint} " f"user={user} password={password} " f"method={login_method} {login_body} validate_certs=no " f"force_basic_auth=yes", check=check) print(f"url=https://localhost:{port}{login_endpoint} " f"user={user} password={password} " f"method={login_method} {login_body} validate_certs=no " f"force_basic_auth=yes", check) print(token_response) > return token_response['json']['data']['token'] E KeyError: 'json' /usr/local/lib/python3.10/dist-packages/wazuh_testing/tools/system.py:233: KeyError During handling of the above exception, another exception occurred: login_endpoint = {'auth_context': {'username': 'elastic'}, 'password': 'wazuh-wui', 'user': 'wazuh-wui'}, revoke_host = 'wazuh-master', set_default_api_conf = None @pytest.mark.parametrize('login_endpoint', [ # User-roles based login {}, # Auth context login {'user': 'wazuh-wui', 'password': 'wazuh-wui', 'auth_context': {"username": "elastic"}} ]) @pytest.mark.parametrize('revoke_host', test_hosts) def test_revoke_all_tokens_with_api(login_endpoint, revoke_host, set_default_api_conf): """Test that every token gets revoked after making an API call to 'PUT /security/user/revoke'. Parameters ---------- host : str Host where the test will be run. """ def default_api_call(token_dikt, expected_code=200): for host, token in token_dikt.items(): response = host_manager.make_api_call(host, endpoint='/agents', token=token) assert response['status'] == expected_code, f'API call failed. Response: {response}' # Get valid tokens > tokens = {host: host_manager.get_api_token(host, **login_endpoint) for host in test_hosts} test_jwt_invalidation/test_revoke_endpoint.py:43: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ test_jwt_invalidation/test_revoke_endpoint.py:43: in <dictcomp> tokens = {host: host_manager.get_api_token(host, **login_endpoint) for host in test_hosts} _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <wazuh_testing.tools.system.HostManager object at 0x7ffbd916c040>, host = 'wazuh-master', user = 'wazuh-wui', password = 'wazuh-wui', auth_context = {'username': 'elastic'}, port = 55000, check = False def get_api_token(self, host, user='wazuh', password='wazuh', auth_context=None, port=55000, check=False): """Return an API token for the specified user. Args: host (str): Hostname. user (str, optional): API username. Default `wazuh` password (str, optional): API password. Default `wazuh` auth_context (dict, optional): Authorization context body. Default `None` port (int, optional): API port. Default `55000` check (bool, optional): Ansible check mode("Dry Run"), by default it is enabled so no changes will be applied. Default `False` Returns: API token (str): Usable API token. """ login_endpoint = '/security/user/authenticate' login_method = 'POST' login_body = '' if auth_context is not None: login_endpoint = '/security/user/authenticate/run_as' login_body = 'body="{}"'.format(json.dumps(auth_context).replace('"', '\\"').replace(' ', '')) try: token_response = self.get_host(host).ansible('uri', f"url=https://localhost:{port}{login_endpoint} " f"user={user} password={password} " f"method={login_method} {login_body} validate_certs=no " f"force_basic_auth=yes", check=check) print(f"url=https://localhost:{port}{login_endpoint} " f"user={user} password={password} " f"method={login_method} {login_body} validate_certs=no " f"force_basic_auth=yes", check) print(token_response) return token_response['json']['data']['token'] except KeyError: > raise KeyError(f'Failed to get token: {token_response}') E KeyError: "Failed to get token: {'changed': False, 'connection': 'close', 'content_length': '65', 'content_type': 'application/problem+json; charset=utf-8', 'date': 'Wed, 03 Jan 2024 11:03:06 GMT', 'elapsed': 0, 'msg': 'Status code was 400 and not [200]: HTTP Error 400: Bad Request', 'redirected': False, 'status': 400, 'url': 'https://localhost:55000/security/user/authenticate/run_as'}" /usr/local/lib/python3.10/dist-packages/wazuh_testing/tools/system.py:235: KeyError ------------------------------Captured stdout call------------------------------ url=https://localhost:55000/security/user/authenticate/run_as user=wazuh-wui password=wazuh-wui method=POST body="{\"username\":\"elastic\"}" validate_certs=no force_basic_auth=yes False {'changed': False, 'connection': 'close', 'content_length': '65', 'content_type': 'application/problem+json; charset=utf-8', 'date': 'Wed, 03 Jan 2024 11:03:06 GMT', 'elapsed': 0, 'msg': 'Status code was 400 and not [200]: HTTP Error 400: Bad Request', 'redirected': False, 'status': 400, 'url': 'https://localhost:55000/security/user/authenticate/run_as'} | |||||||
Failed | 2024-01-03 11:06:45.151828 | test_jwt_invalidation/test_revoke_endpoint.py::test_revoke_all_tokens_with_api[wazuh-worker1-login_endpoint1] | Test that every token gets revoked after making an API call to 'PUT /security/user/revoke'. | 1.85 | agentless_cluster_env | Test arguments wazuh-worker2_cluster.log wazuh-master_cluster.log wazuh-worker1_cluster.log | |
Test function detailsExtended SummaryParametersParameter(name='host', type='str', desc=['Host where the test will be run.']) self = <wazuh_testing.tools.system.HostManager object at 0x7ffbd916c040>, host = 'wazuh-master', user = 'wazuh-wui', password = 'wazuh-wui', auth_context = {'username': 'elastic'}, port = 55000, check = False def get_api_token(self, host, user='wazuh', password='wazuh', auth_context=None, port=55000, check=False): """Return an API token for the specified user. Args: host (str): Hostname. user (str, optional): API username. Default `wazuh` password (str, optional): API password. Default `wazuh` auth_context (dict, optional): Authorization context body. Default `None` port (int, optional): API port. Default `55000` check (bool, optional): Ansible check mode("Dry Run"), by default it is enabled so no changes will be applied. Default `False` Returns: API token (str): Usable API token. """ login_endpoint = '/security/user/authenticate' login_method = 'POST' login_body = '' if auth_context is not None: login_endpoint = '/security/user/authenticate/run_as' login_body = 'body="{}"'.format(json.dumps(auth_context).replace('"', '\\"').replace(' ', '')) try: token_response = self.get_host(host).ansible('uri', f"url=https://localhost:{port}{login_endpoint} " f"user={user} password={password} " f"method={login_method} {login_body} validate_certs=no " f"force_basic_auth=yes", check=check) print(f"url=https://localhost:{port}{login_endpoint} " f"user={user} password={password} " f"method={login_method} {login_body} validate_certs=no " f"force_basic_auth=yes", check) print(token_response) > return token_response['json']['data']['token'] E KeyError: 'json' /usr/local/lib/python3.10/dist-packages/wazuh_testing/tools/system.py:233: KeyError During handling of the above exception, another exception occurred: login_endpoint = {'auth_context': {'username': 'elastic'}, 'password': 'wazuh-wui', 'user': 'wazuh-wui'}, revoke_host = 'wazuh-worker1', set_default_api_conf = None @pytest.mark.parametrize('login_endpoint', [ # User-roles based login {}, # Auth context login {'user': 'wazuh-wui', 'password': 'wazuh-wui', 'auth_context': {"username": "elastic"}} ]) @pytest.mark.parametrize('revoke_host', test_hosts) def test_revoke_all_tokens_with_api(login_endpoint, revoke_host, set_default_api_conf): """Test that every token gets revoked after making an API call to 'PUT /security/user/revoke'. Parameters ---------- host : str Host where the test will be run. """ def default_api_call(token_dikt, expected_code=200): for host, token in token_dikt.items(): response = host_manager.make_api_call(host, endpoint='/agents', token=token) assert response['status'] == expected_code, f'API call failed. Response: {response}' # Get valid tokens > tokens = {host: host_manager.get_api_token(host, **login_endpoint) for host in test_hosts} test_jwt_invalidation/test_revoke_endpoint.py:43: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ test_jwt_invalidation/test_revoke_endpoint.py:43: in <dictcomp> tokens = {host: host_manager.get_api_token(host, **login_endpoint) for host in test_hosts} _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <wazuh_testing.tools.system.HostManager object at 0x7ffbd916c040>, host = 'wazuh-master', user = 'wazuh-wui', password = 'wazuh-wui', auth_context = {'username': 'elastic'}, port = 55000, check = False def get_api_token(self, host, user='wazuh', password='wazuh', auth_context=None, port=55000, check=False): """Return an API token for the specified user. Args: host (str): Hostname. user (str, optional): API username. Default `wazuh` password (str, optional): API password. Default `wazuh` auth_context (dict, optional): Authorization context body. Default `None` port (int, optional): API port. Default `55000` check (bool, optional): Ansible check mode("Dry Run"), by default it is enabled so no changes will be applied. Default `False` Returns: API token (str): Usable API token. """ login_endpoint = '/security/user/authenticate' login_method = 'POST' login_body = '' if auth_context is not None: login_endpoint = '/security/user/authenticate/run_as' login_body = 'body="{}"'.format(json.dumps(auth_context).replace('"', '\\"').replace(' ', '')) try: token_response = self.get_host(host).ansible('uri', f"url=https://localhost:{port}{login_endpoint} " f"user={user} password={password} " f"method={login_method} {login_body} validate_certs=no " f"force_basic_auth=yes", check=check) print(f"url=https://localhost:{port}{login_endpoint} " f"user={user} password={password} " f"method={login_method} {login_body} validate_certs=no " f"force_basic_auth=yes", check) print(token_response) return token_response['json']['data']['token'] except KeyError: > raise KeyError(f'Failed to get token: {token_response}') E KeyError: "Failed to get token: {'changed': False, 'connection': 'close', 'content_length': '65', 'content_type': 'application/problem+json; charset=utf-8', 'date': 'Wed, 03 Jan 2024 11:03:24 GMT', 'elapsed': 0, 'msg': 'Status code was 400 and not [200]: HTTP Error 400: Bad Request', 'redirected': False, 'status': 400, 'url': 'https://localhost:55000/security/user/authenticate/run_as'}" /usr/local/lib/python3.10/dist-packages/wazuh_testing/tools/system.py:235: KeyError ------------------------------Captured stdout call------------------------------ url=https://localhost:55000/security/user/authenticate/run_as user=wazuh-wui password=wazuh-wui method=POST body="{\"username\":\"elastic\"}" validate_certs=no force_basic_auth=yes False {'changed': False, 'connection': 'close', 'content_length': '65', 'content_type': 'application/problem+json; charset=utf-8', 'date': 'Wed, 03 Jan 2024 11:03:24 GMT', 'elapsed': 0, 'msg': 'Status code was 400 and not [200]: HTTP Error 400: Bad Request', 'redirected': False, 'status': 400, 'url': 'https://localhost:55000/security/user/authenticate/run_as'} | |||||||
Failed | 2024-01-03 11:06:45.156300 | test_jwt_invalidation/test_revoke_endpoint.py::test_revoke_all_tokens_with_api[wazuh-worker2-login_endpoint1] | Test that every token gets revoked after making an API call to 'PUT /security/user/revoke'. | 60.79 | agentless_cluster_env | Test arguments wazuh-worker2_cluster.log wazuh-master_cluster.log wazuh-worker1_cluster.log | |
Test function detailsExtended SummaryParametersParameter(name='host', type='str', desc=['Host where the test will be run.']) self = <wazuh_testing.tools.system.HostManager object at 0x7ffbd916c040>, host = 'wazuh-master', user = 'wazuh-wui', password = 'wazuh-wui', auth_context = {'username': 'elastic'}, port = 55000, check = False def get_api_token(self, host, user='wazuh', password='wazuh', auth_context=None, port=55000, check=False): """Return an API token for the specified user. Args: host (str): Hostname. user (str, optional): API username. Default `wazuh` password (str, optional): API password. Default `wazuh` auth_context (dict, optional): Authorization context body. Default `None` port (int, optional): API port. Default `55000` check (bool, optional): Ansible check mode("Dry Run"), by default it is enabled so no changes will be applied. Default `False` Returns: API token (str): Usable API token. """ login_endpoint = '/security/user/authenticate' login_method = 'POST' login_body = '' if auth_context is not None: login_endpoint = '/security/user/authenticate/run_as' login_body = 'body="{}"'.format(json.dumps(auth_context).replace('"', '\\"').replace(' ', '')) try: token_response = self.get_host(host).ansible('uri', f"url=https://localhost:{port}{login_endpoint} " f"user={user} password={password} " f"method={login_method} {login_body} validate_certs=no " f"force_basic_auth=yes", check=check) print(f"url=https://localhost:{port}{login_endpoint} " f"user={user} password={password} " f"method={login_method} {login_body} validate_certs=no " f"force_basic_auth=yes", check) print(token_response) > return token_response['json']['data']['token'] E KeyError: 'json' /usr/local/lib/python3.10/dist-packages/wazuh_testing/tools/system.py:233: KeyError During handling of the above exception, another exception occurred: login_endpoint = {'auth_context': {'username': 'elastic'}, 'password': 'wazuh-wui', 'user': 'wazuh-wui'}, revoke_host = 'wazuh-worker2', set_default_api_conf = None @pytest.mark.parametrize('login_endpoint', [ # User-roles based login {}, # Auth context login {'user': 'wazuh-wui', 'password': 'wazuh-wui', 'auth_context': {"username": "elastic"}} ]) @pytest.mark.parametrize('revoke_host', test_hosts) def test_revoke_all_tokens_with_api(login_endpoint, revoke_host, set_default_api_conf): """Test that every token gets revoked after making an API call to 'PUT /security/user/revoke'. Parameters ---------- host : str Host where the test will be run. """ def default_api_call(token_dikt, expected_code=200): for host, token in token_dikt.items(): response = host_manager.make_api_call(host, endpoint='/agents', token=token) assert response['status'] == expected_code, f'API call failed. Response: {response}' # Get valid tokens > tokens = {host: host_manager.get_api_token(host, **login_endpoint) for host in test_hosts} test_jwt_invalidation/test_revoke_endpoint.py:43: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ test_jwt_invalidation/test_revoke_endpoint.py:43: in <dictcomp> tokens = {host: host_manager.get_api_token(host, **login_endpoint) for host in test_hosts} _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <wazuh_testing.tools.system.HostManager object at 0x7ffbd916c040>, host = 'wazuh-master', user = 'wazuh-wui', password = 'wazuh-wui', auth_context = {'username': 'elastic'}, port = 55000, check = False def get_api_token(self, host, user='wazuh', password='wazuh', auth_context=None, port=55000, check=False): """Return an API token for the specified user. Args: host (str): Hostname. user (str, optional): API username. Default `wazuh` password (str, optional): API password. Default `wazuh` auth_context (dict, optional): Authorization context body. Default `None` port (int, optional): API port. Default `55000` check (bool, optional): Ansible check mode("Dry Run"), by default it is enabled so no changes will be applied. Default `False` Returns: API token (str): Usable API token. """ login_endpoint = '/security/user/authenticate' login_method = 'POST' login_body = '' if auth_context is not None: login_endpoint = '/security/user/authenticate/run_as' login_body = 'body="{}"'.format(json.dumps(auth_context).replace('"', '\\"').replace(' ', '')) try: token_response = self.get_host(host).ansible('uri', f"url=https://localhost:{port}{login_endpoint} " f"user={user} password={password} " f"method={login_method} {login_body} validate_certs=no " f"force_basic_auth=yes", check=check) print(f"url=https://localhost:{port}{login_endpoint} " f"user={user} password={password} " f"method={login_method} {login_body} validate_certs=no " f"force_basic_auth=yes", check) print(token_response) return token_response['json']['data']['token'] except KeyError: > raise KeyError(f'Failed to get token: {token_response}') E KeyError: "Failed to get token: {'changed': False, 'connection': 'close', 'content_length': '65', 'content_type': 'application/problem+json; charset=utf-8', 'date': 'Wed, 03 Jan 2024 11:03:42 GMT', 'elapsed': 0, 'msg': 'Status code was 400 and not [200]: HTTP Error 400: Bad Request', 'redirected': False, 'status': 400, 'url': 'https://localhost:55000/security/user/authenticate/run_as'}" /usr/local/lib/python3.10/dist-packages/wazuh_testing/tools/system.py:235: KeyError ------------------------------Captured stdout call------------------------------ url=https://localhost:55000/security/user/authenticate/run_as user=wazuh-wui password=wazuh-wui method=POST body="{\"username\":\"elastic\"}" validate_certs=no force_basic_auth=yes False {'changed': False, 'connection': 'close', 'content_length': '65', 'content_type': 'application/problem+json; charset=utf-8', 'date': 'Wed, 03 Jan 2024 11:03:42 GMT', 'elapsed': 0, 'msg': 'Status code was 400 and not [200]: HTTP Error 400: Bad Request', 'redirected': False, 'status': 400, 'url': 'https://localhost:55000/security/user/authenticate/run_as'} | |||||||
Failed | 2024-01-03 11:06:45.160783 | test_jwt_invalidation/test_update_password.py::test_update_password[login_endpoint2-wazuh-master-Newpass2*-Newpass1*] | Test that the obtained token is invalid after updating the password from its user. | 1.55 | agentless_cluster_env | Test arguments wazuh-worker2_cluster.log wazuh-master_cluster.log wazuh-worker1_cluster.log | |
Test function detailsExtended SummaryParametersParameter(name='host', type='str', desc=['Host where the test will be run.']) Parameter(name='old_password', type='str', desc=['Password before updating.']) Parameter(name='new_password', type='str', desc=['New password to update to.']) self = <wazuh_testing.tools.system.HostManager object at 0x7ffbd916c2b0>, host = 'wazuh-master', user = 'testing_user', password = 'Newpass2*', auth_context = {'username': 'testing'}, port = 55000, check = False def get_api_token(self, host, user='wazuh', password='wazuh', auth_context=None, port=55000, check=False): """Return an API token for the specified user. Args: host (str): Hostname. user (str, optional): API username. Default `wazuh` password (str, optional): API password. Default `wazuh` auth_context (dict, optional): Authorization context body. Default `None` port (int, optional): API port. Default `55000` check (bool, optional): Ansible check mode("Dry Run"), by default it is enabled so no changes will be applied. Default `False` Returns: API token (str): Usable API token. """ login_endpoint = '/security/user/authenticate' login_method = 'POST' login_body = '' if auth_context is not None: login_endpoint = '/security/user/authenticate/run_as' login_body = 'body="{}"'.format(json.dumps(auth_context).replace('"', '\\"').replace(' ', '')) try: token_response = self.get_host(host).ansible('uri', f"url=https://localhost:{port}{login_endpoint} " f"user={user} password={password} " f"method={login_method} {login_body} validate_certs=no " f"force_basic_auth=yes", check=check) print(f"url=https://localhost:{port}{login_endpoint} " f"user={user} password={password} " f"method={login_method} {login_body} validate_certs=no " f"force_basic_auth=yes", check) print(token_response) > return token_response['json']['data']['token'] E KeyError: 'json' /usr/local/lib/python3.10/dist-packages/wazuh_testing/tools/system.py:233: KeyError During handling of the above exception, another exception occurred: login_endpoint = {'auth_context': {'username': 'testing'}}, host = 'wazuh-master', old_password = 'Newpass2*', new_password = 'Newpass1*', set_default_api_conf = None, create_testing_api_user = None create_security_resources = None @pytest.mark.parametrize('login_endpoint, host, old_password, new_password', [ # User-roles based login ({}, 'wazuh-master', test_passw, 'Newpass1*'), ({}, 'wazuh-worker1', 'Newpass1*', 'Newpass2*'), # Auth context login ({"auth_context": {"username": "testing"}}, 'wazuh-master', 'Newpass2*', 'Newpass1*'), ({"auth_context": {"username": "testing"}}, 'wazuh-worker1', 'Newpass1*', 'Newpass2*') ]) def test_update_password(login_endpoint, host, old_password, new_password, set_default_api_conf, create_testing_api_user, create_security_resources): """Test that the obtained token is invalid after updating the password from its user. Parameters ---------- host : str Host where the test will be run. old_password : str Password before updating. new_password : str New password to update to. """ # Get token > token = host_manager.get_api_token(host, user=test_user, password=test_passw if not old_password else old_password, **login_endpoint) test_jwt_invalidation/test_update_password.py:49: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <wazuh_testing.tools.system.HostManager object at 0x7ffbd916c2b0>, host = 'wazuh-master', user = 'testing_user', password = 'Newpass2*', auth_context = {'username': 'testing'}, port = 55000, check = False def get_api_token(self, host, user='wazuh', password='wazuh', auth_context=None, port=55000, check=False): """Return an API token for the specified user. Args: host (str): Hostname. user (str, optional): API username. Default `wazuh` password (str, optional): API password. Default `wazuh` auth_context (dict, optional): Authorization context body. Default `None` port (int, optional): API port. Default `55000` check (bool, optional): Ansible check mode("Dry Run"), by default it is enabled so no changes will be applied. Default `False` Returns: API token (str): Usable API token. """ login_endpoint = '/security/user/authenticate' login_method = 'POST' login_body = '' if auth_context is not None: login_endpoint = '/security/user/authenticate/run_as' login_body = 'body="{}"'.format(json.dumps(auth_context).replace('"', '\\"').replace(' ', '')) try: token_response = self.get_host(host).ansible('uri', f"url=https://localhost:{port}{login_endpoint} " f"user={user} password={password} " f"method={login_method} {login_body} validate_certs=no " f"force_basic_auth=yes", check=check) print(f"url=https://localhost:{port}{login_endpoint} " f"user={user} password={password} " f"method={login_method} {login_body} validate_certs=no " f"force_basic_auth=yes", check) print(token_response) return token_response['json']['data']['token'] except KeyError: > raise KeyError(f'Failed to get token: {token_response}') E KeyError: "Failed to get token: {'changed': False, 'connection': 'close', 'content_length': '65', 'content_type': 'application/problem+json; charset=utf-8', 'date': 'Wed, 03 Jan 2024 11:05:54 GMT', 'elapsed': 0, 'msg': 'Status code was 400 and not [200]: HTTP Error 400: Bad Request', 'redirected': False, 'status': 400, 'url': 'https://localhost:55000/security/user/authenticate/run_as'}" /usr/local/lib/python3.10/dist-packages/wazuh_testing/tools/system.py:235: KeyError ------------------------------Captured stdout call------------------------------ url=https://localhost:55000/security/user/authenticate/run_as user=testing_user password=Newpass2* method=POST body="{\"username\":\"testing\"}" validate_certs=no force_basic_auth=yes False {'changed': False, 'connection': 'close', 'content_length': '65', 'content_type': 'application/problem+json; charset=utf-8', 'date': 'Wed, 03 Jan 2024 11:05:54 GMT', 'elapsed': 0, 'msg': 'Status code was 400 and not [200]: HTTP Error 400: Bad Request', 'redirected': False, 'status': 400, 'url': 'https://localhost:55000/security/user/authenticate/run_as'} | |||||||
Failed | 2024-01-03 11:06:45.164309 | test_jwt_invalidation/test_update_password.py::test_update_password[login_endpoint3-wazuh-worker1-Newpass1*-Newpass2*] | Test that the obtained token is invalid after updating the password from its user. | 50.11 | agentless_cluster_env | Test arguments wazuh-worker2_cluster.log wazuh-master_cluster.log wazuh-worker1_cluster.log | |
Test function detailsExtended SummaryParametersParameter(name='host', type='str', desc=['Host where the test will be run.']) Parameter(name='old_password', type='str', desc=['Password before updating.']) Parameter(name='new_password', type='str', desc=['New password to update to.']) self = <wazuh_testing.tools.system.HostManager object at 0x7ffbd916c2b0>, host = 'wazuh-worker1', user = 'testing_user', password = 'Newpass1*', auth_context = {'username': 'testing'}, port = 55000, check = False def get_api_token(self, host, user='wazuh', password='wazuh', auth_context=None, port=55000, check=False): """Return an API token for the specified user. Args: host (str): Hostname. user (str, optional): API username. Default `wazuh` password (str, optional): API password. Default `wazuh` auth_context (dict, optional): Authorization context body. Default `None` port (int, optional): API port. Default `55000` check (bool, optional): Ansible check mode("Dry Run"), by default it is enabled so no changes will be applied. Default `False` Returns: API token (str): Usable API token. """ login_endpoint = '/security/user/authenticate' login_method = 'POST' login_body = '' if auth_context is not None: login_endpoint = '/security/user/authenticate/run_as' login_body = 'body="{}"'.format(json.dumps(auth_context).replace('"', '\\"').replace(' ', '')) try: token_response = self.get_host(host).ansible('uri', f"url=https://localhost:{port}{login_endpoint} " f"user={user} password={password} " f"method={login_method} {login_body} validate_certs=no " f"force_basic_auth=yes", check=check) print(f"url=https://localhost:{port}{login_endpoint} " f"user={user} password={password} " f"method={login_method} {login_body} validate_certs=no " f"force_basic_auth=yes", check) print(token_response) > return token_response['json']['data']['token'] E KeyError: 'json' /usr/local/lib/python3.10/dist-packages/wazuh_testing/tools/system.py:233: KeyError During handling of the above exception, another exception occurred: login_endpoint = {'auth_context': {'username': 'testing'}}, host = 'wazuh-worker1', old_password = 'Newpass1*', new_password = 'Newpass2*', set_default_api_conf = None, create_testing_api_user = None create_security_resources = None @pytest.mark.parametrize('login_endpoint, host, old_password, new_password', [ # User-roles based login ({}, 'wazuh-master', test_passw, 'Newpass1*'), ({}, 'wazuh-worker1', 'Newpass1*', 'Newpass2*'), # Auth context login ({"auth_context": {"username": "testing"}}, 'wazuh-master', 'Newpass2*', 'Newpass1*'), ({"auth_context": {"username": "testing"}}, 'wazuh-worker1', 'Newpass1*', 'Newpass2*') ]) def test_update_password(login_endpoint, host, old_password, new_password, set_default_api_conf, create_testing_api_user, create_security_resources): """Test that the obtained token is invalid after updating the password from its user. Parameters ---------- host : str Host where the test will be run. old_password : str Password before updating. new_password : str New password to update to. """ # Get token > token = host_manager.get_api_token(host, user=test_user, password=test_passw if not old_password else old_password, **login_endpoint) test_jwt_invalidation/test_update_password.py:49: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <wazuh_testing.tools.system.HostManager object at 0x7ffbd916c2b0>, host = 'wazuh-worker1', user = 'testing_user', password = 'Newpass1*', auth_context = {'username': 'testing'}, port = 55000, check = False def get_api_token(self, host, user='wazuh', password='wazuh', auth_context=None, port=55000, check=False): """Return an API token for the specified user. Args: host (str): Hostname. user (str, optional): API username. Default `wazuh` password (str, optional): API password. Default `wazuh` auth_context (dict, optional): Authorization context body. Default `None` port (int, optional): API port. Default `55000` check (bool, optional): Ansible check mode("Dry Run"), by default it is enabled so no changes will be applied. Default `False` Returns: API token (str): Usable API token. """ login_endpoint = '/security/user/authenticate' login_method = 'POST' login_body = '' if auth_context is not None: login_endpoint = '/security/user/authenticate/run_as' login_body = 'body="{}"'.format(json.dumps(auth_context).replace('"', '\\"').replace(' ', '')) try: token_response = self.get_host(host).ansible('uri', f"url=https://localhost:{port}{login_endpoint} " f"user={user} password={password} " f"method={login_method} {login_body} validate_certs=no " f"force_basic_auth=yes", check=check) print(f"url=https://localhost:{port}{login_endpoint} " f"user={user} password={password} " f"method={login_method} {login_body} validate_certs=no " f"force_basic_auth=yes", check) print(token_response) return token_response['json']['data']['token'] except KeyError: > raise KeyError(f'Failed to get token: {token_response}') E KeyError: "Failed to get token: {'changed': False, 'connection': 'close', 'content_length': '59', 'content_type': 'application/problem+json; charset=utf-8', 'date': 'Wed, 03 Jan 2024 11:05:56 GMT', 'elapsed': 0, 'msg': 'Status code was 401 and not [200]: HTTP Error 401: Unauthorized', 'redirected': False, 'status': 401, 'url': 'https://localhost:55000/security/user/authenticate/run_as'}" /usr/local/lib/python3.10/dist-packages/wazuh_testing/tools/system.py:235: KeyError ------------------------------Captured stdout call------------------------------ url=https://localhost:55000/security/user/authenticate/run_as user=testing_user password=Newpass1* method=POST body="{\"username\":\"testing\"}" validate_certs=no force_basic_auth=yes False {'changed': False, 'connection': 'close', 'content_length': '59', 'content_type': 'application/problem+json; charset=utf-8', 'date': 'Wed, 03 Jan 2024 11:05:56 GMT', 'elapsed': 0, 'msg': 'Status code was 401 and not [200]: HTTP Error 401: Unauthorized', 'redirected': False, 'status': 401, 'url': 'https://localhost:55000/security/user/authenticate/run_as'} ----------------------------Captured stdout teardown---------------------------- url=https://localhost:55000/security/user/authenticate user=wazuh password=wazuh method=POST validate_certs=no force_basic_auth=yes False {'cache_control': 'no-cache, no-store, must-revalidate, max-age=0', 'changed': False, 'connection': 'close', 'content_length': '433', 'content_security_policy': 'none', 'content_type': 'application/json; charset=utf-8', 'cookies': {}, 'cookies_string': '', 'date': 'Wed, 03 Jan 2024 11:05:58 GMT', 'elapsed': 0, 'expires': '0', 'json': {'data': {'token': 'eyJhbGciOiJFUzUxMiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJ3YXp1aCIsImF1ZCI6IldhenVoIEFQSSBSRVNUIiwibmJmIjoxNzA0Mjc5OTU4LCJleHAiOjE3MDQyODA4NTgsInN1YiI6IndhenVoIiwicnVuX2FzIjpmYWxzZSwicmJhY19yb2xlcyI6WzFdLCJyYmFjX21vZGUiOiJibGFjayJ9.AQRFJG10_hT4WIJ8Aib81hPr5SWj0FChBwPx0CueA6J5aAahkTEr_UOhiUCB_neonFIAUi4XojnLHfaB-D8ez5JbAJjVEygKPARId_klMye0MdyrxuiCOJvHYPc3NZ2_zkr8i3BI1_9wXF0emQUNTZpUA4HosKJ8j8tSHMzJeDY11yy-'}, 'error': 0}, 'msg': 'OK (433 bytes)', 'pragma': 'no-cache', 'redirected': False, 'referrer_policy': 'no-referrer, strict-origin-when-cross-origin', 'status': 200, 'strict_transport_security': 'max-age=63072000; includeSubdomains', 'url': 'https://localhost:55000/security/user/authenticate', 'x_content_type_options': 'nosniff', 'x_frame_options': 'DENY', 'x_xss_protection': '1; mode=block'} url=https://localhost:55000/security/user/authenticate user=wazuh password=wazuh method=POST validate_certs=no force_basic_auth=yes False {'cache_control': 'no-cache, no-store, must-revalidate, max-age=0', 'changed': False, 'connection': 'close', 'content_length': '433', 'content_security_policy': 'none', 'content_type': 'application/json; charset=utf-8', 'cookies': {}, 'cookies_string': '', 'date': 'Wed, 03 Jan 2024 11:06:04 GMT', 'elapsed': 0, 'expires': '0', 'json': {'data': {'token': 'eyJhbGciOiJFUzUxMiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJ3YXp1aCIsImF1ZCI6IldhenVoIEFQSSBSRVNUIiwibmJmIjoxNzA0Mjc5OTY0LCJleHAiOjE3MDQyODA4NjQsInN1YiI6IndhenVoIiwicnVuX2FzIjpmYWxzZSwicmJhY19yb2xlcyI6WzFdLCJyYmFjX21vZGUiOiJibGFjayJ9.ACLwJdlpOcDHvEYQwQHHwdGY1Yb_-DSb8jFyDFWD8tDdnA3a1NxgdrbCQwmEAzpdAFUF1pHIKj8-Dv-JpEwWSwFsAGR9WtuBJEBE1T5ohJPzcKV7Qa-ZKNAx9Z1s2jwFjwRvXeNkClB8YSZO-jXTCgIQtw9yP4sIoLsahjEQjlwmlreT'}, 'error': 0}, 'msg': 'OK (433 bytes)', 'pragma': 'no-cache', 'redirected': False, 'referrer_policy': 'no-referrer, strict-origin-when-cross-origin', 'status': 200, 'strict_transport_security': 'max-age=63072000; includeSubdomains', 'url': 'https://localhost:55000/security/user/authenticate', 'x_content_type_options': 'nosniff', 'x_frame_options': 'DENY', 'x_xss_protection': '1; mode=block'} | |||||||
Passed | 2024-01-03 11:06:45.131166 | test_cluster/test_integrity_sync/test_integrity_sync.py::test_missing_file | Check if missing files are copied to each node. | 139.26 | cluster, agentless_cluster_env | ||
No log output captured. | |||||||
Passed | 2024-01-03 11:06:45.131358 | test_cluster/test_integrity_sync/test_integrity_sync.py::test_shared_files | Check if the content of each file is the same in all nodes. | 107.41 | cluster, agentless_cluster_env | ||
No log output captured. | |||||||
Passed | 2024-01-03 11:06:45.131459 | test_cluster/test_integrity_sync/test_integrity_sync.py::test_extra_files | Check if extra files in the workers are correctly deleted. | 113.30 | cluster, agentless_cluster_env | ||
No log output captured. | |||||||
Passed | 2024-01-03 11:06:45.132553 | test_cluster/test_integrity_sync/test_integrity_sync.py::test_zip_size_limit | Check if zip size limit works and if it is dynamically adapted. | 278.96 | cluster, agentless_cluster_env | ||
------------------------------Captured stderr call------------------------------ 2024-01-03 11:44:44,072 - wazuh_testing - DEBUG - Add new file composer process for wazuh-master and path: /var/ossec/logs/cluster.log 2024-01-03 11:44:44,074 - wazuh_testing - DEBUG - Starting file composer for wazuh-master and path: /var/ossec/logs/cluster.log. Composite file in /home/akim/Desktop/wazuh-qa/tests/system/test_cluster/test_integrity_sync/data/tmp/wazuh-master_cluster.log.tmp 2024-01-03 11:44:44,074 - wazuh_testing - DEBUG - Add new file monitor process for wazuh-master and path: /var/ossec/logs/cluster.log 2024-01-03 11:44:44,077 - wazuh_testing - DEBUG - Starting QueueMonitor for wazuh-master and message: .*File too large to be synced: /var/ossec/etc/rules/test_file_too_big 2024-01-03 11:44:44,077 - wazuh_testing - DEBUG - Add new file composer process for wazuh-worker1 and path: /var/ossec/logs/cluster.log 2024-01-03 11:44:44,079 - wazuh_testing - DEBUG - Starting file composer for wazuh-worker1 and path: /var/ossec/logs/cluster.log. Composite file in /home/akim/Desktop/wazuh-qa/tests/system/test_cluster/test_integrity_sync/data/tmp/wazuh-worker1_cluster.log.tmp 2024-01-03 11:44:44,080 - wazuh_testing - DEBUG - Add new file monitor process for wazuh-worker1 and path: /var/ossec/logs/cluster.log 2024-01-03 11:44:44,082 - wazuh_testing - DEBUG - Add new file composer process for wazuh-worker2 and path: /var/ossec/logs/cluster.log 2024-01-03 11:44:44,082 - wazuh_testing - DEBUG - Starting QueueMonitor for wazuh-worker1 and message: .*Files to create: 0 \| Files to update: 0 \| Files to delete: 0.* 2024-01-03 11:44:44,084 - wazuh_testing - DEBUG - Starting file composer for wazuh-worker2 and path: /var/ossec/logs/cluster.log. Composite file in /home/akim/Desktop/wazuh-qa/tests/system/test_cluster/test_integrity_sync/data/tmp/wazuh-worker2_cluster.log.tmp 2024-01-03 11:44:44,084 - wazuh_testing - DEBUG - Add new file monitor process for wazuh-worker2 and path: /var/ossec/logs/cluster.log 2024-01-03 11:44:44,087 - wazuh_testing - DEBUG - Starting QueueMonitor for wazuh-worker2 and message: .*Files to create: 0 \| Files to update: 0 \| Files to delete: 0.* 2024-01-03 11:45:24,921 - wazuh_testing - DEBUG - Finishing QueueMonitor for wazuh-master and message: .*File too large to be synced: /var/ossec/etc/rules/test_file_too_big 2024-01-03 11:45:24,921 - wazuh_testing - DEBUG - Starting QueueMonitor for wazuh-master and message: .*Maximum zip size exceeded. Not all files will be compressed during this sync.* 2024-01-03 11:45:24,968 - wazuh_testing - DEBUG - Finishing QueueMonitor for wazuh-master and message: .*Maximum zip size exceeded. Not all files will be compressed during this sync.* 2024-01-03 11:45:24,968 - wazuh_testing - DEBUG - Starting QueueMonitor for wazuh-master and message: .*Command received: b'cancel_task'.* 2024-01-03 11:45:25,019 - wazuh_testing - DEBUG - Finishing QueueMonitor for wazuh-master and message: .*Command received: b'cancel_task'.* 2024-01-03 11:45:25,019 - wazuh_testing - DEBUG - Starting QueueMonitor for wazuh-master and message: .*Decreasing sync size limit to .* MB.* 2024-01-03 11:45:25,069 - wazuh_testing - DEBUG - Finishing QueueMonitor for wazuh-master and message: .*Decreasing sync size limit to .* MB.* 2024-01-03 11:45:25,069 - wazuh_testing - DEBUG - Starting QueueMonitor for wazuh-master and message: .*wazuh-worker1.*Files to create in worker: 1 \| Files to update in worker: 0 \| Files to delete in worker: 0.* 2024-01-03 11:45:42,643 - wazuh_testing - DEBUG - Finishing QueueMonitor for wazuh-worker2 and message: .*Files to create: 0 \| Files to update: 0 \| Files to delete: 0.* 2024-01-03 11:45:46,958 - wazuh_testing - DEBUG - Finishing QueueMonitor for wazuh-master and message: .*wazuh-worker1.*Files to create in worker: 1 \| Files to update in worker: 0 \| Files to delete in worker: 0.* 2024-01-03 11:45:46,958 - wazuh_testing - DEBUG - Starting QueueMonitor for wazuh-master and message: .*wazuh-worker2.*Files to create in worker: 1 \| Files to update in worker: 0 \| Files to delete in worker: 0.* 2024-01-03 11:45:47,158 - wazuh_testing - DEBUG - Finishing QueueMonitor for wazuh-master and message: .*wazuh-worker2.*Files to create in worker: 1 \| Files to update in worker: 0 \| Files to delete in worker: 0.* 2024-01-03 11:45:47,158 - wazuh_testing - DEBUG - Starting QueueMonitor for wazuh-master and message: .*Increasing sync size limit to .* MB.* 2024-01-03 11:45:47,366 - wazuh_testing - DEBUG - Finishing QueueMonitor for wazuh-master and message: .*Increasing sync size limit to .* MB.* 2024-01-03 11:45:47,659 - wazuh_testing - DEBUG - Finishing QueueMonitor for wazuh-worker1 and message: .*Files to create: 0 \| Files to update: 0 \| Files to delete: 0.* 2024-01-03 11:45:48,165 - wazuh_testing - DEBUG - Cleaning temporal files... 2024-01-03 11:45:48,167 - wazuh_testing - DEBUG - Checking results... 2024-01-03 11:45:48,169 - wazuh_testing - DEBUG - Received from wazuh-master the expected message: True 2024-01-03 11:45:48,170 - wazuh_testing - DEBUG - Received from wazuh-master the expected message: True 2024-01-03 11:45:48,171 - wazuh_testing - DEBUG - Received from wazuh-master the expected message: True 2024-01-03 11:45:48,171 - wazuh_testing - DEBUG - Received from wazuh-master the expected message: True 2024-01-03 11:45:48,172 - wazuh_testing - DEBUG - Received from wazuh-worker2 the expected message: True 2024-01-03 11:45:48,172 - wazuh_testing - DEBUG - Received from wazuh-master the expected message: True 2024-01-03 11:45:48,173 - wazuh_testing - DEBUG - Received from wazuh-master the expected message: True 2024-01-03 11:45:48,173 - wazuh_testing - DEBUG - Received from wazuh-master the expected message: True 2024-01-03 11:45:48,174 - wazuh_testing - DEBUG - Received from wazuh-worker1 the expected message: True -------------------------------Captured log call-------------------------------- DEBUG wazuh_testing:monitoring.py:921 Add new file composer process for wazuh-master and path: /var/ossec/logs/cluster.log DEBUG wazuh_testing:monitoring.py:925 Add new file monitor process for wazuh-master and path: /var/ossec/logs/cluster.log DEBUG wazuh_testing:monitoring.py:921 Add new file composer process for wazuh-worker1 and path: /var/ossec/logs/cluster.log DEBUG wazuh_testing:monitoring.py:925 Add new file monitor process for wazuh-worker1 and path: /var/ossec/logs/cluster.log DEBUG wazuh_testing:monitoring.py:921 Add new file composer process for wazuh-worker2 and path: /var/ossec/logs/cluster.log DEBUG wazuh_testing:monitoring.py:925 Add new file monitor process for wazuh-worker2 and path: /var/ossec/logs/cluster.log DEBUG wazuh_testing:monitoring.py:1028 Cleaning temporal files... DEBUG wazuh_testing:monitoring.py:1017 Checking results... DEBUG wazuh_testing:monitoring.py:1023 Received from wazuh-master the expected message: True DEBUG wazuh_testing:monitoring.py:1023 Received from wazuh-master the expected message: True DEBUG wazuh_testing:monitoring.py:1023 Received from wazuh-master the expected message: True DEBUG wazuh_testing:monitoring.py:1023 Received from wazuh-master the expected message: True DEBUG wazuh_testing:monitoring.py:1023 Received from wazuh-worker2 the expected message: True DEBUG wazuh_testing:monitoring.py:1023 Received from wazuh-master the expected message: True DEBUG wazuh_testing:monitoring.py:1023 Received from wazuh-master the expected message: True DEBUG wazuh_testing:monitoring.py:1023 Received from wazuh-master the expected message: True DEBUG wazuh_testing:monitoring.py:1023 Received from wazuh-worker1 the expected message: True | |||||||
Passed | 2024-01-03 11:06:45.132789 | test_cluster/test_ruleset_sync_status/test_ruleset_sync_status.py::test_ruleset_sync_status | Check if 'GET /cluster/ruleset/synchronization' API endpoint returns correct sync status. | 246.17 | cluster, agentless_cluster_env | ||
------------------------------Captured stdout call------------------------------ url=https://localhost:55000/security/user/authenticate user=wazuh password=wazuh method=POST validate_certs=no force_basic_auth=yes False {'cache_control': 'no-cache, no-store, must-revalidate, max-age=0', 'changed': False, 'connection': 'close', 'content_length': '433', 'content_security_policy': 'none', 'content_type': 'application/json; charset=utf-8', 'cookies': {}, 'cookies_string': '', 'date': 'Wed, 03 Jan 2024 10:48:09 GMT', 'elapsed': 0, 'expires': '0', 'json': {'data': {'token': 'eyJhbGciOiJFUzUxMiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJ3YXp1aCIsImF1ZCI6IldhenVoIEFQSSBSRVNUIiwibmJmIjoxNzA0Mjc4ODg5LCJleHAiOjE3MDQyNzk3ODksInN1YiI6IndhenVoIiwicnVuX2FzIjpmYWxzZSwicmJhY19yb2xlcyI6WzFdLCJyYmFjX21vZGUiOiJibGFjayJ9.AUBhLFZ_1wI5wVzEeWQM-IPXIjAkkW6wiJJMDUAFpZuP3gEAWaOMCS3dJrYbArq7toAf40kgp1vMmskAL6D6FdAaAKjHhTqP8VJ8xe75MzkM6-szENf1HiqqIBpwcebT8JwcIF7BxxZFI3o42ae1KhD1nFf_z8ND8BL5JATLs3nW1xWP'}, 'error': 0}, 'msg': 'OK (433 bytes)', 'pragma': 'no-cache', 'redirected': False, 'referrer_policy': 'no-referrer, strict-origin-when-cross-origin', 'status': 200, 'strict_transport_security': 'max-age=63072000; includeSubdomains', 'url': 'https://localhost:55000/security/user/authenticate', 'x_content_type_options': 'nosniff', 'x_frame_options': 'DENY', 'x_xss_protection': '1; mode=block'} ------------------------------Captured stderr call------------------------------ 2024-01-03 11:48:18,500 - wazuh_testing - DEBUG - Add new file composer process for wazuh-master and path: /var/ossec/logs/cluster.log 2024-01-03 11:48:18,502 - wazuh_testing - DEBUG - Starting file composer for wazuh-master and path: /var/ossec/logs/cluster.log. Composite file in /home/akim/Desktop/wazuh-qa/tests/system/test_cluster/test_ruleset_sync_status/data/tmp/wazuh-master_cluster.log.tmp 2024-01-03 11:48:18,502 - wazuh_testing - DEBUG - Add new file monitor process for wazuh-master and path: /var/ossec/logs/cluster.log 2024-01-03 11:48:18,504 - wazuh_testing - DEBUG - Starting QueueMonitor for wazuh-master and message: .*\[Local integrity\] Starting.* 2024-01-03 11:49:21,631 - wazuh_testing - DEBUG - Finishing QueueMonitor for wazuh-master and message: .*\[Local integrity\] Starting.* 2024-01-03 11:49:21,632 - wazuh_testing - DEBUG - Starting QueueMonitor for wazuh-master and message: .*\[Local integrity\] Finished in .* 2024-01-03 11:49:21,670 - wazuh_testing - DEBUG - Finishing QueueMonitor for wazuh-master and message: .*\[Local integrity\] Finished in .* 2024-01-03 11:49:22,578 - wazuh_testing - DEBUG - Cleaning temporal files... 2024-01-03 11:49:22,580 - wazuh_testing - DEBUG - Checking results... 2024-01-03 11:49:22,583 - wazuh_testing - DEBUG - Received from wazuh-master the expected message: True 2024-01-03 11:49:22,584 - wazuh_testing - DEBUG - Received from wazuh-master the expected message: True 2024-01-03 11:49:22,615 - wazuh_testing - DEBUG - Add new file composer process for wazuh-worker1 and path: /var/ossec/logs/cluster.log 2024-01-03 11:49:22,618 - wazuh_testing - DEBUG - Starting file composer for wazuh-worker1 and path: /var/ossec/logs/cluster.log. Composite file in /home/akim/Desktop/wazuh-qa/tests/system/test_cluster/test_ruleset_sync_status/data/tmp/wazuh-worker1_cluster.log.tmp 2024-01-03 11:49:22,618 - wazuh_testing - DEBUG - Add new file monitor process for wazuh-worker1 and path: /var/ossec/logs/cluster.log 2024-01-03 11:49:22,620 - wazuh_testing - DEBUG - Starting QueueMonitor for wazuh-worker1 and message: .*Integrity sync.*Starting.* 2024-01-03 11:49:22,621 - wazuh_testing - DEBUG - Add new file composer process for wazuh-worker2 and path: /var/ossec/logs/cluster.log 2024-01-03 11:49:22,623 - wazuh_testing - DEBUG - Starting file composer for wazuh-worker2 and path: /var/ossec/logs/cluster.log. Composite file in /home/akim/Desktop/wazuh-qa/tests/system/test_cluster/test_ruleset_sync_status/data/tmp/wazuh-worker2_cluster.log.tmp 2024-01-03 11:49:22,623 - wazuh_testing - DEBUG - Add new file monitor process for wazuh-worker2 and path: /var/ossec/logs/cluster.log 2024-01-03 11:49:22,626 - wazuh_testing - DEBUG - Starting QueueMonitor for wazuh-worker2 and message: .*Integrity sync.*Starting.* 2024-01-03 11:49:42,653 - wazuh_testing - DEBUG - Finishing QueueMonitor for wazuh-worker1 and message: .*Integrity sync.*Starting.* 2024-01-03 11:49:42,653 - wazuh_testing - DEBUG - Starting QueueMonitor for wazuh-worker1 and message: .*Integrity sync.*Finished in.* 2024-01-03 11:49:42,668 - wazuh_testing - DEBUG - Finishing QueueMonitor for wazuh-worker1 and message: .*Integrity sync.*Finished in.* 2024-01-03 11:50:06,674 - wazuh_testing - DEBUG - Finishing QueueMonitor for wazuh-worker2 and message: .*Integrity sync.*Starting.* 2024-01-03 11:50:06,675 - wazuh_testing - DEBUG - Starting QueueMonitor for wazuh-worker2 and message: .*Integrity sync.*Finished in.* 2024-01-03 11:50:06,683 - wazuh_testing - DEBUG - Finishing QueueMonitor for wazuh-worker2 and message: .*Integrity sync.*Finished in.* 2024-01-03 11:50:07,186 - wazuh_testing - DEBUG - Cleaning temporal files... 2024-01-03 11:50:07,188 - wazuh_testing - DEBUG - Checking results... 2024-01-03 11:50:07,193 - wazuh_testing - DEBUG - Received from wazuh-worker1 the expected message: True 2024-01-03 11:50:07,194 - wazuh_testing - DEBUG - Received from wazuh-worker1 the expected message: True 2024-01-03 11:50:07,195 - wazuh_testing - DEBUG - Received from wazuh-worker2 the expected message: True 2024-01-03 11:50:07,196 - wazuh_testing - DEBUG - Received from wazuh-worker2 the expected message: True -------------------------------Captured log call-------------------------------- DEBUG wazuh_testing:monitoring.py:921 Add new file composer process for wazuh-master and path: /var/ossec/logs/cluster.log DEBUG wazuh_testing:monitoring.py:925 Add new file monitor process for wazuh-master and path: /var/ossec/logs/cluster.log DEBUG wazuh_testing:monitoring.py:1028 Cleaning temporal files... DEBUG wazuh_testing:monitoring.py:1017 Checking results... DEBUG wazuh_testing:monitoring.py:1023 Received from wazuh-master the expected message: True DEBUG wazuh_testing:monitoring.py:1023 Received from wazuh-master the expected message: True DEBUG wazuh_testing:monitoring.py:921 Add new file composer process for wazuh-worker1 and path: /var/ossec/logs/cluster.log DEBUG wazuh_testing:monitoring.py:925 Add new file monitor process for wazuh-worker1 and path: /var/ossec/logs/cluster.log DEBUG wazuh_testing:monitoring.py:921 Add new file composer process for wazuh-worker2 and path: /var/ossec/logs/cluster.log DEBUG wazuh_testing:monitoring.py:925 Add new file monitor process for wazuh-worker2 and path: /var/ossec/logs/cluster.log DEBUG wazuh_testing:monitoring.py:1028 Cleaning temporal files... DEBUG wazuh_testing:monitoring.py:1017 Checking results... DEBUG wazuh_testing:monitoring.py:1023 Received from wazuh-worker1 the expected message: True DEBUG wazuh_testing:monitoring.py:1023 Received from wazuh-worker1 the expected message: True DEBUG wazuh_testing:monitoring.py:1023 Received from wazuh-worker2 the expected message: True DEBUG wazuh_testing:monitoring.py:1023 Received from wazuh-worker2 the expected message: True | |||||||
Passed | 2024-01-03 11:06:45.132946 | test_jwt_invalidation/test_change_rbac_mode.py::test_change_rbac_mode_with_endpoint[login_endpoint0] | Check that all tokens are revoked when changing RBAC mode with the security endpoint. | 79.67 | agentless_cluster_env | ||
------------------------------Captured stdout call------------------------------ url=https://localhost:55000/security/user/authenticate user=wazuh password=wazuh method=POST validate_certs=no force_basic_auth=yes False {'cache_control': 'no-cache, no-store, must-revalidate, max-age=0', 'changed': False, 'connection': 'close', 'content_length': '433', 'content_security_policy': 'none', 'content_type': 'application/json; charset=utf-8', 'cookies': {}, 'cookies_string': '', 'date': 'Wed, 03 Jan 2024 10:52:14 GMT', 'elapsed': 0, 'expires': '0', 'json': {'data': {'token': 'eyJhbGciOiJFUzUxMiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJ3YXp1aCIsImF1ZCI6IldhenVoIEFQSSBSRVNUIiwibmJmIjoxNzA0Mjc5MTM0LCJleHAiOjE3MDQyODAwMzQsInN1YiI6IndhenVoIiwicnVuX2FzIjpmYWxzZSwicmJhY19yb2xlcyI6WzFdLCJyYmFjX21vZGUiOiJibGFjayJ9.AcJ3u15XH85UOCKsnEs-8rdgHbqKXBX6HfF3KdvYvsxNPt9--46tHxgvAgagqcL-QkjcUcYs_n3h9xLrPL5oJYsnARcxhfpeGcdpcGCVsq40I4S35QzCkf5YkNcAGYCQjKj--JBvgN0A-z-v_b9xcvYpiNUPRFVYxXgCy4KH-suVzGy6'}, 'error': 0}, 'msg': 'OK (433 bytes)', 'pragma': 'no-cache', 'redirected': False, 'referrer_policy': 'no-referrer, strict-origin-when-cross-origin', 'status': 200, 'strict_transport_security': 'max-age=63072000; includeSubdomains', 'url': 'https://localhost:55000/security/user/authenticate', 'x_content_type_options': 'nosniff', 'x_frame_options': 'DENY', 'x_xss_protection': '1; mode=block'} url=https://localhost:55000/security/user/authenticate user=wazuh password=wazuh method=POST validate_certs=no force_basic_auth=yes False {'cache_control': 'no-cache, no-store, must-revalidate, max-age=0', 'changed': False, 'connection': 'close', 'content_length': '433', 'content_security_policy': 'none', 'content_type': 'application/json; charset=utf-8', 'cookies': {}, 'cookies_string': '', 'date': 'Wed, 03 Jan 2024 10:52:16 GMT', 'elapsed': 0, 'expires': '0', 'json': {'data': {'token': 'eyJhbGciOiJFUzUxMiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJ3YXp1aCIsImF1ZCI6IldhenVoIEFQSSBSRVNUIiwibmJmIjoxNzA0Mjc5MTM2LCJleHAiOjE3MDQyODAwMzYsInN1YiI6IndhenVoIiwicnVuX2FzIjpmYWxzZSwicmJhY19yb2xlcyI6WzFdLCJyYmFjX21vZGUiOiJibGFjayJ9.ASKBbHlIbvPBfSjMfDIQI80-NAH_96EI26QLR52feuzmDrbEIuf7TkMGHjtzICqbH9DD-mPKgVY0VgEXgFRhTOQLAD2jXenQ-RweDxT15tLXyxxzWKMjlbmAxNAOgYyLim0DovLWERRfP3rGwAQKpIpz0t9Ttozc-7Wg0n-19aVF1ZGZ'}, 'error': 0}, 'msg': 'OK (433 bytes)', 'pragma': 'no-cache', 'redirected': False, 'referrer_policy': 'no-referrer, strict-origin-when-cross-origin', 'status': 200, 'strict_transport_security': 'max-age=63072000; includeSubdomains', 'url': 'https://localhost:55000/security/user/authenticate', 'x_content_type_options': 'nosniff', 'x_frame_options': 'DENY', 'x_xss_protection': '1; mode=block'} url=https://localhost:55000/security/user/authenticate user=wazuh password=wazuh method=POST validate_certs=no force_basic_auth=yes False {'cache_control': 'no-cache, no-store, must-revalidate, max-age=0', 'changed': False, 'connection': 'close', 'content_length': '433', 'content_security_policy': 'none', 'content_type': 'application/json; charset=utf-8', 'cookies': {}, 'cookies_string': '', 'date': 'Wed, 03 Jan 2024 10:52:18 GMT', 'elapsed': 0, 'expires': '0', 'json': {'data': {'token': 'eyJhbGciOiJFUzUxMiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJ3YXp1aCIsImF1ZCI6IldhenVoIEFQSSBSRVNUIiwibmJmIjoxNzA0Mjc5MTM4LCJleHAiOjE3MDQyODAwMzgsInN1YiI6IndhenVoIiwicnVuX2FzIjpmYWxzZSwicmJhY19yb2xlcyI6WzFdLCJyYmFjX21vZGUiOiJibGFjayJ9.AJQS-VrfpFyZ1xvcTCs6Y2QQDul2Nv8FuzjcXgrmz_ATupK_W8hmJnnXFGHfyclOPiWw4uHiSeeLGzQx-9itDxTUAaVggbw4oBX7JihVpwo-LoXn4pjXHeoWHDnFKradnDwpuBGfKKPBgAj3v9BeTieTDzPVCKghQNQvACvejMlyS83k'}, 'error': 0}, 'msg': 'OK (433 bytes)', 'pragma': 'no-cache', 'redirected': False, 'referrer_policy': 'no-referrer, strict-origin-when-cross-origin', 'status': 200, 'strict_transport_security': 'max-age=63072000; includeSubdomains', 'url': 'https://localhost:55000/security/user/authenticate', 'x_content_type_options': 'nosniff', 'x_frame_options': 'DENY', 'x_xss_protection': '1; mode=block'} | |||||||
Passed | 2024-01-03 11:06:45.136030 | test_jwt_invalidation/test_change_rbac_mode.py::test_change_rbac_mode_manually[login_endpoint0] | Check that all tokens are revoked when changing RBAC mode manually in the security.yaml . | 41.51 | agentless_cluster_env | ||
------------------------------Captured stdout call------------------------------ url=https://localhost:55000/security/user/authenticate user=wazuh password=wazuh method=POST validate_certs=no force_basic_auth=yes False {'cache_control': 'no-cache, no-store, must-revalidate, max-age=0', 'changed': False, 'connection': 'close', 'content_length': '433', 'content_security_policy': 'none', 'content_type': 'application/json; charset=utf-8', 'cookies': {}, 'cookies_string': '', 'date': 'Wed, 03 Jan 2024 10:52:29 GMT', 'elapsed': 0, 'expires': '0', 'json': {'data': {'token': 'eyJhbGciOiJFUzUxMiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJ3YXp1aCIsImF1ZCI6IldhenVoIEFQSSBSRVNUIiwibmJmIjoxNzA0Mjc5MTQ5LCJleHAiOjE3MDQyODAwNDksInN1YiI6IndhenVoIiwicnVuX2FzIjpmYWxzZSwicmJhY19yb2xlcyI6WzFdLCJyYmFjX21vZGUiOiJ3aGl0ZSJ9.AY6NWMykcuD2z_VlQQa1H3mgJao10_OlavUi-SoRTQjE0aAJ3b1QmdW0sN4Ep1uMcqTLX1lAwfrhDUDZ54iOw5piAQRTnCPtzJcVdZmzU8Ak9pZYIynaP2-tH-SHO3mCwCoVAn1kmFeNmmEzt9Js4NvYagKUkrFy0LN1O0abpvLFhBll'}, 'error': 0}, 'msg': 'OK (433 bytes)', 'pragma': 'no-cache', 'redirected': False, 'referrer_policy': 'no-referrer, strict-origin-when-cross-origin', 'status': 200, 'strict_transport_security': 'max-age=63072000; includeSubdomains', 'url': 'https://localhost:55000/security/user/authenticate', 'x_content_type_options': 'nosniff', 'x_frame_options': 'DENY', 'x_xss_protection': '1; mode=block'} url=https://localhost:55000/security/user/authenticate user=wazuh password=wazuh method=POST validate_certs=no force_basic_auth=yes False {'cache_control': 'no-cache, no-store, must-revalidate, max-age=0', 'changed': False, 'connection': 'close', 'content_length': '433', 'content_security_policy': 'none', 'content_type': 'application/json; charset=utf-8', 'cookies': {}, 'cookies_string': '', 'date': 'Wed, 03 Jan 2024 10:52:31 GMT', 'elapsed': 0, 'expires': '0', 'json': {'data': {'token': 'eyJhbGciOiJFUzUxMiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJ3YXp1aCIsImF1ZCI6IldhenVoIEFQSSBSRVNUIiwibmJmIjoxNzA0Mjc5MTUxLCJleHAiOjE3MDQyODAwNTEsInN1YiI6IndhenVoIiwicnVuX2FzIjpmYWxzZSwicmJhY19yb2xlcyI6WzFdLCJyYmFjX21vZGUiOiJ3aGl0ZSJ9.APoY4Rt_HdksF1zA4bNiUQ6myTFEAkC-5VqG5M9dCCvLQa1sZCxNZzuQEHek-F2cDTS8vTlJTaTt4nlkKz36c1vNAD7OYUCAxENHkchNH-cdNutsSYqP7SQLfEDD9SeyA0DKwlkSn_glNwt62U5wQ2pc6Q0D8O1HQzeq3bi8cF2rDlQh'}, 'error': 0}, 'msg': 'OK (433 bytes)', 'pragma': 'no-cache', 'redirected': False, 'referrer_policy': 'no-referrer, strict-origin-when-cross-origin', 'status': 200, 'strict_transport_security': 'max-age=63072000; includeSubdomains', 'url': 'https://localhost:55000/security/user/authenticate', 'x_content_type_options': 'nosniff', 'x_frame_options': 'DENY', 'x_xss_protection': '1; mode=block'} url=https://localhost:55000/security/user/authenticate user=wazuh password=wazuh method=POST validate_certs=no force_basic_auth=yes False {'cache_control': 'no-cache, no-store, must-revalidate, max-age=0', 'changed': False, 'connection': 'close', 'content_length': '433', 'content_security_policy': 'none', 'content_type': 'application/json; charset=utf-8', 'cookies': {}, 'cookies_string': '', 'date': 'Wed, 03 Jan 2024 10:52:32 GMT', 'elapsed': 0, 'expires': '0', 'json': {'data': {'token': 'eyJhbGciOiJFUzUxMiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJ3YXp1aCIsImF1ZCI6IldhenVoIEFQSSBSRVNUIiwibmJmIjoxNzA0Mjc5MTUyLCJleHAiOjE3MDQyODAwNTIsInN1YiI6IndhenVoIiwicnVuX2FzIjpmYWxzZSwicmJhY19yb2xlcyI6WzFdLCJyYmFjX21vZGUiOiJ3aGl0ZSJ9.AXF8DG87EP3Fjrqv4wZA71sgrPaY6hx4hlOMRhx9nZNLllUCb9qmH57QJZ6mke3VytIzj8hRoLQ1MTMNwM1cogJ4ANDTsv5l8_rDMiUD1keITD8G0vELdfwiBqK1-qiyuCpHDOn0ohSkSihRPx2cx99bcXzMjMYsBJYohP3BNPkMWoLf'}, 'error': 0}, 'msg': 'OK (433 bytes)', 'pragma': 'no-cache', 'redirected': False, 'referrer_policy': 'no-referrer, strict-origin-when-cross-origin', 'status': 200, 'strict_transport_security': 'max-age=63072000; includeSubdomains', 'url': 'https://localhost:55000/security/user/authenticate', 'x_content_type_options': 'nosniff', 'x_frame_options': 'DENY', 'x_xss_protection': '1; mode=block'} | |||||||
Passed | 2024-01-03 11:06:45.139229 | test_jwt_invalidation/test_change_security_resources.py::test_change_user_policy_and_role[wazuh-master-wazuh-worker1-login_endpoint0] | Test that the obtained token is invalid after changing a role or policy related to the user. | 98.50 | agentless_cluster_env | ||
-----------------------------Captured stdout setup------------------------------ url=https://localhost:55000/security/user/authenticate user=wazuh password=wazuh method=POST validate_certs=no force_basic_auth=yes False {'cache_control': 'no-cache, no-store, must-revalidate, max-age=0', 'changed': False, 'connection': 'close', 'content_length': '433', 'content_security_policy': 'none', 'content_type': 'application/json; charset=utf-8', 'cookies': {}, 'cookies_string': '', 'date': 'Wed, 03 Jan 2024 10:55:22 GMT', 'elapsed': 0, 'expires': '0', 'json': {'data': {'token': 'eyJhbGciOiJFUzUxMiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJ3YXp1aCIsImF1ZCI6IldhenVoIEFQSSBSRVNUIiwibmJmIjoxNzA0Mjc5MzIyLCJleHAiOjE3MDQyODAyMjIsInN1YiI6IndhenVoIiwicnVuX2FzIjpmYWxzZSwicmJhY19yb2xlcyI6WzFdLCJyYmFjX21vZGUiOiJibGFjayJ9.AZ5P0g-ZyNaTkSENizurjhke7NUx5mYKxczUg8_uDxL5wGYQ1Q-h1pKmWsf6aUw58KCpPwrdq9X9_x_YJ21R9OdOAXRcZDsEhAM6APWSaoTY8vOsQ3-80Dgc7NyioUAPBay3hhZGr8oh5g5r5DpRkbX_f-wfFPvlDpN94rSp8EMgAEbz'}, 'error': 0}, 'msg': 'OK (433 bytes)', 'pragma': 'no-cache', 'redirected': False, 'referrer_policy': 'no-referrer, strict-origin-when-cross-origin', 'status': 200, 'strict_transport_security': 'max-age=63072000; includeSubdomains', 'url': 'https://localhost:55000/security/user/authenticate', 'x_content_type_options': 'nosniff', 'x_frame_options': 'DENY', 'x_xss_protection': '1; mode=block'} url=https://localhost:55000/security/user/authenticate user=wazuh password=wazuh method=POST validate_certs=no force_basic_auth=yes False {'cache_control': 'no-cache, no-store, must-revalidate, max-age=0', 'changed': False, 'connection': 'close', 'content_length': '433', 'content_security_policy': 'none', 'content_type': 'application/json; charset=utf-8', 'cookies': {}, 'cookies_string': '', 'date': 'Wed, 03 Jan 2024 10:55:28 GMT', 'elapsed': 0, 'expires': '0', 'json': {'data': {'token': 'eyJhbGciOiJFUzUxMiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJ3YXp1aCIsImF1ZCI6IldhenVoIEFQSSBSRVNUIiwibmJmIjoxNzA0Mjc5MzI4LCJleHAiOjE3MDQyODAyMjgsInN1YiI6IndhenVoIiwicnVuX2FzIjpmYWxzZSwicmJhY19yb2xlcyI6WzFdLCJyYmFjX21vZGUiOiJibGFjayJ9.AOYyqxEQyx_5-tZ--sfVfhxnDc0bRudAnvE0M4wM2lVNdzDvoL1EHhqbuUj2aP7LWV_NxcfFlLGY-Vil64jd-AfOAZQK7YNNIMC3flTMskxnFh8--1rkOYz-uTKoYCf42mXfoAA-0TNscfr6CQPdCohG5yZljDbTGuFNZ63TK-sbuxQm'}, 'error': 0}, 'msg': 'OK (433 bytes)', 'pragma': 'no-cache', 'redirected': False, 'referrer_policy': 'no-referrer, strict-origin-when-cross-origin', 'status': 200, 'strict_transport_security': 'max-age=63072000; includeSubdomains', 'url': 'https://localhost:55000/security/user/authenticate', 'x_content_type_options': 'nosniff', 'x_frame_options': 'DENY', 'x_xss_protection': '1; mode=block'} url=https://localhost:55000/security/user/authenticate user=wazuh password=wazuh method=POST validate_certs=no force_basic_auth=yes False {'cache_control': 'no-cache, no-store, must-revalidate, max-age=0', 'changed': False, 'connection': 'close', 'content_length': '433', 'content_security_policy': 'none', 'content_type': 'application/json; charset=utf-8', 'cookies': {}, 'cookies_string': '', 'date': 'Wed, 03 Jan 2024 10:55:37 GMT', 'elapsed': 0, 'expires': '0', 'json': {'data': {'token': 'eyJhbGciOiJFUzUxMiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJ3YXp1aCIsImF1ZCI6IldhenVoIEFQSSBSRVNUIiwibmJmIjoxNzA0Mjc5MzM3LCJleHAiOjE3MDQyODAyMzcsInN1YiI6IndhenVoIiwicnVuX2FzIjpmYWxzZSwicmJhY19yb2xlcyI6WzFdLCJyYmFjX21vZGUiOiJibGFjayJ9.AeegT3klWXeEF4PfVaQNT-kCG7kvn9S0zgaDRbdAS676L17BO__p8abYycP3Tq__MLXLkhC2OW2ux4ZEZxhG2i-FARPHDNrQMa8i9Q5-KugycEVqPcFTvE_0AHzzUx47YkWuzG17wnYQIkhx3ZCmXJRZJrCyLOXmCK6jhFdfxt3ebs7J'}, 'error': 0}, 'msg': 'OK (433 bytes)', 'pragma': 'no-cache', 'redirected': False, 'referrer_policy': 'no-referrer, strict-origin-when-cross-origin', 'status': 200, 'strict_transport_security': 'max-age=63072000; includeSubdomains', 'url': 'https://localhost:55000/security/user/authenticate', 'x_content_type_options': 'nosniff', 'x_frame_options': 'DENY', 'x_xss_protection': '1; mode=block'} ------------------------------Captured stdout call------------------------------ url=https://localhost:55000/security/user/authenticate user=testing_user password=Testing1* method=POST validate_certs=no force_basic_auth=yes False {'cache_control': 'no-cache, no-store, must-revalidate, max-age=0', 'changed': False, 'connection': 'close', 'content_length': '448', 'content_security_policy': 'none', 'content_type': 'application/json; charset=utf-8', 'cookies': {}, 'cookies_string': '', 'date': 'Wed, 03 Jan 2024 10:55:40 GMT', 'elapsed': 0, 'expires': '0', 'json': {'data': {'token': 'eyJhbGciOiJFUzUxMiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJ3YXp1aCIsImF1ZCI6IldhenVoIEFQSSBSRVNUIiwibmJmIjoxNzA0Mjc5MzQwLCJleHAiOjE3MDQyODAyNDAsInN1YiI6InRlc3RpbmdfdXNlciIsInJ1bl9hcyI6ZmFsc2UsInJiYWNfcm9sZXMiOlsxLDEwMF0sInJiYWNfbW9kZSI6ImJsYWNrIn0.AHdORdI0oxPp7EeMjwiZr5v2eogcbxsE1Cabo5Dy9KbpnhbnWd6zc69giGOEKyvxYjG_HC4cnP9M7BL45SvJugSrAY1I1VNi0iHKOW2X4V8Oc4DG394999SONycjeENz3lh9hlyayj2OggeBcq4QZIvS9WCTI7F6U_9knEvi4CHAyDIE'}, 'error': 0}, 'msg': 'OK (448 bytes)', 'pragma': 'no-cache', 'redirected': False, 'referrer_policy': 'no-referrer, strict-origin-when-cross-origin', 'status': 200, 'strict_transport_security': 'max-age=63072000; includeSubdomains', 'url': 'https://localhost:55000/security/user/authenticate', 'x_content_type_options': 'nosniff', 'x_frame_options': 'DENY', 'x_xss_protection': '1; mode=block'} url=https://localhost:55000/security/user/authenticate user=testing_user password=Testing1* method=POST validate_certs=no force_basic_auth=yes False {'cache_control': 'no-cache, no-store, must-revalidate, max-age=0', 'changed': False, 'connection': 'close', 'content_length': '448', 'content_security_policy': 'none', 'content_type': 'application/json; charset=utf-8', 'cookies': {}, 'cookies_string': '', 'date': 'Wed, 03 Jan 2024 10:55:46 GMT', 'elapsed': 0, 'expires': '0', 'json': {'data': {'token': 'eyJhbGciOiJFUzUxMiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJ3YXp1aCIsImF1ZCI6IldhenVoIEFQSSBSRVNUIiwibmJmIjoxNzA0Mjc5MzQ2LCJleHAiOjE3MDQyODAyNDYsInN1YiI6InRlc3RpbmdfdXNlciIsInJ1bl9hcyI6ZmFsc2UsInJiYWNfcm9sZXMiOlsxLDEwMF0sInJiYWNfbW9kZSI6ImJsYWNrIn0.ACxuyyGFButZp3pm1uxeopLcpYOeilw2WrRLJzYyRAMQAZ9jtJZidnTzrYjlQiQM73iADGEv2saUaveFX0kl_MnGAAWqjOpCvtmu_NC58OKXWmlACOcWrTSJLOK8KysPVlFhON_wtcJwt14VamPQu4sbLFfrmv7WW9jPWqEZuwCwl9c-'}, 'error': 0}, 'msg': 'OK (448 bytes)', 'pragma': 'no-cache', 'redirected': False, 'referrer_policy': 'no-referrer, strict-origin-when-cross-origin', 'status': 200, 'strict_transport_security': 'max-age=63072000; includeSubdomains', 'url': 'https://localhost:55000/security/user/authenticate', 'x_content_type_options': 'nosniff', 'x_frame_options': 'DENY', 'x_xss_protection': '1; mode=block'} url=https://localhost:55000/security/user/authenticate user=testing_user password=Testing1* method=POST validate_certs=no force_basic_auth=yes False {'cache_control': 'no-cache, no-store, must-revalidate, max-age=0', 'changed': False, 'connection': 'close', 'content_length': '448', 'content_security_policy': 'none', 'content_type': 'application/json; charset=utf-8', 'cookies': {}, 'cookies_string': '', 'date': 'Wed, 03 Jan 2024 10:55:51 GMT', 'elapsed': 0, 'expires': '0', 'json': {'data': {'token': 'eyJhbGciOiJFUzUxMiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJ3YXp1aCIsImF1ZCI6IldhenVoIEFQSSBSRVNUIiwibmJmIjoxNzA0Mjc5MzUxLCJleHAiOjE3MDQyODAyNTEsInN1YiI6InRlc3RpbmdfdXNlciIsInJ1bl9hcyI6ZmFsc2UsInJiYWNfcm9sZXMiOlsxLDEwMF0sInJiYWNfbW9kZSI6ImJsYWNrIn0.AZu6hjfKj1uO2r2NNk_HQtGfiobVtzLN6oG1B9q0knTV-nRd14lWKeEaKypI8H7-bLpFDcuHQxgKJfSEG2SzxQP1ALoUK3IOMLzLZWcPTvAiEKvUnU_BnNJWguf8WlMUVdBdpGpH00P9-cUHQxtJN6mWIgzg-lk689kIfCvIkg6myIKb'}, 'error': 0}, 'msg': 'OK (448 bytes)', 'pragma': 'no-cache', 'redirected': False, 'referrer_policy': 'no-referrer, strict-origin-when-cross-origin', 'status': 200, 'strict_transport_security': 'max-age=63072000; includeSubdomains', 'url': 'https://localhost:55000/security/user/authenticate', 'x_content_type_options': 'nosniff', 'x_frame_options': 'DENY', 'x_xss_protection': '1; mode=block'} | |||||||
Passed | 2024-01-03 11:06:45.142638 | test_jwt_invalidation/test_change_security_resources.py::test_change_user_policy_and_role[wazuh-worker1-wazuh-worker2-login_endpoint0] | Test that the obtained token is invalid after changing a role or policy related to the user. | 14.96 | agentless_cluster_env | ||
------------------------------Captured stdout call------------------------------ url=https://localhost:55000/security/user/authenticate user=testing_user password=Testing1* method=POST validate_certs=no force_basic_auth=yes False {'cache_control': 'no-cache, no-store, must-revalidate, max-age=0', 'changed': False, 'connection': 'close', 'content_length': '448', 'content_security_policy': 'none', 'content_type': 'application/json; charset=utf-8', 'cookies': {}, 'cookies_string': '', 'date': 'Wed, 03 Jan 2024 10:55:57 GMT', 'elapsed': 0, 'expires': '0', 'json': {'data': {'token': 'eyJhbGciOiJFUzUxMiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJ3YXp1aCIsImF1ZCI6IldhenVoIEFQSSBSRVNUIiwibmJmIjoxNzA0Mjc5MzU3LCJleHAiOjE3MDQyODAyNTcsInN1YiI6InRlc3RpbmdfdXNlciIsInJ1bl9hcyI6ZmFsc2UsInJiYWNfcm9sZXMiOlsxLDEwMF0sInJiYWNfbW9kZSI6ImJsYWNrIn0.AKQioNneAR3OHzM-JRjKhaSHECNbCS3jxwGYcGm0EI89HNn57dZXzeChgqPUOM4rUxaE0TobiUb51QNq2PTVXGSqAMdklEvzwkg1SLERs4rilYOO_0CkdLb3dopfbIyGH_W4OCoKbaQaEbAGDBdrdzRotf339wFBwgMKk_19nb5f3yCX'}, 'error': 0}, 'msg': 'OK (448 bytes)', 'pragma': 'no-cache', 'redirected': False, 'referrer_policy': 'no-referrer, strict-origin-when-cross-origin', 'status': 200, 'strict_transport_security': 'max-age=63072000; includeSubdomains', 'url': 'https://localhost:55000/security/user/authenticate', 'x_content_type_options': 'nosniff', 'x_frame_options': 'DENY', 'x_xss_protection': '1; mode=block'} url=https://localhost:55000/security/user/authenticate user=testing_user password=Testing1* method=POST validate_certs=no force_basic_auth=yes False {'cache_control': 'no-cache, no-store, must-revalidate, max-age=0', 'changed': False, 'connection': 'close', 'content_length': '448', 'content_security_policy': 'none', 'content_type': 'application/json; charset=utf-8', 'cookies': {}, 'cookies_string': '', 'date': 'Wed, 03 Jan 2024 10:56:03 GMT', 'elapsed': 0, 'expires': '0', 'json': {'data': {'token': 'eyJhbGciOiJFUzUxMiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJ3YXp1aCIsImF1ZCI6IldhenVoIEFQSSBSRVNUIiwibmJmIjoxNzA0Mjc5MzYzLCJleHAiOjE3MDQyODAyNjMsInN1YiI6InRlc3RpbmdfdXNlciIsInJ1bl9hcyI6ZmFsc2UsInJiYWNfcm9sZXMiOlsxLDEwMF0sInJiYWNfbW9kZSI6ImJsYWNrIn0.AFTjMxz5HF8NdRBquqKob8ddujJCcFnWCmwMvOzFfct_OzYCqoqVL6LR2IAtW2BoOoNUQqH9bXgjk9BXSwY9-2QTAHz5z1VJ51lSwgHqHDt99_1xp19E5f98Lm1dP5mDetQKvL6oJ8gXqw4IgyT9ginlYpGperaZd5Fn5UoHsos_Au8R'}, 'error': 0}, 'msg': 'OK (448 bytes)', 'pragma': 'no-cache', 'redirected': False, 'referrer_policy': 'no-referrer, strict-origin-when-cross-origin', 'status': 200, 'strict_transport_security': 'max-age=63072000; includeSubdomains', 'url': 'https://localhost:55000/security/user/authenticate', 'x_content_type_options': 'nosniff', 'x_frame_options': 'DENY', 'x_xss_protection': '1; mode=block'} url=https://localhost:55000/security/user/authenticate user=testing_user password=Testing1* method=POST validate_certs=no force_basic_auth=yes False {'cache_control': 'no-cache, no-store, must-revalidate, max-age=0', 'changed': False, 'connection': 'close', 'content_length': '448', 'content_security_policy': 'none', 'content_type': 'application/json; charset=utf-8', 'cookies': {}, 'cookies_string': '', 'date': 'Wed, 03 Jan 2024 10:56:08 GMT', 'elapsed': 0, 'expires': '0', 'json': {'data': {'token': 'eyJhbGciOiJFUzUxMiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJ3YXp1aCIsImF1ZCI6IldhenVoIEFQSSBSRVNUIiwibmJmIjoxNzA0Mjc5MzY4LCJleHAiOjE3MDQyODAyNjgsInN1YiI6InRlc3RpbmdfdXNlciIsInJ1bl9hcyI6ZmFsc2UsInJiYWNfcm9sZXMiOlsxLDEwMF0sInJiYWNfbW9kZSI6ImJsYWNrIn0.AUJhaseI0bmeQwXZWhgt0nUD8jtapU2FfCf1El7VJwr2O4azZXz3eHEAXXGMiYmSXj7c4axT7GZtVH4aVIKApEueAHNWw140O5LNvq5EHsR33w_TY3ekkuFfOaksZGk3-uvZ2IxD5NzdjEyRBIhMSf19NTkjT7nq8oga1aL8t7zfBhtu'}, 'error': 0}, 'msg': 'OK (448 bytes)', 'pragma': 'no-cache', 'redirected': False, 'referrer_policy': 'no-referrer, strict-origin-when-cross-origin', 'status': 200, 'strict_transport_security': 'max-age=63072000; includeSubdomains', 'url': 'https://localhost:55000/security/user/authenticate', 'x_content_type_options': 'nosniff', 'x_frame_options': 'DENY', 'x_xss_protection': '1; mode=block'} | |||||||
Passed | 2024-01-03 11:06:45.146471 | test_jwt_invalidation/test_disconnected_nodes.py::test_create_user_when_node_is_disconnected | Check that user information is not lost when different nodes from the cluster disconnect and reconnect. | 259.72 | agentless_cluster_env | ||
------------------------------Captured stdout call------------------------------ url=https://localhost:55000/security/user/authenticate user=wazuh password=wazuh method=POST validate_certs=no force_basic_auth=yes False {'cache_control': 'no-cache, no-store, must-revalidate, max-age=0', 'changed': False, 'connection': 'close', 'content_length': '433', 'content_security_policy': 'none', 'content_type': 'application/json; charset=utf-8', 'cookies': {}, 'cookies_string': '', 'date': 'Wed, 03 Jan 2024 10:58:38 GMT', 'elapsed': 0, 'expires': '0', 'json': {'data': {'token': 'eyJhbGciOiJFUzUxMiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJ3YXp1aCIsImF1ZCI6IldhenVoIEFQSSBSRVNUIiwibmJmIjoxNzA0Mjc5NTE4LCJleHAiOjE3MDQyODA0MTgsInN1YiI6IndhenVoIiwicnVuX2FzIjpmYWxzZSwicmJhY19yb2xlcyI6WzFdLCJyYmFjX21vZGUiOiJibGFjayJ9.Ac2IeyTKhpJ48Zgp9uZ8TXAQK83hcJq6rBOCA_H9LhOVi_UidQ_mALOSB-iUUTyN1Nca9rz6IODL5Gpsf4M8kybaAA1gmt-XkcUTZbFyMxQQ2DXWrfY9yfG5pIUbw0yCFqnZvjjrJWMU18h619CI1NMA2DZaRBmwlaTT6Yqf0mwpytfv'}, 'error': 0}, 'msg': 'OK (433 bytes)', 'pragma': 'no-cache', 'redirected': False, 'referrer_policy': 'no-referrer, strict-origin-when-cross-origin', 'status': 200, 'strict_transport_security': 'max-age=63072000; includeSubdomains', 'url': 'https://localhost:55000/security/user/authenticate', 'x_content_type_options': 'nosniff', 'x_frame_options': 'DENY', 'x_xss_protection': '1; mode=block'} url=https://localhost:55000/security/user/authenticate user=NewTestUser password=NewPassword1* method=POST validate_certs=no force_basic_auth=yes False {'cache_control': 'no-cache, no-store, must-revalidate, max-age=0', 'changed': False, 'connection': 'close', 'content_length': '440', 'content_security_policy': 'none', 'content_type': 'application/json; charset=utf-8', 'cookies': {}, 'cookies_string': '', 'date': 'Wed, 03 Jan 2024 10:59:09 GMT', 'elapsed': 0, 'expires': '0', 'json': {'data': {'token': 'eyJhbGciOiJFUzUxMiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJ3YXp1aCIsImF1ZCI6IldhenVoIEFQSSBSRVNUIiwibmJmIjoxNzA0Mjc5NTQ5LCJleHAiOjE3MDQyODA0NDksInN1YiI6Ik5ld1Rlc3RVc2VyIiwicnVuX2FzIjpmYWxzZSwicmJhY19yb2xlcyI6W10sInJiYWNfbW9kZSI6ImJsYWNrIn0.APl8J8kt6ypu6xPPiENPn_uuOfjPYUZcYlg3H2sqpm28HkTcCOH32Xko9OLk31Nszr-WqRWDPbLg61psXHIAFP5cABeCpL49XuTbqUTJABLMhp_lYPJcfz2YAuJpp63dBxjkYUutnp6OuCGWcxXDQk5PGlbh2t4QaiQiQngCoYbNExAj'}, 'error': 0}, 'msg': 'OK (440 bytes)', 'pragma': 'no-cache', 'redirected': False, 'referrer_policy': 'no-referrer, strict-origin-when-cross-origin', 'status': 200, 'strict_transport_security': 'max-age=63072000; includeSubdomains', 'url': 'https://localhost:55000/security/user/authenticate', 'x_content_type_options': 'nosniff', 'x_frame_options': 'DENY', 'x_xss_protection': '1; mode=block'} url=https://localhost:55000/security/user/authenticate user=NewTestUser password=NewPassword1* method=POST validate_certs=no force_basic_auth=yes False {'changed': False, 'connection': 'close', 'content_length': '59', 'content_type': 'application/problem+json; charset=utf-8', 'date': 'Wed, 03 Jan 2024 10:59:40 GMT', 'elapsed': 0, 'msg': 'Status code was 401 and not [200]: HTTP Error 401: Unauthorized', 'redirected': False, 'status': 401, 'url': 'https://localhost:55000/security/user/authenticate'} ----------------------------Captured stdout teardown---------------------------- url=https://localhost:55000/security/user/authenticate user=wazuh password=wazuh method=POST validate_certs=no force_basic_auth=yes False {'cache_control': 'no-cache, no-store, must-revalidate, max-age=0', 'changed': False, 'connection': 'close', 'content_length': '433', 'content_security_policy': 'none', 'content_type': 'application/json; charset=utf-8', 'cookies': {}, 'cookies_string': '', 'date': 'Wed, 03 Jan 2024 10:59:42 GMT', 'elapsed': 0, 'expires': '0', 'json': {'data': {'token': 'eyJhbGciOiJFUzUxMiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJ3YXp1aCIsImF1ZCI6IldhenVoIEFQSSBSRVNUIiwibmJmIjoxNzA0Mjc5NTgyLCJleHAiOjE3MDQyODA0ODIsInN1YiI6IndhenVoIiwicnVuX2FzIjpmYWxzZSwicmJhY19yb2xlcyI6WzFdLCJyYmFjX21vZGUiOiJibGFjayJ9.AB5YBH73owF0Nq22hS5GCp-roPqXNezum8jDsXndA5kQgVHop6Y3Egqhncq1qisVGzphlCIZL6GqWeLw7-uqewXHAWXGSULA6LJ8S0fmzMI4GWZ15bM6kofCapxoOT-NoVCPZ8l2kcFY7JHeCJxWmlXXnixbncpwAjuJ4eeuczA-jTB2'}, 'error': 0}, 'msg': 'OK (433 bytes)', 'pragma': 'no-cache', 'redirected': False, 'referrer_policy': 'no-referrer, strict-origin-when-cross-origin', 'status': 200, 'strict_transport_security': 'max-age=63072000; includeSubdomains', 'url': 'https://localhost:55000/security/user/authenticate', 'x_content_type_options': 'nosniff', 'x_frame_options': 'DENY', 'x_xss_protection': '1; mode=block'} | |||||||
Passed | 2024-01-03 11:06:45.146596 | test_jwt_invalidation/test_revoke_endpoint.py::test_revoke_all_tokens_with_api[wazuh-master-login_endpoint0] | Test that every token gets revoked after making an API call to 'PUT /security/user/revoke'. | 84.86 | agentless_cluster_env | ||
------------------------------Captured stdout call------------------------------ url=https://localhost:55000/security/user/authenticate user=wazuh password=wazuh method=POST validate_certs=no force_basic_auth=yes False {'cache_control': 'no-cache, no-store, must-revalidate, max-age=0', 'changed': False, 'connection': 'close', 'content_length': '433', 'content_security_policy': 'none', 'content_type': 'application/json; charset=utf-8', 'cookies': {}, 'cookies_string': '', 'date': 'Wed, 03 Jan 2024 11:02:50 GMT', 'elapsed': 0, 'expires': '0', 'json': {'data': {'token': 'eyJhbGciOiJFUzUxMiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJ3YXp1aCIsImF1ZCI6IldhenVoIEFQSSBSRVNUIiwibmJmIjoxNzA0Mjc5NzcwLCJleHAiOjE3MDQyODA2NzAsInN1YiI6IndhenVoIiwicnVuX2FzIjpmYWxzZSwicmJhY19yb2xlcyI6WzFdLCJyYmFjX21vZGUiOiJibGFjayJ9.ANFWUtxTB9ntNwoh16jcXxn9xTufXa94AXAASqIK_7X7A_FDyqxL82hlngbwdw93ibSrUOPi1n82yU4g1YwKKf_pAS0iaGmd9BvoFonbObxKwd8gKkwJWxkBdL7jW-KGfToFMNA3dTxKLs_rjn-SH0URM50pVe2emUWzzsIoto3jXPfZ'}, 'error': 0}, 'msg': 'OK (433 bytes)', 'pragma': 'no-cache', 'redirected': False, 'referrer_policy': 'no-referrer, strict-origin-when-cross-origin', 'status': 200, 'strict_transport_security': 'max-age=63072000; includeSubdomains', 'url': 'https://localhost:55000/security/user/authenticate', 'x_content_type_options': 'nosniff', 'x_frame_options': 'DENY', 'x_xss_protection': '1; mode=block'} url=https://localhost:55000/security/user/authenticate user=wazuh password=wazuh method=POST validate_certs=no force_basic_auth=yes False {'cache_control': 'no-cache, no-store, must-revalidate, max-age=0', 'changed': False, 'connection': 'close', 'content_length': '433', 'content_security_policy': 'none', 'content_type': 'application/json; charset=utf-8', 'cookies': {}, 'cookies_string': '', 'date': 'Wed, 03 Jan 2024 11:02:52 GMT', 'elapsed': 0, 'expires': '0', 'json': {'data': {'token': 'eyJhbGciOiJFUzUxMiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJ3YXp1aCIsImF1ZCI6IldhenVoIEFQSSBSRVNUIiwibmJmIjoxNzA0Mjc5NzcyLCJleHAiOjE3MDQyODA2NzIsInN1YiI6IndhenVoIiwicnVuX2FzIjpmYWxzZSwicmJhY19yb2xlcyI6WzFdLCJyYmFjX21vZGUiOiJibGFjayJ9.AEDDxecUmmejyE1vciRXl88ECqpluiVTOeqAiOHRTsYWibIDNTToamrCXeIuThoWuRyu1c_lj7_uXa5jCjWQZUQzAWTfoIEcJTiq_FOfwgWZXEH8EgvCiovgZle9yRgRI8Rru5EmfRXqcUDuV9xwE5A6Xk2OuCwc60z6zc9r7Exs2l_G'}, 'error': 0}, 'msg': 'OK (433 bytes)', 'pragma': 'no-cache', 'redirected': False, 'referrer_policy': 'no-referrer, strict-origin-when-cross-origin', 'status': 200, 'strict_transport_security': 'max-age=63072000; includeSubdomains', 'url': 'https://localhost:55000/security/user/authenticate', 'x_content_type_options': 'nosniff', 'x_frame_options': 'DENY', 'x_xss_protection': '1; mode=block'} url=https://localhost:55000/security/user/authenticate user=wazuh password=wazuh method=POST validate_certs=no force_basic_auth=yes False {'cache_control': 'no-cache, no-store, must-revalidate, max-age=0', 'changed': False, 'connection': 'close', 'content_length': '433', 'content_security_policy': 'none', 'content_type': 'application/json; charset=utf-8', 'cookies': {}, 'cookies_string': '', 'date': 'Wed, 03 Jan 2024 11:02:54 GMT', 'elapsed': 0, 'expires': '0', 'json': {'data': {'token': 'eyJhbGciOiJFUzUxMiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJ3YXp1aCIsImF1ZCI6IldhenVoIEFQSSBSRVNUIiwibmJmIjoxNzA0Mjc5Nzc0LCJleHAiOjE3MDQyODA2NzQsInN1YiI6IndhenVoIiwicnVuX2FzIjpmYWxzZSwicmJhY19yb2xlcyI6WzFdLCJyYmFjX21vZGUiOiJibGFjayJ9.ABjOzFV-GMDPOVrAi0dLDY_3sf3ePEoHArYBNwSjvXbXx3yLf7SEQh-xKwSpsJSdxuGUsT5JVDVArNBFR17ce5leAU7f6TIIhm-luFQm3icJ9yEd-Hjl71Evc8E3-4s7WjBcGtvywW-Bm6_YeaRw-KS8qbbflvAbRRwmdjwl9SetTGwh'}, 'error': 0}, 'msg': 'OK (433 bytes)', 'pragma': 'no-cache', 'redirected': False, 'referrer_policy': 'no-referrer, strict-origin-when-cross-origin', 'status': 200, 'strict_transport_security': 'max-age=63072000; includeSubdomains', 'url': 'https://localhost:55000/security/user/authenticate', 'x_content_type_options': 'nosniff', 'x_frame_options': 'DENY', 'x_xss_protection': '1; mode=block'} | |||||||
Passed | 2024-01-03 11:06:45.148937 | test_jwt_invalidation/test_revoke_endpoint.py::test_revoke_all_tokens_with_api[wazuh-worker1-login_endpoint0] | Test that every token gets revoked after making an API call to 'PUT /security/user/revoke'. | 15.51 | agentless_cluster_env | ||
------------------------------Captured stdout call------------------------------ url=https://localhost:55000/security/user/authenticate user=wazuh password=wazuh method=POST validate_certs=no force_basic_auth=yes False {'cache_control': 'no-cache, no-store, must-revalidate, max-age=0', 'changed': False, 'connection': 'close', 'content_length': '433', 'content_security_policy': 'none', 'content_type': 'application/json; charset=utf-8', 'cookies': {}, 'cookies_string': '', 'date': 'Wed, 03 Jan 2024 11:03:08 GMT', 'elapsed': 0, 'expires': '0', 'json': {'data': {'token': 'eyJhbGciOiJFUzUxMiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJ3YXp1aCIsImF1ZCI6IldhenVoIEFQSSBSRVNUIiwibmJmIjoxNzA0Mjc5Nzg4LCJleHAiOjE3MDQyODA2ODgsInN1YiI6IndhenVoIiwicnVuX2FzIjpmYWxzZSwicmJhY19yb2xlcyI6WzFdLCJyYmFjX21vZGUiOiJibGFjayJ9.AINYBBKj2HAZ5EK2P9rKYUWClHvDvOGxBId-Q1sZ5q3v_LX4ygO6LFax4B6kNw0Q6ZKi2l5KjC1i5hnZHis_PgsQAJaybQXtPOX_EZyCu1LwDO-dK6MyemdaYyqIi6jgFsj5P5JNXV7puedEyYrPkzRd6ZobBnT1YnkJM0esu65JIGrd'}, 'error': 0}, 'msg': 'OK (433 bytes)', 'pragma': 'no-cache', 'redirected': False, 'referrer_policy': 'no-referrer, strict-origin-when-cross-origin', 'status': 200, 'strict_transport_security': 'max-age=63072000; includeSubdomains', 'url': 'https://localhost:55000/security/user/authenticate', 'x_content_type_options': 'nosniff', 'x_frame_options': 'DENY', 'x_xss_protection': '1; mode=block'} url=https://localhost:55000/security/user/authenticate user=wazuh password=wazuh method=POST validate_certs=no force_basic_auth=yes False {'cache_control': 'no-cache, no-store, must-revalidate, max-age=0', 'changed': False, 'connection': 'close', 'content_length': '433', 'content_security_policy': 'none', 'content_type': 'application/json; charset=utf-8', 'cookies': {}, 'cookies_string': '', 'date': 'Wed, 03 Jan 2024 11:03:10 GMT', 'elapsed': 0, 'expires': '0', 'json': {'data': {'token': 'eyJhbGciOiJFUzUxMiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJ3YXp1aCIsImF1ZCI6IldhenVoIEFQSSBSRVNUIiwibmJmIjoxNzA0Mjc5NzkwLCJleHAiOjE3MDQyODA2OTAsInN1YiI6IndhenVoIiwicnVuX2FzIjpmYWxzZSwicmJhY19yb2xlcyI6WzFdLCJyYmFjX21vZGUiOiJibGFjayJ9.ATso1a6Jmyqm3v61gXju7TvCVe_BUzN7nBnUPu0-Ylo_F-2kU-FWrprEFpE5GTpZEubgT2EmVJSC5JmWRjZkpoQBAZBaGX82cS57aJe2dT4eItPVMFzgMDWLegFfN9CS3t9JhXmYYJitncHeKc1RJWpHL53EKKqtijherxtBO1PIPrjN'}, 'error': 0}, 'msg': 'OK (433 bytes)', 'pragma': 'no-cache', 'redirected': False, 'referrer_policy': 'no-referrer, strict-origin-when-cross-origin', 'status': 200, 'strict_transport_security': 'max-age=63072000; includeSubdomains', 'url': 'https://localhost:55000/security/user/authenticate', 'x_content_type_options': 'nosniff', 'x_frame_options': 'DENY', 'x_xss_protection': '1; mode=block'} url=https://localhost:55000/security/user/authenticate user=wazuh password=wazuh method=POST validate_certs=no force_basic_auth=yes False {'cache_control': 'no-cache, no-store, must-revalidate, max-age=0', 'changed': False, 'connection': 'close', 'content_length': '433', 'content_security_policy': 'none', 'content_type': 'application/json; charset=utf-8', 'cookies': {}, 'cookies_string': '', 'date': 'Wed, 03 Jan 2024 11:03:11 GMT', 'elapsed': 0, 'expires': '0', 'json': {'data': {'token': 'eyJhbGciOiJFUzUxMiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJ3YXp1aCIsImF1ZCI6IldhenVoIEFQSSBSRVNUIiwibmJmIjoxNzA0Mjc5NzkxLCJleHAiOjE3MDQyODA2OTEsInN1YiI6IndhenVoIiwicnVuX2FzIjpmYWxzZSwicmJhY19yb2xlcyI6WzFdLCJyYmFjX21vZGUiOiJibGFjayJ9.AVJynYqKgiZZNczbimNzETC8KFloAgewdZqobG6aynAu_83NdEPCk4kUi_bchebQSmWtb3YE_L6VUwSHp9DRnJ1KAaXxJ7CuwL0kXaVmn6lWwFwOEmb15U2SYYicYK2QZgSnUkL0WCJ1BTwsg-fIAKABnlJIAeFRFBcJQ_IKbHG6EAc5'}, 'error': 0}, 'msg': 'OK (433 bytes)', 'pragma': 'no-cache', 'redirected': False, 'referrer_policy': 'no-referrer, strict-origin-when-cross-origin', 'status': 200, 'strict_transport_security': 'max-age=63072000; includeSubdomains', 'url': 'https://localhost:55000/security/user/authenticate', 'x_content_type_options': 'nosniff', 'x_frame_options': 'DENY', 'x_xss_protection': '1; mode=block'} | |||||||
Passed | 2024-01-03 11:06:45.152137 | test_jwt_invalidation/test_revoke_endpoint.py::test_revoke_all_tokens_with_api[wazuh-worker2-login_endpoint0] | Test that every token gets revoked after making an API call to 'PUT /security/user/revoke'. | 15.87 | agentless_cluster_env | ||
------------------------------Captured stdout call------------------------------ url=https://localhost:55000/security/user/authenticate user=wazuh password=wazuh method=POST validate_certs=no force_basic_auth=yes False {'cache_control': 'no-cache, no-store, must-revalidate, max-age=0', 'changed': False, 'connection': 'close', 'content_length': '433', 'content_security_policy': 'none', 'content_type': 'application/json; charset=utf-8', 'cookies': {}, 'cookies_string': '', 'date': 'Wed, 03 Jan 2024 11:03:26 GMT', 'elapsed': 0, 'expires': '0', 'json': {'data': {'token': 'eyJhbGciOiJFUzUxMiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJ3YXp1aCIsImF1ZCI6IldhenVoIEFQSSBSRVNUIiwibmJmIjoxNzA0Mjc5ODA2LCJleHAiOjE3MDQyODA3MDYsInN1YiI6IndhenVoIiwicnVuX2FzIjpmYWxzZSwicmJhY19yb2xlcyI6WzFdLCJyYmFjX21vZGUiOiJibGFjayJ9.AJEUIN2rJMqGlVsSltRVeVKQhJFXKi7gYmukBtLXkQp4-P37GmN1AqHJ9rxXrE0HARpA8l6P_kDqWVOMoYpKSoD-AYEvAcsYs9vt23x9cdKhraJKR7s-fDwaSNEzG48sjD9e9kqv_FoUrafvNYME0SlX4Rt_B9bYBKyLZoe16sLTggXH'}, 'error': 0}, 'msg': 'OK (433 bytes)', 'pragma': 'no-cache', 'redirected': False, 'referrer_policy': 'no-referrer, strict-origin-when-cross-origin', 'status': 200, 'strict_transport_security': 'max-age=63072000; includeSubdomains', 'url': 'https://localhost:55000/security/user/authenticate', 'x_content_type_options': 'nosniff', 'x_frame_options': 'DENY', 'x_xss_protection': '1; mode=block'} url=https://localhost:55000/security/user/authenticate user=wazuh password=wazuh method=POST validate_certs=no force_basic_auth=yes False {'cache_control': 'no-cache, no-store, must-revalidate, max-age=0', 'changed': False, 'connection': 'close', 'content_length': '433', 'content_security_policy': 'none', 'content_type': 'application/json; charset=utf-8', 'cookies': {}, 'cookies_string': '', 'date': 'Wed, 03 Jan 2024 11:03:28 GMT', 'elapsed': 0, 'expires': '0', 'json': {'data': {'token': 'eyJhbGciOiJFUzUxMiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJ3YXp1aCIsImF1ZCI6IldhenVoIEFQSSBSRVNUIiwibmJmIjoxNzA0Mjc5ODA4LCJleHAiOjE3MDQyODA3MDgsInN1YiI6IndhenVoIiwicnVuX2FzIjpmYWxzZSwicmJhY19yb2xlcyI6WzFdLCJyYmFjX21vZGUiOiJibGFjayJ9.ASGaviGBDVJME-c8koTd1zsrMPWTDNIrtRbsQMtYs5pNohPVkyKzIdwf35Fp6rW1nT6eA7R4H2MDeUJhreCfdsXsAXM8U27ulDBMVQUpHzF-sPLvZlT5AZdfC3jHKR5iKao6GlhOzVhzHQFAbYnoWYZVCRpvkFoAP6IaNMfhmDRVLGKJ'}, 'error': 0}, 'msg': 'OK (433 bytes)', 'pragma': 'no-cache', 'redirected': False, 'referrer_policy': 'no-referrer, strict-origin-when-cross-origin', 'status': 200, 'strict_transport_security': 'max-age=63072000; includeSubdomains', 'url': 'https://localhost:55000/security/user/authenticate', 'x_content_type_options': 'nosniff', 'x_frame_options': 'DENY', 'x_xss_protection': '1; mode=block'} url=https://localhost:55000/security/user/authenticate user=wazuh password=wazuh method=POST validate_certs=no force_basic_auth=yes False {'cache_control': 'no-cache, no-store, must-revalidate, max-age=0', 'changed': False, 'connection': 'close', 'content_length': '433', 'content_security_policy': 'none', 'content_type': 'application/json; charset=utf-8', 'cookies': {}, 'cookies_string': '', 'date': 'Wed, 03 Jan 2024 11:03:29 GMT', 'elapsed': 0, 'expires': '0', 'json': {'data': {'token': 'eyJhbGciOiJFUzUxMiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJ3YXp1aCIsImF1ZCI6IldhenVoIEFQSSBSRVNUIiwibmJmIjoxNzA0Mjc5ODA5LCJleHAiOjE3MDQyODA3MDksInN1YiI6IndhenVoIiwicnVuX2FzIjpmYWxzZSwicmJhY19yb2xlcyI6WzFdLCJyYmFjX21vZGUiOiJibGFjayJ9.AJW_Fw5mh5Xos1GLnCQvIqGtRELL4f509zAg3ToHWOlJVyH4jAe6D-8khEFidrLAIn5d6rhVxq2O9tL6kEt40TLoAO_Mtmi52pCLuoQlVBE3rOz1ghRnqMfeN6yIBy8-CyrMwHnrhQCXiiMFTW6Qp-movoxBV-C_FN_0doBWEq0M94np'}, 'error': 0}, 'msg': 'OK (433 bytes)', 'pragma': 'no-cache', 'redirected': False, 'referrer_policy': 'no-referrer, strict-origin-when-cross-origin', 'status': 200, 'strict_transport_security': 'max-age=63072000; includeSubdomains', 'url': 'https://localhost:55000/security/user/authenticate', 'x_content_type_options': 'nosniff', 'x_frame_options': 'DENY', 'x_xss_protection': '1; mode=block'} | |||||||
Passed | 2024-01-03 11:06:45.156686 | test_jwt_invalidation/test_update_password.py::test_update_password[login_endpoint0-wazuh-master-None-Newpass1*] | Test that the obtained token is invalid after updating the password from its user. | 65.43 | agentless_cluster_env | ||
-----------------------------Captured stdout setup------------------------------ url=https://localhost:55000/security/user/authenticate user=wazuh password=wazuh method=POST validate_certs=no force_basic_auth=yes False {'cache_control': 'no-cache, no-store, must-revalidate, max-age=0', 'changed': False, 'connection': 'close', 'content_length': '433', 'content_security_policy': 'none', 'content_type': 'application/json; charset=utf-8', 'cookies': {}, 'cookies_string': '', 'date': 'Wed, 03 Jan 2024 11:05:28 GMT', 'elapsed': 0, 'expires': '0', 'json': {'data': {'token': 'eyJhbGciOiJFUzUxMiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJ3YXp1aCIsImF1ZCI6IldhenVoIEFQSSBSRVNUIiwibmJmIjoxNzA0Mjc5OTI4LCJleHAiOjE3MDQyODA4MjgsInN1YiI6IndhenVoIiwicnVuX2FzIjpmYWxzZSwicmJhY19yb2xlcyI6WzFdLCJyYmFjX21vZGUiOiJibGFjayJ9.AK3M25pkMt8hRAO1SPkyWb74uXoOc4tz2iR-jGOwaVEnT2LIjrRq5iiKAYT_kFdSKEOsVtsDTALm2dpD3E0Nn4hDAFDPSNXngX6DP1dSjG4pl_Dp0ZjoDLX84A8wcmLGfXnvs0gCk3voluz4dXxkZameDldStXYKSqfg2LEAD_ZNRUOg'}, 'error': 0}, 'msg': 'OK (433 bytes)', 'pragma': 'no-cache', 'redirected': False, 'referrer_policy': 'no-referrer, strict-origin-when-cross-origin', 'status': 200, 'strict_transport_security': 'max-age=63072000; includeSubdomains', 'url': 'https://localhost:55000/security/user/authenticate', 'x_content_type_options': 'nosniff', 'x_frame_options': 'DENY', 'x_xss_protection': '1; mode=block'} url=https://localhost:55000/security/user/authenticate user=wazuh password=wazuh method=POST validate_certs=no force_basic_auth=yes False {'cache_control': 'no-cache, no-store, must-revalidate, max-age=0', 'changed': False, 'connection': 'close', 'content_length': '433', 'content_security_policy': 'none', 'content_type': 'application/json; charset=utf-8', 'cookies': {}, 'cookies_string': '', 'date': 'Wed, 03 Jan 2024 11:05:35 GMT', 'elapsed': 0, 'expires': '0', 'json': {'data': {'token': 'eyJhbGciOiJFUzUxMiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJ3YXp1aCIsImF1ZCI6IldhenVoIEFQSSBSRVNUIiwibmJmIjoxNzA0Mjc5OTM1LCJleHAiOjE3MDQyODA4MzUsInN1YiI6IndhenVoIiwicnVuX2FzIjpmYWxzZSwicmJhY19yb2xlcyI6WzFdLCJyYmFjX21vZGUiOiJibGFjayJ9.AJnLFnbN9E0ob_c047wkzFAHlTvTlpt2tx_f4pczWyO1_3wgzjDwhZ9BBWYz-ea4tAtC4XcbsOTMrRcZzvg49uqHAZ5yvpThtwD6nk14pJJVnhKzw-t9kwczm-9atlJ0mVttwXDtf3aUzT-iuVGwFZTLINVcHkpidZRUFycnckIL213M'}, 'error': 0}, 'msg': 'OK (433 bytes)', 'pragma': 'no-cache', 'redirected': False, 'referrer_policy': 'no-referrer, strict-origin-when-cross-origin', 'status': 200, 'strict_transport_security': 'max-age=63072000; includeSubdomains', 'url': 'https://localhost:55000/security/user/authenticate', 'x_content_type_options': 'nosniff', 'x_frame_options': 'DENY', 'x_xss_protection': '1; mode=block'} ------------------------------Captured stdout call------------------------------ url=https://localhost:55000/security/user/authenticate user=testing_user password=Testing1* method=POST validate_certs=no force_basic_auth=yes False {'cache_control': 'no-cache, no-store, must-revalidate, max-age=0', 'changed': False, 'connection': 'close', 'content_length': '443', 'content_security_policy': 'none', 'content_type': 'application/json; charset=utf-8', 'cookies': {}, 'cookies_string': '', 'date': 'Wed, 03 Jan 2024 11:05:44 GMT', 'elapsed': 0, 'expires': '0', 'json': {'data': {'token': 'eyJhbGciOiJFUzUxMiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJ3YXp1aCIsImF1ZCI6IldhenVoIEFQSSBSRVNUIiwibmJmIjoxNzA0Mjc5OTQ0LCJleHAiOjE3MDQyODA4NDQsInN1YiI6InRlc3RpbmdfdXNlciIsInJ1bl9hcyI6ZmFsc2UsInJiYWNfcm9sZXMiOlsxXSwicmJhY19tb2RlIjoiYmxhY2sifQ.AKFpD0RkWvw_1QcAvtvoFJ0iXN55rz1DYuCzdMYYVKHHWboXBkYQO_XRocQOMhwRg4rQwbfUu6jHO4z2xXLZAK4FAfrESypXFstEmyLgh1KGcj-hxFg2O0nfIhnYVfYi8ye5HDg1kExV6uqRm93KPIZb6wg_WtE7-UY9DaEFPFk6vu2e'}, 'error': 0}, 'msg': 'OK (443 bytes)', 'pragma': 'no-cache', 'redirected': False, 'referrer_policy': 'no-referrer, strict-origin-when-cross-origin', 'status': 200, 'strict_transport_security': 'max-age=63072000; includeSubdomains', 'url': 'https://localhost:55000/security/user/authenticate', 'x_content_type_options': 'nosniff', 'x_frame_options': 'DENY', 'x_xss_protection': '1; mode=block'} | |||||||
Passed | 2024-01-03 11:06:45.156990 | test_jwt_invalidation/test_update_password.py::test_update_password[login_endpoint1-wazuh-worker1-Newpass1*-Newpass2*] | Test that the obtained token is invalid after updating the password from its user. | 4.96 | agentless_cluster_env | ||
------------------------------Captured stdout call------------------------------ url=https://localhost:55000/security/user/authenticate user=testing_user password=Newpass1* method=POST validate_certs=no force_basic_auth=yes False {'cache_control': 'no-cache, no-store, must-revalidate, max-age=0', 'changed': False, 'connection': 'close', 'content_length': '443', 'content_security_policy': 'none', 'content_type': 'application/json; charset=utf-8', 'cookies': {}, 'cookies_string': '', 'date': 'Wed, 03 Jan 2024 11:05:49 GMT', 'elapsed': 0, 'expires': '0', 'json': {'data': {'token': 'eyJhbGciOiJFUzUxMiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJ3YXp1aCIsImF1ZCI6IldhenVoIEFQSSBSRVNUIiwibmJmIjoxNzA0Mjc5OTQ5LCJleHAiOjE3MDQyODA4NDksInN1YiI6InRlc3RpbmdfdXNlciIsInJ1bl9hcyI6ZmFsc2UsInJiYWNfcm9sZXMiOlsxXSwicmJhY19tb2RlIjoiYmxhY2sifQ.AFYAmWSH8RfYJCPoAR_N7tynCbcfs6YLS0w2i4XEck_V0aFXqiZMy6_6XqGiTkKcbglpxYT873t5sBAAVony5_96ADgQPIYej86GZR6SPaVkQX1vZCSiZGWhWtS5mhXiGk3qKTDZ2RGQ51fqLmnlWELWNg5Nvx3C166b-llVIyBk28un'}, 'error': 0}, 'msg': 'OK (443 bytes)', 'pragma': 'no-cache', 'redirected': False, 'referrer_policy': 'no-referrer, strict-origin-when-cross-origin', 'status': 200, 'strict_transport_security': 'max-age=63072000; includeSubdomains', 'url': 'https://localhost:55000/security/user/authenticate', 'x_content_type_options': 'nosniff', 'x_frame_options': 'DENY', 'x_xss_protection': '1; mode=block'} |