You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ansible/test/units/module_utils
Yacht Shaver c7334ea92c
Fix url encoded credentials in netloc (#82552)
Prior to this commit, it was impossible to use a module like dnf with a
URL that contains a username with an @ such as an email address
username, because:

  dnf:
    name: https://foo@example.com:bar@example.com/some.rpm

Would cause netloc parsing to fail. However, the following:

  dnf:
    name: https://foo%40example.com:bar@example.com/some.rpm

Would also fail because ansible would *not* URL-decode the credentials,
causing the following to be base64 encoded in the Authorization header:

  Zm9vJTQwZXhhbXBsZS5jb206YmFyCg==

Which decodes to:

  foo%40example.com:foo

Which is *not* the authorized username, and as such, *won't* pass basic
auth.

With this commit, Ansible's url lib behaves like curl, chromium, wget,
etc, and encodes the above to:

  Zm9vQGV4YW1wbGUuY29tOmJhcgo=

Which decodes to:

  foo@example.com:bar

Which will actually pass the HTTP Basic Auth, and is the same behaviour
that you will find ie. with:

  curl -vvI https://foo%40bar:test@example.com 2>&1 |grep Auth | awk '{ print $4 }'
5 months ago
..
basic 🔥 Exterminate `__builtin__` import from tests (#82569) 5 months ago
common Remove Python 2 compat (via six) from unit tests 8 months ago
compat Remove Python 2 compat (via six) from unit tests 8 months ago
facts Add Alp-Dolomite to Suse family list (#82496) 6 months ago
json_utils Remove Python 2.x compat from unit tests (#82109) 8 months ago
parsing Require `from __future__ import annotations` (#81902) 9 months ago
urls Fix url encoded credentials in netloc (#82552) 5 months ago
__init__.py Add empty-init code-smell script. (#18406) 8 years ago
conftest.py Remove Python 2 compat (via six) from unit tests 8 months ago
test_api.py Require `from __future__ import annotations` (#81902) 9 months ago
test_connection.py Require `from __future__ import annotations` (#81902) 9 months ago
test_distro.py Remove unused/unreachable unit test code (#82160) 8 months ago
test_text.py Remove Python 2 compat (via six) from unit tests 8 months ago