Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def internal_response(self, idp_conf):
auth_info = AuthenticationInformation(PASSWORD, "2015-09-30T12:21:37Z", idp_conf["entityid"])
internal_response = InternalData(auth_info=auth_info)
internal_response.attributes = AttributeMapper(INTERNAL_ATTRIBUTES).to_internal("saml", USERS["testuser1"])
return internal_response
def setup_for_authn_response(self, context, frontend, auth_req):
context.state[frontend.name] = {"oidc_request": auth_req.to_urlencoded()}
auth_info = AuthenticationInformation(
PASSWORD, "2015-09-30T12:21:37Z", "unittest_idp.xml"
)
internal_response = InternalData(auth_info=auth_info)
internal_response.attributes = AttributeMapper(
frontend.internal_attributes
).to_internal("saml", USERS["testuser1"])
internal_response.subject_id = USERS["testuser1"]["eduPersonTargetedID"][0]
return internal_response
def insert_user_in_user_db(self, frontend, user_id):
user_attributes = AttributeMapper(frontend.internal_attributes).to_internal(
"saml", USERS["testuser1"]
)
frontend.user_db[user_id] = frontend.converter.from_internal(
"openid", user_attributes
)
def test_custom_attribute_release_with_less_attributes_than_entity_category(self, context, idp_conf, sp_conf,
internal_response):
idp_metadata_str = create_metadata_from_config_dict(idp_conf)
idp_conf["service"]["idp"]["policy"]["default"]["entity_categories"] = ["swamid"]
sp_conf["entity_category"] = [SFS_1993_1153]
expected_attributes = swamid.RELEASE[SFS_1993_1153]
attribute_mapping = {}
for expected_attribute in expected_attributes:
attribute_mapping[expected_attribute.lower()] = {"saml": [expected_attribute]}
internal_attributes = dict(attributes=attribute_mapping)
user_attributes = {k: "foo" for k in expected_attributes}
internal_response.attributes = AttributeMapper(internal_attributes).to_internal("saml", user_attributes)
custom_attributes = {idp_conf["entityid"]: {sp_conf["entityid"]: {"exclude": ["norEduPersonNIN"]}}}
samlfrontend = self.setup_for_authn_req(context, idp_conf, sp_conf, internal_attributes=internal_attributes,
extra_config=dict(custom_attribute_release=custom_attributes))
resp = self.get_auth_response(samlfrontend, context, internal_response, sp_conf, idp_metadata_str)
assert len(resp.ava.keys()) == 0
if entity_category == [COCO]:
sp_conf["service"]["sp"]["required_attributes"] = expected_attributes
expected_attributes_in_all_entity_categories = list(
itertools.chain(swamid.RELEASE[""], edugain.RELEASE[COCO], refeds.RELEASE[RESEARCH_AND_SCHOLARSHIP],
swamid.RELEASE[(RESEARCH_AND_EDUCATION, EU)], swamid.RELEASE[(RESEARCH_AND_EDUCATION, HEI)],
swamid.RELEASE[(RESEARCH_AND_EDUCATION, NREN)], swamid.RELEASE[SFS_1993_1153]))
attribute_mapping = {}
for expected_attribute in expected_attributes_in_all_entity_categories:
attribute_mapping[expected_attribute.lower()] = {"saml": [expected_attribute]}
internal_attributes = dict(attributes=attribute_mapping)
samlfrontend = self.setup_for_authn_req(context, idp_conf, sp_conf, internal_attributes=internal_attributes)
user_attributes = {k: "foo" for k in expected_attributes_in_all_entity_categories}
internal_response.attributes = AttributeMapper(internal_attributes).to_internal("saml", user_attributes)
internal_response.requester = sp_conf["entityid"]
resp = self.get_auth_response(samlfrontend, context, internal_response, sp_conf, idp_metadata_str)
assert Counter(resp.ava.keys()) == Counter(expected_attributes)