mirror of
https://github.com/ansible-collections/community.general.git
synced 2026-06-11 18:45:34 +00:00
* fix(htpasswd): support HtpasswdFile aliases and Apache-compatible bcrypt CryptContext does not recognise HtpasswdFile alias names such as portable, portable_apache_24, host_apache_24, causing a KeyError. In addition, building a CryptContext for bcrypt produced $2b$ hashes that Apache rejects (it only accepts $2y$/$2a$). Use htpasswd_context for schemes it already supports, fall back to htpasswd_context on KeyError for aliases, and import CryptContext from module_utils/_crypt.py instead of passlib directly. Fixes #6135 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(changelog): add fragment for PR 12123 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * fix(_crypt): silence DeprecationWarning when importing stdlib crypt On Python 3.11/3.12, `import crypt` emits a DeprecationWarning that ansible-test sanity --test import treats as an error. Suppress it since the import is an intentional fallback when passlib is not available. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * fix(htpasswd): fix sanity ignores and bcrypt version constraint - Revert _crypt.py DeprecationWarning suppression; add sanity ignore entries for htpasswd.py import-3.11/3.12 instead (mirrors existing entries for _crypt.py itself) - Pin bcrypt<4.2 in integration tests: bcrypt 4.2 removed __about__ which passlib 1.7.x uses, breaking passlib.apache import - Fix regex_search assertion to use 'is not none' for a boolean result - Add bcrypt version constraint note to module documentation Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * fix(htpasswd): handle system-installed bcrypt in integration tests On Debian/Ubuntu, bcrypt may be installed by the system package manager with no RECORD file, making pip downgrade impossible. Move bcrypt installation into a self-contained block in test_schemes.yml with ignore_errors, a functional passlib+bcrypt check, and always-cleanup. Bcrypt tests are skipped when a compatible version cannot be used. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * refactor(htpasswd): extract obtain_crypt_context(); import CryptContext from passlib directly Extract context selection logic into obtain_crypt_context(). Import CryptContext inside the deps.declare("passlib") block instead of from module_utils/_crypt.py — passlib is already a hard dependency and other symbols are imported from it there. Remove now-unnecessary htpasswd.py sanity import ignore entries. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| fragments | ||
| .gitignore | ||
| changelog.yaml | ||
| changelog.yaml.license | ||
| config.yaml | ||