Django middleware to allow access from specific CIDR ranges
Project description
A Django middleware that allows you to specify a list of allowed hosts using CIDR notation.
Installation
Install using pip:
pip install django-cidr-allowed-hosts
Add the middleware at the top of your MIDDLEWARE settings:
MIDDLEWARE = [
'cidr.middleware.CIDRMiddleware',
...
]
Add the CIDR_ALLOWED_HOSTS setting to your settings:
CIDR_ALLOWED_HOSTS = ["0.0.0.0/0"] # allows any IPv4
And that should be it.
Features
ALLOWED_HOSTS will still work as expected. Since the middleware overrides the ALLOWED_HOSTS setting to "*", the value provided originally to ALLOWED_HOSTS will be stored in ORIGINAL_ALLOWED_HOSTS and used to check if the request should be allowed.
If CIDR_ALLOWED_HOSTS is not set, the middleware will not be used.
If ALLOWED_HOSTS contains "*" and CIDR_ALLOWED_HOSTS is set, the middleware will raise MiddlewareNotUsed exception.
CIDR_ALLOWED_HOSTS must follow the CIDR notation.
Only IPv4 is supported.
Development
python3 -m virtualenv venv source venv/bin/activate pip3 install tox tox
Credits
This project was inspired by django-allow-cidr
Project details
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-cidr-allowed-hosts-1.0.3.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | d2109d0f5539bac7ea4b9529be102fc6fddd2483095bd001ab3b96f0a07311e3 |
|
MD5 | 3a0499e6e192f9abeaf7ec04d70a3ed9 |
|
BLAKE2b-256 | 50ad669865ac1b1aabd385025504e14d4748213e2af5178dadfa888f516557c7 |
Hashes for django_cidr_allowed_hosts-1.0.3-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 00f7a7e8122502a971bb749b5e236842cf1a763ed13c515d5a9c9dd2e6797db9 |
|
MD5 | 014c46cb7102911d66097fadccd036ef |
|
BLAKE2b-256 | 25f2689dac0d5dedb34ecc178b4c58606e903d2f3f1f2a7c12e171b4475c955e |