{ "info": { "author": "Josiah Wolf Oberholtzer", "author_email": "joberholtzer@discogsinc.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Web Environment", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 2", "Programming Language :: Python :: 3", "Topic :: Software Development :: Libraries :: Python Modules", "Topic :: System :: Systems Administration :: Authentication/Directory" ], "description": "python-cas-client\n=================\n\nA Python CAS (Central Authentication Service) client for interfacing with a CAS\nservice implementation, such as https://github.com/rbCAS/CASino or\nhttps://github.com/apereo/cas.\n\nThis project provides tools for building well-formed CAS-related URLs, parsing\nCAS XML payloads and managing the server-side session stores necessary for\nhandling SLO (single logout).\n\nInstallation\n------------\n\nSupports Python 2.7 and 3.4.\n\n::\n\n $ git clone git@github.com:discogs/python-cas-client.git\n $ cd python-cas-client\n python-cas-client$ pip install .\n ...\n\nTesting\n-------\n\n``cas_client`` uses ``tox`` to run its unit tests under Python 2.7 and 3.4.\n\n::\n\n python-cas-client$ tox\n\nExample\n-------\n\nThe following un-tested pseudo-code shows how you might use ``cas_client`` in a\nFlask project.\n\n::\n\n from cas_client import CASClient\n from flask import Flask, redirect, request, session, url_for\n\n app = Flask(__name__)\n\n app_login_url = 'http://www.my-app.com/login'\n cas_url = 'http://cas.my-app.com'\n cas_client = CASClient(cas_url, auth_prefix='')\n\n @app.route('/login')\n def login():\n ticket = request.args.get('ticket')\n if ticket:\n try:\n cas_response = cas_client.perform_service_validate(\n ticket=ticket,\n service_url=app_login_url,\n )\n except:\n # CAS server is currently broken, try again later.\n return redirect(url_for('root'))\n if cas_response and cas_response.success:\n session['logged-in'] = True\n return redirect(url_for('root'))\n del(session['logged-in'])\n cas_login_url = cas_client.get_login_url(service_url=app_login_url)\n return redirect(cas_login_url)\n\n @app.route('/logout')\n def logout():\n del(session['logged-in'])\n cas_logout_url = cas_client.get_logout_url(service_url=app_login_url)\n return redirect(cas_logout_url)\n\n @app.route('/')\n def root():\n if session.get('logged-in'):\n return 'You Are Logged In'\n else:\n return 'You Are Not Logged In'\n\nThis pseudo-code does not handle server-side session stores or single logout,\nonly the bare minimum for standard login and logout.\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/discogs/python-cas-client", "keywords": "auth,authentication,cas,cas2,cas3,client,single sign-on,sso", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "cas-client", "package_url": "https://pypi.org/project/cas-client/", "platform": "any", "project_url": "https://pypi.org/project/cas-client/", "project_urls": { "Homepage": "https://github.com/discogs/python-cas-client" }, "release_url": "https://pypi.org/project/cas-client/1.0.0/", "requires_dist": [ "pycryptodome", "requests", "six", "tox" ], "requires_python": "", "summary": "A Python CAS client", "version": "1.0.0" }, "last_serial": 4988953, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "a9f195eb3a5da80186a119423d225d12", "sha256": "f3891156f8a7a50642e776747c03b83c9d3f41046079c32d5fbb83d15262a812" }, "downloads": -1, "filename": "cas_client-0.1.0.tar.gz", "has_sig": false, "md5_digest": "a9f195eb3a5da80186a119423d225d12", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10019, "upload_time": "2016-04-15T21:15:27", "url": "https://files.pythonhosted.org/packages/58/92/c574ca65408be85b6130cae0fd9f5896c235cc7f2132a6141ac60f9261fc/cas_client-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "57520fcc7cc94523c97a055342acce58", "sha256": "7db50eb4258af8266e0fa1018d360ba8913b559fd7703cb598fd8bd5cba7278a" }, "downloads": -1, "filename": "cas_client-0.1.1.tar.gz", "has_sig": false, "md5_digest": "57520fcc7cc94523c97a055342acce58", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11211, "upload_time": "2017-01-17T21:28:11", "url": "https://files.pythonhosted.org/packages/e2/05/332ec3a67c89cd0e45d7bdfbe7d0a5b7bcef0cc733a50dd82785394d8da2/cas_client-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "f124bbc29f8a51d8770cca84430c49a5", "sha256": "9290c617e3da6d35039fd2e5a56c20bdf53f62a395277ec4d19035af13bebf1b" }, "downloads": -1, "filename": "cas_client-0.1.2.tar.gz", "has_sig": false, "md5_digest": "f124bbc29f8a51d8770cca84430c49a5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11232, "upload_time": "2017-02-11T03:49:07", "url": "https://files.pythonhosted.org/packages/c4/1c/6afceeee6f2ac26cc4732f60896ddeb32670059db21033ea73a3b946f69f/cas_client-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "085fb68af9180e95c07c6f8c848bbbe5", "sha256": "2404825b8e61a4a65fc7d2a9ff66831c632afc99c8e02db9352531b0cb81e198" }, "downloads": -1, "filename": "cas_client-0.1.3.tar.gz", "has_sig": false, "md5_digest": "085fb68af9180e95c07c6f8c848bbbe5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13166, "upload_time": "2017-02-23T20:37:35", "url": "https://files.pythonhosted.org/packages/eb/00/47ad16de9501cc6cd4fc5498d115a28818f48585d945f54ad41ae55b9d6a/cas_client-0.1.3.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "7aae770c7f0bc314f751bbc59dcc1597", "sha256": "cdbb04b7da5b8a98068d90bd87e5194a3cb129588486044ad8538173525291f9" }, "downloads": -1, "filename": "cas_client-0.1.4.tar.gz", "has_sig": false, "md5_digest": "7aae770c7f0bc314f751bbc59dcc1597", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13714, "upload_time": "2017-10-19T21:18:16", "url": "https://files.pythonhosted.org/packages/30/21/20395c68068cd5fce51e0ed0371ecf77a6991a2510f7c9d4143649a9d49e/cas_client-0.1.4.tar.gz" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "c45ad0fd9393650e5b4b90d14e8dcf40", "sha256": "a15658b4c144aeafdc9396f25b3c7f0ad47114b5ee47bd2f30b09422d9094539" }, "downloads": -1, "filename": "cas_client-0.1.5.tar.gz", "has_sig": false, "md5_digest": "c45ad0fd9393650e5b4b90d14e8dcf40", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14789, "upload_time": "2019-03-01T18:36:08", "url": "https://files.pythonhosted.org/packages/a3/d2/1fa02938752cd285729f48e23dfe5cdc819b16c52b39a71ba2fea3f53b75/cas_client-0.1.5.tar.gz" } ], "0.1.6": [ { "comment_text": "", "digests": { "md5": "c555974aa75ff774e4392ec95fca6270", "sha256": "43867bf5f0f69d49394780a8a7fc7da67bf8e3c26a1d1ed591619aaac2d547d7" }, "downloads": -1, "filename": "cas_client-0.1.6-py3-none-any.whl", "has_sig": false, "md5_digest": "c555974aa75ff774e4392ec95fca6270", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7918, "upload_time": "2019-03-14T15:32:02", "url": "https://files.pythonhosted.org/packages/7d/d5/74b1cfba4dc655596cddc74b49322320be5f46e15ebe522c4b41a20a68fc/cas_client-0.1.6-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "88e502c36dbbb312a4e7878fb7916dae", "sha256": "41cbda72412ac8171ffaed38548aa2b9bcec3a1e2f8fbba1e5fd58abfb34eebe" }, "downloads": -1, "filename": "cas_client-0.1.6.tar.gz", "has_sig": false, "md5_digest": "88e502c36dbbb312a4e7878fb7916dae", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14798, "upload_time": "2019-03-14T15:32:03", "url": "https://files.pythonhosted.org/packages/9a/03/d5f35610d84724629f0f996e7d40e15608a1c7b529b8e03d8117cc86d265/cas_client-0.1.6.tar.gz" } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "d287224378cf00a46d03bc1711ac6273", "sha256": "c6dec881b311467bd64abef1e7974d45ab29feda3de56a3ba50c44b2984ccbea" }, "downloads": -1, "filename": "cas_client-1.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "d287224378cf00a46d03bc1711ac6273", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7953, "upload_time": "2019-03-26T18:12:58", "url": "https://files.pythonhosted.org/packages/a3/c2/018ded9cd48e1c4e976947f10f2bfca2c16041f98faf02e1dfbe9fbfaaea/cas_client-1.0.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "be64f4b772387f5be169566e5be70044", "sha256": "8c881fa023ff2b8f8879b314aaa32bf9c79de695cb438a50dc4ee25dfc3fc08b" }, "downloads": -1, "filename": "cas_client-1.0.0.tar.gz", "has_sig": false, "md5_digest": "be64f4b772387f5be169566e5be70044", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13992, "upload_time": "2019-03-26T18:13:00", "url": "https://files.pythonhosted.org/packages/65/83/a8467cd819114cb242081fef12b88ca6bab0b9e92e5882c9bac0e0fa1e24/cas_client-1.0.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "d287224378cf00a46d03bc1711ac6273", "sha256": "c6dec881b311467bd64abef1e7974d45ab29feda3de56a3ba50c44b2984ccbea" }, "downloads": -1, "filename": "cas_client-1.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "d287224378cf00a46d03bc1711ac6273", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7953, "upload_time": "2019-03-26T18:12:58", "url": "https://files.pythonhosted.org/packages/a3/c2/018ded9cd48e1c4e976947f10f2bfca2c16041f98faf02e1dfbe9fbfaaea/cas_client-1.0.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "be64f4b772387f5be169566e5be70044", "sha256": "8c881fa023ff2b8f8879b314aaa32bf9c79de695cb438a50dc4ee25dfc3fc08b" }, "downloads": -1, "filename": "cas_client-1.0.0.tar.gz", "has_sig": false, "md5_digest": "be64f4b772387f5be169566e5be70044", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13992, "upload_time": "2019-03-26T18:13:00", "url": "https://files.pythonhosted.org/packages/65/83/a8467cd819114cb242081fef12b88ca6bab0b9e92e5882c9bac0e0fa1e24/cas_client-1.0.0.tar.gz" } ] }