Keep track of failed login attempts in Django-powered sites.
Find a file
Aleksi Häkli b569cdb991 Deprecate settings.AXES_LOGGER configuration flag
Fixes #634

The Django import system seems to produce errors
in certain configurations and especially when
MIGRATION_MODULES configuration is set globally.

This is most probably caused by misbehaving or cyclic
Python module imports in the Django application
instrumentatation chain that come up when the
MIGRATION_MODULES configuration is altered.

This patch migrates to the standard Python logging system
use and has less overhead and complexity for users as well.

Having a configurable logging prefix does not produce
a lot of benefits and is less flexible than having
all individual module logging configurations accessible
through the module __name__ parameter in Axes.

For example axes.handlers.* or axes.backends.*
are separately configurable in the new scheme
whereas they would have been both bundled under
the AXES_LOGGER log configuration.
2020-09-26 21:44:56 +03:00
axes Deprecate settings.AXES_LOGGER configuration flag 2020-09-26 21:44:56 +03:00
docs Deprecate settings.AXES_LOGGER configuration flag 2020-09-26 21:44:56 +03:00
.coveragerc Update test runner script and versions 2019-02-03 16:03:29 +02:00
.gitignore Add pip-wheel-metadata to .gitignores 2019-08-30 07:28:37 +03:00
.prospector.yaml Upgrade CI tooling to use automatic code formatting 2019-09-28 19:28:17 +03:00
.travis.yml Split requirements files and bumped black/mypy versions 2020-09-17 15:06:07 +03:00
CHANGES.rst Version 5.6.2 2020-09-20 22:02:54 +03:00
codecov.yml Raise minimum test coverage to 90% 2019-02-10 19:22:13 +02:00
LICENSE Update author and licence information 2019-03-13 16:56:56 +02:00
manage.py PEP8 formatting 2019-10-15 23:04:29 +03:00
MANIFEST.in Include rst docs to the package manifest 2019-05-01 15:53:26 +03:00
mypy.ini Drop Python 3.5 support 2019-03-09 21:49:45 +02:00
pyproject.toml Migrate to setuptools_scm 2019-08-28 13:28:57 +03:00
pytest.ini Deprecate settings.AXES_LOGGER configuration flag 2020-09-26 21:44:56 +03:00
README.rst Improve README structuring 2020-09-13 16:12:38 +03:00
requirements-qa.txt Bump prospector from 1.2.0 to 1.3.0 2020-09-18 09:51:36 +00:00
requirements-test.txt Bump pytest-django from 3.9.0 to 3.10.0 2020-09-18 09:35:08 +00:00
requirements.txt Bump prospector from 1.2.0 to 1.3.0 2020-09-18 09:51:36 +00:00
setup.py Deprecate django-appconf 2020-09-12 17:03:50 +03:00
tox.ini Split requirements files and bumped black/mypy versions 2020-09-17 15:06:07 +03:00

django-axes
===========

.. image:: https://jazzband.co/static/img/badge.svg
   :target: https://jazzband.co/
   :alt: Jazzband

.. image:: https://img.shields.io/github/stars/jazzband/django-axes.svg?label=Stars&style=socialcA
   :target: https://github.com/jazzband/django-axes
   :alt: GitHub

.. image:: https://img.shields.io/pypi/v/django-axes.svg
   :target: https://pypi.org/project/django-axes/
   :alt: PyPI release

.. image:: https://img.shields.io/readthedocs/django-axes.svg
   :target: https://django-axes.readthedocs.io/
   :alt: Documentation

.. image:: https://secure.travis-ci.org/jazzband/django-axes.svg?branch=master
   :target: http://travis-ci.org/jazzband/django-axes
   :alt: Build Status

.. image:: https://codecov.io/gh/jazzband/django-axes/branch/master/graph/badge.svg
   :target: https://codecov.io/gh/jazzband/django-axes
   :alt: Coverage


Axes is a Django plugin for keeping track of suspicious
login attempts for your Django based website
and implementing simple brute-force attack blocking.

The name is sort of a geeky pun, since it can be interpreted as:

* ``access``, as in monitoring access attempts, or
* ``axes``, as in tools you can use to hack (generally on wood).


Functionality
-------------

Axes records login attempts to your Django powered site and prevents attackers
from attempting further logins to your site when they exceed the configured attempt limit.

Axes can track the attempts and persist them in the database indefinitely,
or alternatively use a fast and DDoS resistant cache implementation.

Axes can be configured to monitor login attempts by
IP address, username, user agent, or their combinations.

Axes supports cool off periods, IP address whitelisting and blacklisting,
user account whitelisting, and other features for Django access management.


Documentation
-------------

For more information on installation and configuration see the documentation at:

https://django-axes.readthedocs.io/


Issues
------

If you have questions or have trouble using the app please file a bug report at:

https://github.com/jazzband/django-axes/issues


Contributions
-------------

All contributions are welcome!

It is best to separate proposed changes and PRs into small, distinct patches
by type so that they can be merged faster into upstream and released quicker.

One way to organize contributions would be to separate PRs for e.g.

* bugfixes,
* new features,
* code and design improvements,
* documentation improvements, or
* tooling and CI improvements.

Merging contributions requires passing the checks configured
with the CI. This includes running tests and linters successfully
on the currently officially supported Python and Django versions.

The test automation is run automatically by Travis CI, but you can
run it locally with the ``tox`` command before pushing commits.

Please note that this is a `Jazzband <https://jazzband.co>`_ project.
By contributing you agree to abide by the
`Contributor Code of Conduct <https://jazzband.co/about/conduct>`_
and follow the `guidelines <https://jazzband.co/about/guidelines>`_.