Handle the case that there might be no valid_until set, also use the new time_util.valid function

This commit is contained in:
Roland Hedberg
2010-03-05 10:24:29 +01:00
parent 2221575118
commit 49db58969a

View File

@@ -19,11 +19,14 @@
Contains classes and functions to alleviate the handling of SAML metadata Contains classes and functions to alleviate the handling of SAML metadata
""" """
import httplib2
import sys
from saml2 import md, BINDING_HTTP_POST from saml2 import md, BINDING_HTTP_POST
from saml2 import samlp, BINDING_HTTP_REDIRECT, BINDING_SOAP from saml2 import samlp, BINDING_HTTP_REDIRECT, BINDING_SOAP
#from saml2.time_util import str_to_time #from saml2.time_util import str_to_time
from saml2.sigver import make_temp, cert_from_key_info, verify_signature from saml2.sigver import make_temp, cert_from_key_info, verify_signature
import httplib2 from saml2.time_util import valid
class MetaData(object): class MetaData(object):
""" A class to manage metadata information """ """ A class to manage metadata information """
@@ -186,12 +189,25 @@ class MetaData(object):
entities_descriptor = md.entities_descriptor_from_string(xml_str) entities_descriptor = md.entities_descriptor_from_string(xml_str)
# try: try:
# valid_until = str_to_time(entities_descriptor.valid_until) valid(entities_descriptor.valid_until)
# except AttributeError: except AttributeError:
# valid_until = None pass
for entity_descriptor in entities_descriptor.entity_descriptor: for entity_descriptor in entities_descriptor.entity_descriptor:
try:
if not valid(entity_descriptor.valid_until):
if self.log:
self.log.info(
"Entity descriptor (entity id:%s) to old" % \
entity_descriptor.entity_id)
else:
print >> sys.stderr, \
"Entity descriptor (entity id:%s) to old" % \
entity_descriptor.entity_id
continue
except AttributeError:
pass
entity = self.entity[entity_descriptor.entity_id] = {} entity = self.entity[entity_descriptor.entity_id] = {}
self._idp_metadata(entity_descriptor, entity, "idp_sso") self._idp_metadata(entity_descriptor, entity, "idp_sso")
self._sp_metadata(entity_descriptor, entity, "sp_sso") self._sp_metadata(entity_descriptor, entity, "sp_sso")