Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

Buldout recipe for create htpasswd files

Introdution

This recipe can be used to generate files for basic authentication of HTTP users, to restrict the access to HTTP resoruces. The aim is to be fully compatible with the htpasswd program that come with the Apache httpd Server, and support all the password formats that it supports. This formats, with some minor diffenrences in the case of the plain method, are also supported by the auth_basic module of the nginx http server.

This recipe support crypt, md5 (APR md5 algorithm), plain and sha1 algorithms for storage passwords. The crypt algorithm is based on the system’s crypt() routine, so it inherits its limitations (see: man 5 crypt).

Note: The plaintext passowrds are only accepted by the Apache httpd server on Windows and Netware.

Caution: This recipe should not be used to update an existing htpasswd file, because it overwritte the htpasswd file in every update.

Example usage

The simplest way to use this recipe is to add a part in buildout.cfg like this:

[buildout]
parts = htpasswd

[htpasswd]
recipe = collective.recipe.htpasswd
output = ${buildout:directory}/etc/htpasswd
credentials =
    nueces:secret
    nutz:crackme

One example using the sha1 algorithm:

[buildout]
parts = htpasswd

[htpasswd]
recipe = collective.recipe.htpasswd
output = ${buildout:directory}/etc/htpasswd
algorithm = sha1
credentials =
    nueces:secret
    nutz:crackme

For use the md5 algorithm this recipe relies in the python-aprmd5 package, then to install it you must modify the buildout part to include the md5 extras_require setting and install the build depencies for the python-aprmd5 package. In Debian GNU/Linux the package is the libaprutil1-dev. It contain the develoment headers of the Apache Portable Runtime Utility Library.

After that modify the part in the buildout.cfg it must look like this:

[buildout]
parts = htpasswd

[htpasswd]
recipe = collective.recipe.htpasswd [md5]
output = ${buildout:directory}/etc/htpasswd
algorithm = md5
credentials =
    nueces:secret
    nutz:crackme

Note: For a bug in zc.buildout if you need to use this recipe with the md5 and the plain or crypt algorithms in two o more parts, you must declare first the one that use the md5 extras_require.

Supported options

  • output: Specify a path to the output file. The path will be created if it does not exist.

  • credentials: One set per line of credentials formed by username and password separated by a colon. e.g. <username>:<password>.

  • mode: Specified with octal numbers, as in the chmod program. e.g. 640. If it not set the file are created with the mask mode from the system enviroment.

  • algorithm: The supported options are crypt, md5, plain and sha1. Default to cypt.

Development

Contributors

Juan A. Diaz (nueces), Author

History

0.1a3 (2013-03-27)

  • Added support for the sha1 algorithm. [Juan A. Diaz (nueces)]

0.1a2 (2013-02-18)

  • Added support for the apr md5 algorithm. [Juan A. Diaz (nueces)]

0.1a1 (2013-01-30)

  • Created recipe with ZopeSkel

  • Initial alpha release. [Juan A. Diaz (nueces)]

Download

Metadata

Release files for collective.recipe.htpasswd 0.1a3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for collective.recipe.htpasswd 0.1a3
File Size Uploaded Provenance Actions
collective.recipe.htpasswd-0.1a3.zip 32.5 kB Without provenance Details for collective.recipe.htpasswd-0.1a3.zip

Release files / collective.recipe.htpasswd-0.1a3.zip

Download URL collective.recipe.htpasswd-0.1a3.zip
Size 32.5 kB
Tags Source
SHA-256 checksum
How to use checksums
18cc69c1a6541d92d777861ea94e2691b90b760ac48abf4c2af36e9116a5b21d
BLAKE2b-256 checksum
How to use checksums
013b753bcb4f226641eff9b106f1ab4f78e222f48155c4378d0ecc3564d10749
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Security for collective.recipe.htpasswd 0.1a3

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page