def parse_authz_decision_query(self, xml_string): """ Parse an attribute query :param xml_string: The Authz decision Query as an XML string :return: 3-Tuple containing: subject - identifier of the subject attribute - which attributes that the requestor wants back query - the whole query """ receiver_addresses = self.conf.endpoint("attribute_service", "idp") attribute_query = AttributeQuery( self.sec, receiver_addresses) attribute_query = attribute_query.loads(xml_string) attribute_query = attribute_query.verify() # Subject name is a BaseID,NameID or EncryptedID instance subject = attribute_query.subject_id() attribute = attribute_query.attribute() return subject, attribute, attribute_query.message
def parse_attribute_query(self, xml_string, decode=True): """ Parse an attribute query :param xml_string: The Attribute Query as an XML string :param decode: Whether the xmlstring is base64encoded and zipped :return: 3-Tuple containing: subject - identifier of the subject attribute - which attributes that the requestor wants back query - the whole query """ receiver_addresses = self.conf.endpoint("attribute_service") attribute_query = AttributeQuery( self.sec, receiver_addresses) attribute_query = attribute_query.loads(xml_string, decode=decode) attribute_query = attribute_query.verify() logger.info("KEYS: %s" % attribute_query.message.keys()) # Subject is described in the a saml.Subject instance subject = attribute_query.subject_id() attribute = attribute_query.attribute() return subject, attribute, attribute_query.message