Hide your Django site behind basic authentication mechanism with IP whitelisting support.
Project description
This simple package ships middleware that lets you to set basic auth and IP whitelisting via settings.
Use case
This package has been created in mind for staging and demo sites that need to be completely hidden from the Internet behind a password or IP range.
Requirements
Django 1.11 or 2.0
Python 3.4, 3.5, 3.6
Installation
The package is on PyPI.
pip install django-basic-auth-ip-whitelist
Configuration
In your Django settings you can configure the following settings.
BASIC_AUTH_LOGIN and BASIC_AUTH_PASSWORD
Credentials that you want to use with your basic authentication.
BASIC_AUTH_WHITELISTED_IP_NETWORKS
Set a list of network ranges (strings) compatible with Python’s ipaddress.ip_network that you want to be able to access the website without authentication from. It must be either a string with networks separated by comma or Python iterable.
Example settings
MIDDLEWARE += [
'baipw.middleware.BasicAuthIPWhitelistMiddleware'
]
BASIC_AUTH_LOGIN = 'somelogin'
BASIC_AUTH_PASSWORD = 'greatpassword'
BASIC_AUTH_WHITELISTED_IP_NETWORKS = [
'192.168.0.0/28',
'2001:db00::0/24',
]
Advanced customisation
Getting IP
If you want to have a custom behaviour when getting IP, you can create a custom function that takes request as a parameter and specify path to it in the BASIC_AUTH_GET_CLIENT_IP_FUNCTION settings, e.g.
BASIC_AUTH_GET_CLIENT_IP_FUNCTION = 'utils.ip.get_client_ip'
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for django-basic-auth-ip-whitelist-0.1.post3.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | df46f1d1f5730a3f07dd0411d91b515f5b369a080b2d816f2e303d48eb1e109b |
|
MD5 | 02141d974b039a48b0611d63bb87c4b0 |
|
BLAKE2b-256 | 2b0591141b79ecd371a496d25c555f7b3d536c162ee0d67c4db5b93225398f6b |
Hashes for django_basic_auth_ip_whitelist-0.1.post3-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 096ccc073ee9f6de67e4e48a11d488c8041d86d05824ccbaffbc72454c8908ee |
|
MD5 | 0ca736bf5e52fce91f84f0797af3cd46 |
|
BLAKE2b-256 | ea8291cb439a0cda654dc8fe749c7f90f066c8c04090e1ac6b467a136f82c2ae |