{ "info": { "author": "romk", "author_email": "r0mk@gmx.net", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3", "Topic :: Software Development :: Testing :: Mocking" ], "description": "# puaa\n\nAn uaa test server in python.\nThe main purpose is to serve as an easily configurable mock oauth server.\n\n**Attention: it's not a secured OAuth server and must never be used on production machines.** \n\n\n## Install\n\nLike any python package:\n\n```\npip install puaa\n```\n\n\n## Configure\n\nThe server is configured through a regular uaa.yml but uses only a small subset\nof it, mainly \"jwt\" and \"oauth\" sections:\n\n```\nissuer:\n uri: http://localhost:8000\n\noauth:\n clients:\n test:\n id: test\n secret: test\n authorized-grant-types: client_credentials\n scope: none\n authorities: uaa.admin,clients.admin,clients.read,clients.write,clients.secret\n\njwt:\n token:\n policy:\n accessTokenValiditySeconds: 3600\n activeKeyId: key-id-1\n keys:\n key-id-1:\n signingKey: |\n -----BEGIN RSA PRIVATE KEY-----\n ...\n -----END RSA PRIVATE KEY-----\n```\n\n\n## Run locally\n\nNeeds few environment variables to start:\n\n```\nexport AUTHLIB_INSECURE_TRANSPORT=true\nexport UAA_CONFIG_FILE=/uaa.yaml\ngunicorn -k gevent puaa.app:app\n```\n\nThen can retrieve a token with e.g.:\n\n```\ncurl -sS http://localhost:8000/oauth/token -u test:test -d 'grant_type=client_credentials'\n```\n\nTo list JWT keys:\n\n```\ncurl -sS http://localhost:8000/token_keys\n```\n\n## Limitations\n\nSupports the \"client_credentials\" grant only so far.\n\n\n## Alternatives\n\nThe full uaa server https://github.com/cloudfoundry/uaa/\nBut I gave up to configure it as I wish.\n\n\n## License\n\nMIT License\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://gitlab.com/romk/puaa", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "puaa", "package_url": "https://pypi.org/project/puaa/", "platform": "", "project_url": "https://pypi.org/project/puaa/", "project_urls": { "Homepage": "https://gitlab.com/romk/puaa" }, "release_url": "https://pypi.org/project/puaa/0.3.2/", "requires_dist": [ "Authlib", "cryptography", "Flask", "gunicorn[gevent]", "PyYAML (>=3.12)" ], "requires_python": ">=3", "summary": "Python UAA test server", "version": "0.3.2" }, "last_serial": 5904521, "releases": { "0.2.2": [ { "comment_text": "", "digests": { "md5": "b6da2d295318267e0986ee76bb9085e6", "sha256": "5bebb3e81162f932c1f4f63cf0f8e618ce6c9e1afee71eccbd47f52d30bb5bba" }, "downloads": -1, "filename": "puaa-0.2.2-py3-none-any.whl", "has_sig": false, "md5_digest": "b6da2d295318267e0986ee76bb9085e6", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 5625, "upload_time": "2019-06-26T22:42:01", "url": "https://files.pythonhosted.org/packages/88/2a/3a71493c28fe320c474efa344924a8304bc66bcee88dc47b827118926807/puaa-0.2.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7535e91f54c5b4189bf81a9ce06ebe56", "sha256": "decce85294cd9b641d4636c88718096cb46834ddcf73d2022f26ce372a12ca90" }, "downloads": -1, "filename": "puaa-0.2.2.tar.gz", "has_sig": false, "md5_digest": "7535e91f54c5b4189bf81a9ce06ebe56", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 4112, "upload_time": "2019-06-26T22:42:03", "url": "https://files.pythonhosted.org/packages/df/c9/71871d1cc684eb543096bc5e25cee67aa8e5c6b78d46e3d7c457211b6790/puaa-0.2.2.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "6342f2f1f1d0ffb9e186e549484e96f4", "sha256": "de67d14acf393de823d4b4c607f18b51ae99002af9d6d6cc8c0592b08d1d1111" }, "downloads": -1, "filename": "puaa-0.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "6342f2f1f1d0ffb9e186e549484e96f4", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 6050, "upload_time": "2019-09-30T02:15:13", "url": "https://files.pythonhosted.org/packages/75/ee/ba646f6742df4d8ac18a528b3b599a2fda35e0c1e7e5720c3597aff99139/puaa-0.3.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1b7baf8235d9695c73c122f7b0a895b5", "sha256": "4c1fe98a02c5ff327faab30ae078782fafe3e91d99e3a61070adff453d48c7ed" }, "downloads": -1, "filename": "puaa-0.3.0.tar.gz", "has_sig": false, "md5_digest": "1b7baf8235d9695c73c122f7b0a895b5", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 4523, "upload_time": "2019-09-30T02:15:15", "url": "https://files.pythonhosted.org/packages/e2/e0/318c9a421a6ebf51c13bbd0eddd2311c0f02f4882ffbd07b6cb13784fb38/puaa-0.3.0.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "b35afc82c12348d2b00c369cc2842dee", "sha256": "31803f6f3ddfcee2fe7f38515b621a5ba937df58b0bda0b8e50e990369782589" }, "downloads": -1, "filename": "puaa-0.3.1-py3-none-any.whl", "has_sig": false, "md5_digest": "b35afc82c12348d2b00c369cc2842dee", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 6067, "upload_time": "2019-09-30T02:34:27", "url": "https://files.pythonhosted.org/packages/ac/00/f1d4a5ea252a4e74ab0e86295010ed226843b145e92afba44ff736890aec/puaa-0.3.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "998d8d268e254f8c4e2641bb8727925d", "sha256": "eb71e3163c7475bedc41b52e4b4e661ca5a9c83ea496a5a283cb6c25609d5f90" }, "downloads": -1, "filename": "puaa-0.3.1.tar.gz", "has_sig": false, "md5_digest": "998d8d268e254f8c4e2641bb8727925d", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 4549, "upload_time": "2019-09-30T02:34:30", "url": "https://files.pythonhosted.org/packages/c6/bd/91094bab2dc84c514422d120e37a69fbd65cd7574eb11aa83b897ddf4bab/puaa-0.3.1.tar.gz" } ], "0.3.2": [ { "comment_text": "", "digests": { "md5": "334efaa1d242949670421b89b74975bd", "sha256": "b9afd72c04a195f2640a184ea8a0ad6fd0421bf8e62a402c3a588deebd0408b3" }, "downloads": -1, "filename": "puaa-0.3.2-py3-none-any.whl", "has_sig": false, "md5_digest": "334efaa1d242949670421b89b74975bd", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 6061, "upload_time": "2019-09-30T02:50:28", "url": "https://files.pythonhosted.org/packages/1b/94/4333e302162e4839cd632996f6a1d18971684b41ca5a413b8d28a48ce4b0/puaa-0.3.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "584f703a7a550a509257ba074b9ffb17", "sha256": "fb624b53a6d719ea56464c4f735d71a38a906062919a2234958ffca7291e9d9b" }, "downloads": -1, "filename": "puaa-0.3.2.tar.gz", "has_sig": false, "md5_digest": "584f703a7a550a509257ba074b9ffb17", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 4543, "upload_time": "2019-09-30T02:50:37", "url": "https://files.pythonhosted.org/packages/68/39/c9b99215ef70a0aca4ebaa911d8eba461480880b276e5e71bb4d9b376bbe/puaa-0.3.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "334efaa1d242949670421b89b74975bd", "sha256": "b9afd72c04a195f2640a184ea8a0ad6fd0421bf8e62a402c3a588deebd0408b3" }, "downloads": -1, "filename": "puaa-0.3.2-py3-none-any.whl", "has_sig": false, "md5_digest": "334efaa1d242949670421b89b74975bd", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 6061, "upload_time": "2019-09-30T02:50:28", "url": "https://files.pythonhosted.org/packages/1b/94/4333e302162e4839cd632996f6a1d18971684b41ca5a413b8d28a48ce4b0/puaa-0.3.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "584f703a7a550a509257ba074b9ffb17", "sha256": "fb624b53a6d719ea56464c4f735d71a38a906062919a2234958ffca7291e9d9b" }, "downloads": -1, "filename": "puaa-0.3.2.tar.gz", "has_sig": false, "md5_digest": "584f703a7a550a509257ba074b9ffb17", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 4543, "upload_time": "2019-09-30T02:50:37", "url": "https://files.pythonhosted.org/packages/68/39/c9b99215ef70a0aca4ebaa911d8eba461480880b276e5e71bb4d9b376bbe/puaa-0.3.2.tar.gz" } ] }