mirror of
https://github.com/galaxyproject/galaxy.git
synced 2026-10-25 00:12:08 +08:00
Fix openid manager pickle dumping
pickle dumps are binary Fixes https://sentry.galaxyproject.org/sentry/main/issues/503803/: ``` TypeError: write() argument must be str, not bytes File "galaxy/web/framework/middleware/sentry.py", line 43, in __call__ iterable = self.application(environ, start_response) File "/cvmfs/main.galaxyproject.org/venv/lib/python3.6/site-packages/paste/recursive.py", line 85, in __call__ return self.application(environ, start_response) File "galaxy/web/framework/middleware/statsd.py", line 34, in __call__ req = self.application(environ, start_response) File "/cvmfs/main.galaxyproject.org/venv/lib/python3.6/site-packages/paste/httpexceptions.py", line 640, in __call__ return self.application(environ, start_response) File "galaxy/web/framework/base.py", line 143, in __call__ return self.handle_request(environ, start_response) File "galaxy/web/framework/base.py", line 222, in handle_request body = method(trans, **kwargs) File "galaxy/webapps/galaxy/controllers/openid.py", line 30, in openid_auth consumer = self.openid_manager.get_consumer(trans) File "galaxy/openid/openid_manager.py", line 58, in get_consumer return consumer.Consumer(self.get_session(trans), self.store) File "galaxy/openid/openid_manager.py", line 50, in get_session pickle.dump(dict(), open(session_file, 'w')) ```
This commit is contained in:
@@ -47,12 +47,12 @@ class OpenIDManager(object):
|
||||
def get_session(self, trans):
|
||||
session_file = os.path.join(self.session_path, str(trans.galaxy_session.id))
|
||||
if not os.path.exists(session_file):
|
||||
pickle.dump(dict(), open(session_file, 'w'))
|
||||
return pickle.load(open(session_file))
|
||||
pickle.dump(dict(), open(session_file, 'wb'))
|
||||
return pickle.load(open(session_file, 'rb'))
|
||||
|
||||
def persist_session(self, trans, oidconsumer):
|
||||
session_file = os.path.join(self.session_path, str(trans.galaxy_session.id))
|
||||
pickle.dump(oidconsumer.session, open(session_file, 'w'))
|
||||
pickle.dump(oidconsumer.session, open(session_file, 'wb'))
|
||||
|
||||
def get_consumer(self, trans):
|
||||
return consumer.Consumer(self.get_session(trans), self.store)
|
||||
|
||||
Reference in New Issue
Block a user