From bbb01cdbc2c88b6ab5211b3ff956693c95bbc5d6 Mon Sep 17 00:00:00 2001 From: rhoerbe Date: Fri, 21 Mar 2014 14:13:56 +0100 Subject: [PATCH 1/2] added support for RFC 1123 date format --- src/saml2/httpbase.py | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/saml2/httpbase.py b/src/saml2/httpbase.py index 3b6b630..8c99c95 100644 --- a/src/saml2/httpbase.py +++ b/src/saml2/httpbase.py @@ -69,9 +69,18 @@ def _since_epoch(cdate): cdate = cdate[5:] try: - t = time.strptime(cdate, "%d-%b-%Y %H:%M:%S %Z") + t = time.strptime(cdate, "%d-%b-%Y %H:%M:%S %Z") # e.g. 18-Apr-2014 12:30:51 GMT except ValueError: - t = time.strptime(cdate, "%d-%b-%y %H:%M:%S %Z") + try: + t = time.strptime(cdate, "%d-%b-%y %H:%M:%S %Z") # e.g. 18-Apr-14 12:30:51 GMT + except ValueError: + try: + t = time.strptime(cdate, "%d %b %Y %H:%M:%S %Z") # e.g. 18 Apr 2014 12:30:51 GMT + except ValueError: + raise Exception, 'ValueError: Date "{0}" does not match any of '.format(cdate) + \ + '"%d-%b-%Y %H:%M:%S %Z", ' + \ + '"%d-%b-%y %H:%M:%S %Z", ' + \ + '"%d %b %Y %H:%M:%S %Z".' #return int(time.mktime(t)) return calendar.timegm(t) From 3e993a5a456a3c6429d9a79e25bea4276d86d884 Mon Sep 17 00:00:00 2001 From: rhoerbe Date: Fri, 21 Mar 2014 15:07:26 +0100 Subject: [PATCH 2/2] added support for RFC 1123 date format --- src/saml2/httpbase.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/saml2/httpbase.py b/src/saml2/httpbase.py index 8c99c95..56d4a7e 100644 --- a/src/saml2/httpbase.py +++ b/src/saml2/httpbase.py @@ -67,7 +67,7 @@ def _since_epoch(cdate): if len(cdate) < 5: return utc_now() - cdate = cdate[5:] + cdate = cdate[5:] # assume short weekday, i.e. do not support obsolete RFC 1036 date format try: t = time.strptime(cdate, "%d-%b-%Y %H:%M:%S %Z") # e.g. 18-Apr-2014 12:30:51 GMT except ValueError: