Merge pull request #243 from YunoHost/handle-stupid-cookie-cache-issue

try/catch around request.get_cookie to catch stupid CookieError
This commit is contained in:
Alexandre Aubin 2020-05-07 00:10:40 +02:00 committed by GitHub
commit d946ee92a9
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -361,13 +361,24 @@ class _ActionsMapPlugin(object):
""" """
# Retrieve session values # Retrieve session values
s_id = request.get_cookie("session.id") or random_ascii() try:
s_id = request.get_cookie("session.id") or random_ascii()
except:
# Super rare case where there are super weird cookie / cache issue
# Previous line throws a CookieError that creates a 500 error ...
# So let's catch it and just use a fresh ID then...
s_id = random_ascii()
try: try:
s_secret = self.secrets[s_id] s_secret = self.secrets[s_id]
except KeyError: except KeyError:
s_tokens = {} s_tokens = {}
else: else:
s_tokens = request.get_cookie("session.tokens", secret=s_secret) or {} try:
s_tokens = request.get_cookie("session.tokens", secret=s_secret) or {}
except:
# Same as for session.id a few lines before
s_tokens = {}
s_new_token = random_ascii() s_new_token = random_ascii()
try: try: