{ "info": { "author": "Georgi Valkov", "author_email": "georgi.t.valkov@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "License :: OSI Approved :: Apache Software License", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3" ], "description": "tornado-http-auth\n=================\n\n.. class:: no-web no-pdf\n\n|pypi| |license|\n\n\nDigest and basic authentication for the Tornado_ web framework. Based on code\nand ideas from Twisted's cred_.\n\n\nInstallation\n------------\n\nThe latest stable version of tornado-ansi-markup can be installed from pypi:\n\n.. code-block:: bash\n\n $ pip install tornado-http-auth\n\n\nUsage\n-----\n\n.. code-block:: python\n\n import tornado.ioloop\n from tornado.web import RequestHandler, Application\n from tornado_http_auth import DigestAuthMixin, BasicAuthMixin, auth_required\n\n credentials = {'user1': 'pass1'}\n\n # Example 1 (using decorator).\n class MainHandler(DigestAuthMixin, RequestHandler):\n @auth_required(realm='Protected', auth_func=credentials.get)\n def get(self):\n self.write('Hello %s' % self._current_user)\n\n # Example 2 (using prepare and get_authentciated_user).\n class MainHandler(BasicAuthMixin, RequestHandler):\n def prepare(self):\n self.get_authenticated_user(check_credentials_func=credentials.get, realm='Protected')\n\n def get(self):\n self.write('Hello %s' % self._current_user)\n\n app = Application([\n (r'/', MainHandler),\n ])\n\n app.listen(8888)\n tornado.ioloop.IOLoop.current().start()\n\n # curl --user user1:pass1 -v http://localhost:8888 -> 200 OK\n # curl --user user2:pass2 -v http://localhost:8888 -> 401 Unauthorized\n # Remove or comment second class\n # curl --digest --user user1:pass1 -v http://localhost:8888 -> 200 OK\n # curl --digest --user user2:pass2 -v http://localhost:8888 -> 401 Unauthorized\n\n\nLicense\n-------\n\nThis project is released under the terms of the `Apache License, Version 2.0`_.\n\n\n.. |pypi| image:: https://img.shields.io/pypi/v/tornado-http-auth.svg?style=flat-square&label=latest%20stable%20version\n :target: https://pypi.python.org/pypi/tornado-http-auth\n :alt: Latest version released on PyPi\n\n.. |license| image:: https://img.shields.io/pypi/l/tornado-http-auth.svg?style=flat-square&label=license\n :target: https://pypi.python.org/pypi/tornado-http-auth\n :alt: Apache License, Version 2.0.\n\n.. _cred: https://twistedmatrix.com/documents/15.4.0/core/howto/cred.html\n.. _Tornado: http://www.tornadoweb.org/en/stable/\n.. _`Apache License, Version 2.0`: https://raw.github.com/gvalkov/tornado-http-auth/master/LICENSE\n", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/gvalkov/tornado-http-auth", "keywords": "tornado digest-auth basic-auth", "license": "Apache License 2.0", "maintainer": "", "maintainer_email": "", "name": "tornado-http-auth", "package_url": "https://pypi.org/project/tornado-http-auth/", "platform": "", "project_url": "https://pypi.org/project/tornado-http-auth/", "project_urls": { "Homepage": "https://github.com/gvalkov/tornado-http-auth" }, "release_url": "https://pypi.org/project/tornado-http-auth/1.1.1/", "requires_dist": null, "requires_python": "", "summary": "Digest and basic authentication for tornado", "version": "1.1.1" }, "last_serial": 3198285, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "3bd429cc595932a5bfd5bf94d9695e58", "sha256": "f7bbd9862cc7f455541decf549a943877625d99ac9b9eb1724fcdb96d25b5e8c" }, "downloads": -1, "filename": "tornado_http_auth-0.0.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "3bd429cc595932a5bfd5bf94d9695e58", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 6074, "upload_time": "2017-04-28T22:08:17", "url": "https://files.pythonhosted.org/packages/90/7b/f8a4df4a8f2ce65e217cf3060bff95847cda52f08a9628970480fe02ce36/tornado_http_auth-0.0.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "bcdc690eac03824fe3844d910c4d0c8a", "sha256": "01ccbc81f0a0cc08c49373d9a85d26c035eb591c464f126cd2f685c72ff34c14" }, "downloads": -1, "filename": "tornado-http-auth-0.0.1.tar.gz", "has_sig": false, "md5_digest": "bcdc690eac03824fe3844d910c4d0c8a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4256, "upload_time": "2017-04-28T22:08:05", "url": "https://files.pythonhosted.org/packages/db/77/784c8af8cbd5f93480660c90a23f6fbc7ecefd81755cdf6d16193b28cd74/tornado-http-auth-0.0.1.tar.gz" } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "621bffb2a209d1bedf61d88ebd892463", "sha256": "f3662b6f3ab3ece963c63142a4387ca4b91044f23fa1ee88afd04804affefa02" }, "downloads": -1, "filename": "tornado_http_auth-1.0.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "621bffb2a209d1bedf61d88ebd892463", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 6176, "upload_time": "2017-05-21T22:06:06", "url": "https://files.pythonhosted.org/packages/9a/2a/3217d5639b8ad973e55a2012bce49c41997933412ae7691ad9f807aa5b4b/tornado_http_auth-1.0.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "46a800df1f9fe2f50e0ae015cd9b8e89", "sha256": "ad4c43dce11c8f3427091adc63bd81c9e13cb1fae376f8da2235f4245986ee9c" }, "downloads": -1, "filename": "tornado-http-auth-1.0.0.tar.gz", "has_sig": false, "md5_digest": "46a800df1f9fe2f50e0ae015cd9b8e89", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4337, "upload_time": "2017-05-21T22:06:00", "url": "https://files.pythonhosted.org/packages/72/a1/c1489563298329e59cb0840a54eeda71f5fc3ada1435912ea2522c9aa26f/tornado-http-auth-1.0.0.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "5d76cffe4b17fc20fe5eefa4925ae2a6", "sha256": "2de9b76c9834eb47c4ca4f94e10735c92367c5db485d44a79529b7f48c75f046" }, "downloads": -1, "filename": "tornado_http_auth-1.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "5d76cffe4b17fc20fe5eefa4925ae2a6", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 6411, "upload_time": "2017-08-07T17:54:28", "url": "https://files.pythonhosted.org/packages/af/cd/5b98fb738ce2399b4237a721fcd135026ddfd725deda5fd4616a409519c3/tornado_http_auth-1.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ead645af4311bf1d33e73e2b067ef0c1", "sha256": "c5ba0835e783f2b9ccc1ccd86235913f1830a0893f7672888a448b791a7ed97e" }, "downloads": -1, "filename": "tornado-http-auth-1.1.0.tar.gz", "has_sig": false, "md5_digest": "ead645af4311bf1d33e73e2b067ef0c1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4491, "upload_time": "2017-08-07T17:54:21", "url": "https://files.pythonhosted.org/packages/b0/74/1f9d8f26a9741b57a1789278ce29dc8c4cb21179b9a771981e418a90ad95/tornado-http-auth-1.1.0.tar.gz" } ], "1.1.1": [ { "comment_text": "", "digests": { "md5": "0ccbf439b969efc6927aef4fb4fdbb20", "sha256": "2d8a4f49c4a8e99460942dd6168b455dd9f722fdc78d445630310ddf524c664a" }, "downloads": -1, "filename": "tornado_http_auth-1.1.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "0ccbf439b969efc6927aef4fb4fdbb20", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 6423, "upload_time": "2017-09-24T08:58:52", "url": "https://files.pythonhosted.org/packages/9b/6a/2a3c3669e7a45eda461a4426bd14620e175779e9829a8b3e4a4f258bf0fe/tornado_http_auth-1.1.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d7a3a5d3a6fe111e9e15a77e56652ef9", "sha256": "1d6cc051ebf93807138367b3b2f2822c266edeed8bcc9bd2f22526a0802bcc43" }, "downloads": -1, "filename": "tornado-http-auth-1.1.1.tar.gz", "has_sig": false, "md5_digest": "d7a3a5d3a6fe111e9e15a77e56652ef9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4503, "upload_time": "2017-09-24T08:58:50", "url": "https://files.pythonhosted.org/packages/1e/05/1021c5d235b610b8fb3e16b9c4b91a70ee93c7e51916cc78cfb31ab38385/tornado-http-auth-1.1.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "0ccbf439b969efc6927aef4fb4fdbb20", "sha256": "2d8a4f49c4a8e99460942dd6168b455dd9f722fdc78d445630310ddf524c664a" }, "downloads": -1, "filename": "tornado_http_auth-1.1.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "0ccbf439b969efc6927aef4fb4fdbb20", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 6423, "upload_time": "2017-09-24T08:58:52", "url": "https://files.pythonhosted.org/packages/9b/6a/2a3c3669e7a45eda461a4426bd14620e175779e9829a8b3e4a4f258bf0fe/tornado_http_auth-1.1.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d7a3a5d3a6fe111e9e15a77e56652ef9", "sha256": "1d6cc051ebf93807138367b3b2f2822c266edeed8bcc9bd2f22526a0802bcc43" }, "downloads": -1, "filename": "tornado-http-auth-1.1.1.tar.gz", "has_sig": false, "md5_digest": "d7a3a5d3a6fe111e9e15a77e56652ef9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4503, "upload_time": "2017-09-24T08:58:50", "url": "https://files.pythonhosted.org/packages/1e/05/1021c5d235b610b8fb3e16b9c4b91a70ee93c7e51916cc78cfb31ab38385/tornado-http-auth-1.1.1.tar.gz" } ] }