Skip to content

Instantly share code, notes, and snippets.

@rajendrakrp
Last active January 3, 2016 21:28
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save rajendrakrp/8521417 to your computer and use it in GitHub Desktop.
Save rajendrakrp/8521417 to your computer and use it in GitHub Desktop.
flask_openid.py diff
diff --git a/flask_openid.py b/flask_openid.py
index fe8496b..9347caa 100644
--- a/flask_openid.py
+++ b/flask_openid.py
@@ -21,7 +21,8 @@ from datetime import date
from flask import request, session, redirect, current_app, url_for
from werkzeug import url_quote
-from openid.store.filestore import FileOpenIDStore
+#from openid.store.filestore import FileOpenIDStore
+from gaestore import DatastoreStore
from openid.extensions import ax
from openid.extensions.sreg import SRegRequest, SRegResponse
from openid.consumer.consumer import Consumer, SUCCESS, CANCEL
@@ -114,7 +115,7 @@ class SessionWrapper(object):
def __getitem__(self, name):
rv = session[self.name_mapping.get(name, name)]
if isinstance(rv, dict) and len(rv) == 1 and ' p' in rv:
- return pickle.loads(rv[' p'])
+ return pickle.loads(rv[' p'].encode('utf-8'))
return rv
def __setitem__(self, name, value):
@@ -280,7 +281,8 @@ class OpenIDResponse(object):
class OpenID(object):
- """Simple helper class for OpenID auth. Has to be created in advance
+ """
+ Simple helper class for OpenID auth. Has to be created in advance
like a :class:`~flask.Flask` object.
There are two usage modes which work very similar. One is binding
@@ -336,6 +338,7 @@ class OpenID(object):
if store_factory is None:
store_factory = self._default_store_factory
self.store_factory = store_factory
+ #oidutil.log("self.store_factory() in initial :" + str(self.store_factory))
self.after_login_func = None
self.fallback_endpoint = fallback_endpoint
@@ -351,13 +354,19 @@ class OpenID(object):
"""Default store factory that creates a filesystem store from
the configuration.
"""
+ print "in _default_store_factory - current_app:", current_app
app = self.app if self.app is not None else current_app
+
if 'OPENID_FS_STORE_PATH' not in app.config:
self.init_app(app)
from warnings import warn
warn(DeprecationWarning('init_app not called for this '
'application. This is deprecated functionality'))
+ else:
+ if app.config['OPENID_FS_STORE_PATH'] == 'datastore':
+ oidutil.log("in _default_store_factory - return datastore object" + str(DatastoreStore()))
+ return DatastoreStore()
path = app.config['OPENID_FS_STORE_PATH'] or self.fs_store_path
if path is None:
@@ -472,6 +481,7 @@ class OpenID(object):
if key not in ALL_KEYS:
raise ValueError('invalid key %r' % key)
try:
+ oidutil.log("self.store_factory() :" + str(self.store_factory))
consumer = Consumer(SessionWrapper(self), self.store_factory())
auth_request = consumer.begin(identity_url)
if ask_for:
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment