本文整理汇总了Python中suds.sax.parser.Parser.str方法的典型用法代码示例。如果您正苦于以下问题:Python Parser.str方法的具体用法?Python Parser.str怎么用?Python Parser.str使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类suds.sax.parser.Parser
的用法示例。
在下文中一共展示了Parser.str方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: sending
# 需要导入模块: from suds.sax.parser import Parser [as 别名]
# 或者: from suds.sax.parser.Parser import str [as 别名]
def sending(self, context):
'''Signs XML before sending'''
signature_template = '''
<Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
<SignedInfo>
<CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
<SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1" />
<Reference URI="#%(REFERENCE_ID)s">
<Transforms>
<Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" />
<Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
</Transforms>
<DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
<DigestValue></DigestValue>
</Reference>
</SignedInfo>
<SignatureValue />
<KeyInfo>
<X509Data>
<X509Certificate />
</X509Data>
</KeyInfo>
</Signature>
'''
envelope_element = Parser().parse(string=context.envelope).root()
envelope_element.refitPrefixes()
body = envelope_element.getChild('Body')
payload = body[0]
qname = payload.qname()
if 'Echo' in qname:
return
reference_id = "refId:%s" % uuid4()
payload.set('Id', reference_id)
signature_template %= {'REFERENCE_ID': reference_id}
signature_element = Parser().parse(string=signature_template).root()
payload.append(signature_element)
envelope = self.DTD_TEST_ID % qname
envelope += envelope_element.str()
envelope = envelope.encode('utf-8')
signer = XMLDSIG()
signer.load_key(self.key_path,
password=self.key_passphrase,
cert_path=self.cert_path)
context.envelope = signer.sign(envelope)
context.envelope = self.RE_DTD_TEST.sub('', context.envelope)