{ "info": { "author": "SOON_", "author_email": "dorks@thisissoon.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Environment :: Web Environment", "Framework :: Django", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "License :: Public Domain", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Topic :: Internet :: WWW/HTTP :: Dynamic Content", "Topic :: Software Development", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "Django-HMAC\n==========\n\n|circle| |downloads| |version| |license| |docs|\n\nThis module provides a middleware for HMAC signature Django views. It's simply\ndesigned to check that a client is entitled to access routes, based on the fact\nthat it must possess a copy of the secret key.\n\nKey features:\n~~~~~~~~~~~~~\n- HMAC Middleware\n- HMAC View decorators\n- Multiple keys for more services\n- Service restricted access\n\nSmall example\n~~~~~~~~~~~~~\n\n.. sourcecode:: python\n\n class SignedView(View):\n\n @decorators.auth\n def get(self, request):\n return HttpResponse(\"for all services\")\n\n @decorators.auth(only=['userservice'])\n def post(self, request):\n return HttpResponse(\"Only for user service\")\n\n\nDev\n---\n\nTo run all tests\n\n.. sourcecode::\n\n docker run -it -v $PWD:/src -w /src ikalnitsky/pythonista tox\n\n\n.. |circle| image:: https://img.shields.io/circleci/project/thisissoon/djangohmac.svg\n :target: https://circleci.com/gh/thisissoon/djangohmac\n\n.. |downloads| image:: http://img.shields.io/pypi/dm/djangohmac.svg\n :target: https://pypi.python.org/pypi/djangohmac\n\n.. |version| image:: http://img.shields.io/pypi/v/djangohmac.svg\n :target: https://pypi.python.org/pypi/djangohmac\n\n.. |license| image:: http://img.shields.io/pypi/l/djangohmac.svg\n :target: https://pypi.python.org/pypi/djangohmac\n\n.. |docs| image:: https://readthedocs.org/projects/djangohmac/badge/?version=latest\n :target: http://djangohmac.readthedocs.org/en/latest/?badge=latest\n\nChange Log\n----------\n\n1.3.2\n~~~~~\n- Fix - unicode key\n\n1.3.1\n~~~~~\n- Get rid of brackets in decorator\n- Bugfix: valid signature for resticted view passed validation\n\n1.3.0\n~~~~~\n- Merge validation of multiple and single signature to single method\n- Replace middleware classes to one single class HmacMiddleware\n\n1.2.0\n~~~~~\n- Decorators\n\n1.0.5\n~~~~~\n- Fix: Django HTTP headers\n\n1.0.4\n~~~~~\n- Fix: use base64.b64encode instead of base64.urlsafe_b64encode\n\n1.0.2\n~~~~~\n- Fix: HMAC_SECRET should be optional\n- `GlobalHmacMiddleware` and `MultipleHmacMiddleware`\n\n0.0.1\n~~~~~\n- Initial release including the core feature set", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/thisissoon/django-hmac", "keywords": "Django,HMAC,REST,Views,middleware", "license": "Public Domain", "maintainer": null, "maintainer_email": null, "name": "djangohmac", "package_url": "https://pypi.org/project/djangohmac/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/djangohmac/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/thisissoon/django-hmac" }, "release_url": "https://pypi.org/project/djangohmac/1.3.2/", "requires_dist": null, "requires_python": null, "summary": "Provides easy integration of the HMAC signatures for your REST Django Applications.", "version": "1.3.2" }, "last_serial": 1889658, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "1668c3bc8d08cf1d72de1d8b34ce3ab4", "sha256": "e12924f54730bee4418a6e3edb444a3518175a0c1629ef8958868add171e7c24" }, "downloads": -1, "filename": "djangohmac-0.0.1.tar.gz", "has_sig": false, "md5_digest": "1668c3bc8d08cf1d72de1d8b34ce3ab4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3145, "upload_time": "2015-09-11T10:45:45", "url": "https://files.pythonhosted.org/packages/d6/50/4a3c052f29479d6689ce844f827ec0e18b8515ec2c5639fce092f86e562a/djangohmac-0.0.1.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "bb91218571cbe12b1f72f3eb49c5ba12", "sha256": "4ae75b0d124a583a6e3b5745429c8160542fec0b769720f6cb0ff53339782774" }, "downloads": -1, "filename": "djangohmac-1.0.1.tar.gz", "has_sig": false, "md5_digest": "bb91218571cbe12b1f72f3eb49c5ba12", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3752, "upload_time": "2015-09-15T13:04:59", "url": "https://files.pythonhosted.org/packages/18/e4/e5db138d61f84092eaed0c65bca5e8fa4726b264be20ea15388a59f8b4f3/djangohmac-1.0.1.tar.gz" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "207753ec91472905fdabd23de6025389", "sha256": "b4c4cb0f9bda9bd6cc14b1f7c4f3cf5e5af8f7fb5d6a9708cea2083c1e4f0139" }, "downloads": -1, "filename": "djangohmac-1.0.2.tar.gz", "has_sig": false, "md5_digest": "207753ec91472905fdabd23de6025389", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3796, "upload_time": "2015-09-15T15:44:06", "url": "https://files.pythonhosted.org/packages/87/78/f1306d9e96db84076a39033e48ea49d9380edc905388a6ace0d2a9a26eec/djangohmac-1.0.2.tar.gz" } ], "1.0.3": [], "1.0.4": [ { "comment_text": "", "digests": { "md5": "276a6773d76b962436af337b8cf64a58", "sha256": "6fe336abec4a3e40be848c97c029d0402f906acb0ce83758a5c84abf8de68b9b" }, "downloads": -1, "filename": "djangohmac-1.0.4.tar.gz", "has_sig": false, "md5_digest": "276a6773d76b962436af337b8cf64a58", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3755, "upload_time": "2015-10-02T16:07:58", "url": "https://files.pythonhosted.org/packages/10/6b/001a0dab5379b879ec756d4710036f41d5fbf80577048c36dc402605212a/djangohmac-1.0.4.tar.gz" } ], "1.0.5": [ { "comment_text": "", "digests": { "md5": "980cf0c21c80990b86a4a63baa122700", "sha256": "2a7c508d334d14dd6ee426e294ace42530ff6d9496fde5d97f18125ecdb42b50" }, "downloads": -1, "filename": "djangohmac-1.0.5.tar.gz", "has_sig": false, "md5_digest": "980cf0c21c80990b86a4a63baa122700", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3793, "upload_time": "2015-10-05T13:36:08", "url": "https://files.pythonhosted.org/packages/e4/7f/8581eef9c655e5948ba778b4160eff989e9da0e0b412f1b136d571f5c5c3/djangohmac-1.0.5.tar.gz" } ], "1.2.0": [ { "comment_text": "", "digests": { "md5": "882a9eb5bc4d06f1ebfffa79d416506d", "sha256": "f07e0af1bc0f2c61f16dd955bb8ba40f27a66075e0c60b26d1c2123b82f02f54" }, "downloads": -1, "filename": "djangohmac-1.2.0.tar.gz", "has_sig": false, "md5_digest": "882a9eb5bc4d06f1ebfffa79d416506d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4245, "upload_time": "2015-10-19T13:52:26", "url": "https://files.pythonhosted.org/packages/0a/60/73a4654cc22d2ff58014a6c28132244239dec3d20237ec722856b780c56c/djangohmac-1.2.0.tar.gz" } ], "1.2.1": [ { "comment_text": "", "digests": { "md5": "d12cf641caefd08359cb775f511ba76f", "sha256": "23f56643f15eb345ce461e3de1fb37fbc8c3c837fe0a5bcfe31bd74bf1a16dcd" }, "downloads": -1, "filename": "djangohmac-1.2.1.tar.gz", "has_sig": false, "md5_digest": "d12cf641caefd08359cb775f511ba76f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4270, "upload_time": "2015-10-27T14:05:25", "url": "https://files.pythonhosted.org/packages/ad/af/341dfca46853cb720c7f19d5e516362a81b85ea0a23daaa0c537f2455edf/djangohmac-1.2.1.tar.gz" } ], "1.3.0": [ { "comment_text": "", "digests": { "md5": "fa9829b9e1f93c21d3753b90afa0bf0a", "sha256": "cc94a398699fdd207a5282624a2f8dec59adab7c400bd8afb02fe4ea7a3ff699" }, "downloads": -1, "filename": "djangohmac-1.3.0.tar.gz", "has_sig": false, "md5_digest": "fa9829b9e1f93c21d3753b90afa0bf0a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4451, "upload_time": "2015-10-27T17:33:21", "url": "https://files.pythonhosted.org/packages/bb/61/19c6bd995bc62b52562eddaa2b2ec0f7d42b944f9388b028a1c52e6ec069/djangohmac-1.3.0.tar.gz" } ], "1.3.1": [ { "comment_text": "", "digests": { "md5": "54a4cc928333d8aa1105bb5df112d703", "sha256": "db7a8c4ca686bbc8c54ee47a3d5ffa2ccdfc93f1159f7f8d9d75a34f0d27fd5f" }, "downloads": -1, "filename": "djangohmac-1.3.1.tar.gz", "has_sig": false, "md5_digest": "54a4cc928333d8aa1105bb5df112d703", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4543, "upload_time": "2015-10-28T15:10:58", "url": "https://files.pythonhosted.org/packages/50/4d/e229e1d1b964661c1518f9c88a54ca123dd8c2177255f15e4077d1d83f45/djangohmac-1.3.1.tar.gz" } ], "1.3.2": [ { "comment_text": "", "digests": { "md5": "87440111a92b7cc6a9ea1b60801700e4", "sha256": "7e59ac211d8712a2a0fc8d142e1824385a1288194bfb90529e85430b763b7b72" }, "downloads": -1, "filename": "djangohmac-1.3.2.tar.gz", "has_sig": false, "md5_digest": "87440111a92b7cc6a9ea1b60801700e4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4575, "upload_time": "2016-01-05T16:20:41", "url": "https://files.pythonhosted.org/packages/56/85/870f81b4a638e590cf8f732e4926a1aa097d9ec2b9433dcc50aff50b7397/djangohmac-1.3.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "87440111a92b7cc6a9ea1b60801700e4", "sha256": "7e59ac211d8712a2a0fc8d142e1824385a1288194bfb90529e85430b763b7b72" }, "downloads": -1, "filename": "djangohmac-1.3.2.tar.gz", "has_sig": false, "md5_digest": "87440111a92b7cc6a9ea1b60801700e4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4575, "upload_time": "2016-01-05T16:20:41", "url": "https://files.pythonhosted.org/packages/56/85/870f81b4a638e590cf8f732e4926a1aa097d9ec2b9433dcc50aff50b7397/djangohmac-1.3.2.tar.gz" } ] }