def __init__(self, config=None, identity_cache=None, state_cache=None, virtual_organization="", config_file="", msg_cb=None): """ :param config: A saml2.config.Config instance :param identity_cache: Where the class should store identity information :param state_cache: Where the class should keep state information :param virtual_organization: A specific virtual organization """ Entity.__init__(self, "sp", config, config_file, virtual_organization, msg_cb=msg_cb) self.users = Population(identity_cache) self.lock = threading.Lock() # for server state storage if state_cache is None: self.state = {} # in memory storage else: self.state = state_cache attribute_defaults = { "logout_requests_signed": False, "allow_unsolicited": False, "authn_requests_signed": False, "want_assertions_signed": False, "want_response_signed": True, "want_assertions_or_response_signed": False } for attr, val_default in attribute_defaults.items(): val_config = self.config.getattr(attr, "sp") if val_config is None: val = val_default else: val = val_config if val == 'true': val = True setattr(self, attr, val) if self.entity_type == "sp" and not any([ self.want_assertions_signed, self.want_response_signed, self.want_assertions_or_response_signed, ]): logger.warning( "The SAML service provider accepts unsigned SAML Responses " "and Assertions. This configuration is insecure.") self.artifact2response = {}
def __init__(self, config=None, identity_cache=None, state_cache=None, virtual_organization="", config_file=""): """ :param config: A saml2.config.Config instance :param identity_cache: Where the class should store identity information :param state_cache: Where the class should keep state information :param virtual_organization: A specific virtual organization """ Entity.__init__(self, "sp", config, config_file, virtual_organization) self.users = Population(identity_cache) self.lock = threading.Lock() # for server state storage if state_cache is None: self.state = {} # in memory storage else: self.state = state_cache self.logout_requests_signed = False self.allow_unsolicited = False self.authn_requests_signed = False self.want_assertions_signed = False self.want_response_signed = False for foo in ["allow_unsolicited", "authn_requests_signed", "logout_requests_signed", "want_assertions_signed", "want_response_signed"]: v = self.config.getattr(foo, "sp") if v is True or v == 'true': setattr(self, foo, True) self.artifact2response = {}
def __init__(self, config=None, identity_cache=None, state_cache=None, virtual_organization=None, config_file=""): """ :param config: A saml2.config.Config instance :param identity_cache: Where the class should store identity information :param state_cache: Where the class should keep state information :param virtual_organization: Which if any virtual organization this SP belongs to """ self.users = Population(identity_cache) # for server state storage if state_cache is None: self.state = {} # in memory storage else: self.state = state_cache if config: self.config = config elif config_file: self.config = config_factory("sp", config_file) else: raise Exception("Missing configuration") self.metadata = self.config.metadata self.config.setup_logger() # we copy the config.debug variable in an internal # field for convenience and because we may need to # change it during the tests self.debug = self.config.debug self.sec = security_context(self.config) if virtual_organization: self.vorg = VirtualOrg(self, virtual_organization) else: self.vorg = None if "allow_unsolicited" in self.config: self.allow_unsolicited = self.config.allow_unsolicited else: self.allow_unsolicited = False if getattr(self.config, 'authn_requests_signed', 'false') == 'true': self.authn_requests_signed_default = True else: self.authn_requests_signed_default = False if getattr(self.config, 'logout_requests_signed', 'false') == 'true': self.logout_requests_signed_default = True else: self.logout_requests_signed_default = False
def setup_class(self): self.population = Population()
def __init__(self, config=None, identity_cache=None, state_cache=None, virtual_organization="", config_file=""): """ :param config: A saml2.config.Config instance :param identity_cache: Where the class should store identity information :param state_cache: Where the class should keep state information :param virtual_organization: A specific virtual organization """ self.users = Population(identity_cache) # for server state storage if state_cache is None: self.state = {} # in memory storage else: self.state = state_cache if config: self.config = config elif config_file: self.config = config_factory("sp", config_file) else: raise Exception("Missing configuration") HTTPBase.__init__(self, self.config.verify_ssl_cert, self.config.ca_certs, self.config.key_file, self.config.cert_file) if self.config.vorg: for vo in self.config.vorg.values(): vo.sp = self self.metadata = self.config.metadata self.config.setup_logger() # we copy the config.debug variable in an internal # field for convenience and because we may need to # change it during the tests self.debug = self.config.debug self.sec = security_context(self.config) if virtual_organization: if isinstance(virtual_organization, basestring): self.vorg = self.config.vorg[virtual_organization] elif isinstance(virtual_organization, VirtualOrg): self.vorg = virtual_organization else: self.vorg = None for foo in [ "allow_unsolicited", "authn_requests_signed", "logout_requests_signed" ]: if self.config.getattr("sp", foo) == 'true': setattr(self, foo, True) else: setattr(self, foo, False) # extra randomness self.seed = rndstr(32) self.logout_requests_signed_default = True self.allow_unsolicited = self.config.getattr("allow_unsolicited", "sp")