{ "info": { "author": "Luke Macken, Thomas Hill", "author_email": "lmacken@redhat.com", "bugtrack_url": null, "classifiers": [ "Framework :: Pyramid", "Intended Audience :: Developers", "License :: Repoze Public License", "Programming Language :: Python", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.6", "Topic :: Internet :: WWW/HTTP", "Topic :: Internet :: WWW/HTTP :: WSGI" ], "description": "pyramid_fas_openid provides a view for the Pyramid framework that acts as an OpenID consumer for the Fedora Account System.\n\nThis code is offered under the BSD-derived Repoze Public License.\n\nMuch of this code was inspired by (read: 'lifted from') the repoze.who.plugins.openid\ncode which can be found here:\nhttp://quantumcore.org/docs/repoze.who.plugins.openid\n\nIn your Pyramid app, add the pyramid_openid.verify_openid view_callable to your\nview_configuration, and add the needed settings to your .ini file.\n\nHere is a barebones setup:\nopenid.store.type = file\nopenid.store.file.path = %(here)s/sstore\nopenid.success_callback = myapp.lib:remember_me\n\nThis setup requires you have a folder in your app directory called 'sstore',\nand that you have a callback function in your lib module named \"remember_me\".\nRemember_me will receive the current request and the other information returned\nfrom the OpenID provider, and should then do whatever is needed to remember the user -\npyramid.security.remember, load metadata into the session, etc - that part is \ncompletely up to the coder.\n\nThis setup will then assume the defaults for the rest of the keys.\n\nOnce the configuration is in place, it's time to hook up the view to the application.\nYou can do this however you want to.\n\nExample:\nIn your app config setup code, add this line before 'return config.make_wsgi_app()'\n\nconfig.add_route('verify_openid', \n\tpattern='/dologin.html',\n\tview='pyramid_openid.verify_openid')\n\nNow you have a URL to submit your OpenID form to: /dologin.html.\nBased on the configuration above, it expects to find the user's OpenID URL\nin request.params['openid'].\n\n\nREQUIRED SETTINGS\n=================\nOpenID Data Store\n-----------------\nKey:\nopenid.store.type\n\nDescription:\nThis determines the type of store python-openid will use\nto track nonces and other cross request data. Note that\nthis defaults to None, which has python-openid use a\nstateless request type. Stateless mode isn't reliable;\nsomething else should be chosen. File and mem are\nrecommended.\n\nThe SQL store has yet to be tested or even verified\nworking. It is also not recommended.\n\nDefault:\nNone\n\nExamples:\nTo use a file store:\n(openid.store.file.path must also be specified)\nopenid.store.type = file\n\nTo use a memory store:\nopenid.store.type = mem\n\nTo use a sql store:\n(openid.store.sql.connection_string and\nopenid.store.sql.associations_table must also\nbe specified)\nTHIS IS NOT TESTED AND DOES NOT WORK\nopenid.store.type = sql\n\n\nOPTIONAL SETTINGS:\n==================\nSuccessful Login Callback\n-------------------------\nKey:\nopenid.success_callback\n\nDescription:\nThis is a callable that will be called upon successful verification\nby the OpenID provider. The callable will be passed three parameters;\nthe current context, the current request, and a dictionary with the \nfollowing structure:\n{\n\t'identity_url': The user's unique URL from the provider,\n\t'ax':\t\tA dictionary containing all the returned\n\t\t\tactive exchange parameters requested,\n\t'sreg':\t\tA list containing all the returned\n\t\t\tsimple registration parameters requested\n}\n\nThis callback is required to have the following format:\nmodule.optional_submodules:function\n\nWhat is returned from this callable is return as the response.\n\nDefault:\nNone\n\nExample:\nIf the callback is in the lib module of the my app package, and\nis named openid_callback, then this is the setting to be used:\nopenid.success_callback = myapp.lib:openid_callback\n\nAX\n--\nKeys:\nopenid.ax_required\nopenid.ax_optional\n\nDescription:\nThese represent user data requested via OpenID Attribute Exchange.\n\nDefault:\nNone\n\nExample:\nTo require that the provider respond with the user's email:\nopenid.ax_required = email=http://schema.openid.net/contact/email\n\nSX\n--\nKeys:\nopenid.sreg_required\nopenid.sreg_optional\n\nDescription:\nThese represent user data requested via OpenID Simple Registration.\n\nDefault:\nNone\n\nExample:\nTo require that the provider respond with the user's email:\nopenid.sreg_required = email\n\nIncoming OpenID Param Name:\n---------------------------\nKey:\nopenid.param_field_name\n\nDescription:\nWhen a request is first submitted with the user's OpenID URL,\nit must be retrieved from request.params with a key.\nThis is the name of that key in request.params.\n\nDefault:\nopenid\n\nExamples:\nOnce submitted, the user's OpenID URL will be found in\nrequest.params['users_openid_url']:\nopenid.param_field_name = users_openid_url\n\nError Destination\n-----------------\nKey:\nopenid.error_destination\n\nDescription:\nWhen something in the OpenID verification process fails,\nthe user will be sent to this url. The error message\nwill be stored in the request.session.flash queue\nas specified by openid.error_flash_queue\n\nDefault:\nrequest.referrer\n\nExample:\nTo send the user to a http://www.example.com/sorry.html upon failure:\nopenid.error_destination = http://www.example.com/sorry.html\n\nError Flash Queue\n-----------------\nKey:\nopenid.error_flash_queue\n\nDescription:\nIf something goes awry in the OpenID process, the error message\nwill be put in the request.session.flash message queue, and this\nis the name of that queue.\n\nDefault:\nThe default flash queue ('')\n\nExample:\nTo put the error messages in the 'OpenIDErrors' flash queue:\nopenid.error_flash_queue=OpenIDErrors\n\nRealm Name\n----------\nKey:\nopenid.realm_name\n\nDescription:\nThis is the value of the realm parameter passed to the OpenID\nprovider. It's here for the sake of completeness, but unless\nyou know what you're doing there's no reason to change it.\n\nDefault:\nrequest.host_url\n\nExample:\nTo set the Realm to 'www.example.com':\nopenid.realm_name = http://www.example.com\n\nNote:\nChanging the realm_name will most likely cause your request\nto fail.\n\n\nCONDITIONAL SETTINGS\n====================\nFile Store Path\n---------------\nKey:\nopenid.store.file.path\n\nDescription:\nIf the file store path is to be used, then it needs\na writable folder to store data into. This is that path.\n\nDefault:\nNo default\n\nExample:\nTo store data in the folder named \"sstore\" in the same\nfolder as your development.ini:\n(Note that you must make this directory as well)\nopenid.store.file.path = %(here)s/sstore\n\nSQL Connection String\n---------------------\nKey:\nopenid.store.sql.connection_string\n\nDescription:\nThis is the connection string for the database for\npython-openid to store its temporary data in.\nTHIS HAS NOT BEEN TESTED AND DOES NOT WORK YET.\n\nDefault:\nNo default\n\nSQL Associations Table\n----------------------\nKey:\nopenid.store.sql.associations_table\n\nDescription:\nThis is the name of the table that python-openid\nwill store is temporary data in.\nTHIS HAS NOT BEEN TESTED AND DOES NOT WORK YET.\n\nDefault:\nNo default\n", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://github.com/lmacken/pyramid_fas_openid", "keywords": "pyramid openid fedora", "license": "BSD-derived (http://www.repoze.org/LICENSE.txt)", "maintainer": "", "maintainer_email": "", "name": "pyramid_fas_openid", "package_url": "https://pypi.org/project/pyramid_fas_openid/", "platform": "", "project_url": "https://pypi.org/project/pyramid_fas_openid/", "project_urls": { "Homepage": "http://github.com/lmacken/pyramid_fas_openid" }, "release_url": "https://pypi.org/project/pyramid_fas_openid/0.3.9/", "requires_dist": null, "requires_python": "", "summary": "A view for pyramid that functions as an OpenID consumer.", "version": "0.3.9" }, "last_serial": 3411216, "releases": { "0.3.4": [ { "comment_text": "", "digests": { "md5": "fffb43211ab615161c819d09dd3772a0", "sha256": "6ed90391051e6c1717970fda04f7de01624079b15e1e2b3f6b9ad0549ce05772" }, "downloads": -1, "filename": "pyramid_fas_openid-0.3.4.tar.gz", "has_sig": false, "md5_digest": "fffb43211ab615161c819d09dd3772a0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6751, "upload_time": "2013-08-01T18:53:04", "url": "https://files.pythonhosted.org/packages/33/fd/3976afc0459f96f4fd9dd462b27e5202694ea95e6253c85bb26509047a97/pyramid_fas_openid-0.3.4.tar.gz" } ], "0.3.5": [ { "comment_text": "", "digests": { "md5": "c293bce1b99530684f9202e7e329c4a3", "sha256": "761b0dfa66fb4dbdd75a81e3d2fea4c342b4d18a71bb4168478073a80c3929b1" }, "downloads": -1, "filename": "pyramid_fas_openid-0.3.5.tar.gz", "has_sig": false, "md5_digest": "c293bce1b99530684f9202e7e329c4a3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6730, "upload_time": "2013-08-01T18:55:25", "url": "https://files.pythonhosted.org/packages/7f/9a/c713f13816e290fa58656acf33ddf58982d5f601bd7deae13d745aef4d8b/pyramid_fas_openid-0.3.5.tar.gz" } ], "0.3.8": [ { "comment_text": "", "digests": { "md5": "7b8d042042ecd8e0b1aef8fea6dfae87", "sha256": "38774324aff05df874a4b4e5c5897f3907fd77e3b13ec0f4cae9341c66a039ae" }, "downloads": -1, "filename": "pyramid_fas_openid-0.3.8.tar.gz", "has_sig": true, "md5_digest": "7b8d042042ecd8e0b1aef8fea6dfae87", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6683, "upload_time": "2015-04-13T19:50:25", "url": "https://files.pythonhosted.org/packages/bd/b7/cbbc029b175042d3e56723796e96ab5420de064ccc0941ae691e44d40a1b/pyramid_fas_openid-0.3.8.tar.gz" } ], "0.3.9": [ { "comment_text": "", "digests": { "md5": "64e18a62910dc9d510ce7bde00ac330b", "sha256": "532c022796da5a39177c493da940880687edd791c69dbe4faee929289e15f1bc" }, "downloads": -1, "filename": "pyramid_fas_openid-0.3.9.tar.gz", "has_sig": true, "md5_digest": "64e18a62910dc9d510ce7bde00ac330b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7555, "upload_time": "2017-12-12T20:23:54", "url": "https://files.pythonhosted.org/packages/d5/96/3ed3567468df3b5f63dd44b72f6d339b7a912f22096bb565881243a83f7d/pyramid_fas_openid-0.3.9.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "64e18a62910dc9d510ce7bde00ac330b", "sha256": "532c022796da5a39177c493da940880687edd791c69dbe4faee929289e15f1bc" }, "downloads": -1, "filename": "pyramid_fas_openid-0.3.9.tar.gz", "has_sig": true, "md5_digest": "64e18a62910dc9d510ce7bde00ac330b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7555, "upload_time": "2017-12-12T20:23:54", "url": "https://files.pythonhosted.org/packages/d5/96/3ed3567468df3b5f63dd44b72f6d339b7a912f22096bb565881243a83f7d/pyramid_fas_openid-0.3.9.tar.gz" } ] }