WS security XML support

This commit is contained in:
Roland Hedberg 2015-06-14 14:00:24 +01:00
parent c4eac4878c
commit afca69c20b
8 changed files with 3307 additions and 1 deletions

View File

@ -64,7 +64,7 @@ setup(
packages=['saml2', 'saml2/xmldsig', 'saml2/xmlenc', 'saml2/s2repoze',
'saml2/s2repoze.plugins', "saml2/profile", "saml2/schema",
"saml2/extension", "saml2/attributemaps", "saml2/authn_context",
"saml2/entity_category", "saml2/userinfo"],
"saml2/entity_category", "saml2/userinfo", "saml2/ws"],
package_dir={'': 'src'},
package_data={'': ['xml/*.xml']},

1
src/saml2/ws/__init__.py Normal file
View File

@ -0,0 +1 @@
__author__ = 'roland'

531
src/saml2/ws/wsaddr.py Normal file
View File

@ -0,0 +1,531 @@
#!/usr/bin/env python
#
# Generated Sun Jun 14 13:38:21 2015 by parse_xsd.py version 0.5.
#
import saml2
from saml2 import SamlBase
NAMESPACE = 'http://www.w3.org/2005/08/addressing'
class ReferenceParametersType_(SamlBase):
"""The http://www.w3.org/2005/08/addressing:ReferenceParametersType element """
c_tag = 'ReferenceParametersType'
c_namespace = NAMESPACE
c_children = SamlBase.c_children.copy()
c_attributes = SamlBase.c_attributes.copy()
c_child_order = SamlBase.c_child_order[:]
c_cardinality = SamlBase.c_cardinality.copy()
def reference_parameters_type__from_string(xml_string):
return saml2.create_class_from_xml_string(ReferenceParametersType_, xml_string)
class MetadataType_(SamlBase):
"""The http://www.w3.org/2005/08/addressing:MetadataType element """
c_tag = 'MetadataType'
c_namespace = NAMESPACE
c_children = SamlBase.c_children.copy()
c_attributes = SamlBase.c_attributes.copy()
c_child_order = SamlBase.c_child_order[:]
c_cardinality = SamlBase.c_cardinality.copy()
def metadata_type__from_string(xml_string):
return saml2.create_class_from_xml_string(MetadataType_, xml_string)
class RelationshipTypeOpenEnum_(SamlBase):
"""The http://www.w3.org/2005/08/addressing:RelationshipTypeOpenEnum element """
c_tag = 'RelationshipTypeOpenEnum'
c_namespace = NAMESPACE
c_children = SamlBase.c_children.copy()
c_attributes = SamlBase.c_attributes.copy()
c_child_order = SamlBase.c_child_order[:]
c_cardinality = SamlBase.c_cardinality.copy()
def relationship_type_open_enum__from_string(xml_string):
return saml2.create_class_from_xml_string(RelationshipTypeOpenEnum_, xml_string)
class RelationshipType_(SamlBase):
"""The http://www.w3.org/2005/08/addressing:RelationshipType element """
c_tag = 'RelationshipType'
c_namespace = NAMESPACE
c_value_type = {'base': 'xs:anyURI', 'enumeration': ['http://www.w3.org/2005/08/addressing/reply']}
c_children = SamlBase.c_children.copy()
c_attributes = SamlBase.c_attributes.copy()
c_child_order = SamlBase.c_child_order[:]
c_cardinality = SamlBase.c_cardinality.copy()
def relationship_type__from_string(xml_string):
return saml2.create_class_from_xml_string(RelationshipType_, xml_string)
class AttributedURIType_(SamlBase):
"""The http://www.w3.org/2005/08/addressing:AttributedURIType element """
c_tag = 'AttributedURIType'
c_namespace = NAMESPACE
c_value_type = {'base': 'anyURI'}
c_children = SamlBase.c_children.copy()
c_attributes = SamlBase.c_attributes.copy()
c_child_order = SamlBase.c_child_order[:]
c_cardinality = SamlBase.c_cardinality.copy()
def attributed_uri_type__from_string(xml_string):
return saml2.create_class_from_xml_string(AttributedURIType_, xml_string)
class FaultCodesOpenEnumType_(SamlBase):
"""The http://www.w3.org/2005/08/addressing:FaultCodesOpenEnumType element """
c_tag = 'FaultCodesOpenEnumType'
c_namespace = NAMESPACE
c_children = SamlBase.c_children.copy()
c_attributes = SamlBase.c_attributes.copy()
c_child_order = SamlBase.c_child_order[:]
c_cardinality = SamlBase.c_cardinality.copy()
def fault_codes_open_enum_type__from_string(xml_string):
return saml2.create_class_from_xml_string(FaultCodesOpenEnumType_, xml_string)
class FaultCodesType_(SamlBase):
"""The http://www.w3.org/2005/08/addressing:FaultCodesType element """
c_tag = 'FaultCodesType'
c_namespace = NAMESPACE
c_value_type = {'base': 'xs:QName', 'enumeration': ['tns:InvalidAddressingHeader', 'tns:InvalidAddress', 'tns:InvalidEPR', 'tns:InvalidCardinality', 'tns:MissingAddressInEPR', 'tns:DuplicateMessageID', 'tns:ActionMismatch', 'tns:MessageAddressingHeaderRequired', 'tns:DestinationUnreachable', 'tns:ActionNotSupported', 'tns:EndpointUnavailable']}
c_children = SamlBase.c_children.copy()
c_attributes = SamlBase.c_attributes.copy()
c_child_order = SamlBase.c_child_order[:]
c_cardinality = SamlBase.c_cardinality.copy()
def fault_codes_type__from_string(xml_string):
return saml2.create_class_from_xml_string(FaultCodesType_, xml_string)
class AttributedUnsignedLongType_(SamlBase):
"""The http://www.w3.org/2005/08/addressing:AttributedUnsignedLongType element """
c_tag = 'AttributedUnsignedLongType'
c_namespace = NAMESPACE
c_value_type = {'base': 'unsignedLong'}
c_children = SamlBase.c_children.copy()
c_attributes = SamlBase.c_attributes.copy()
c_child_order = SamlBase.c_child_order[:]
c_cardinality = SamlBase.c_cardinality.copy()
def attributed_unsigned_long_type__from_string(xml_string):
return saml2.create_class_from_xml_string(AttributedUnsignedLongType_, xml_string)
class AttributedQNameType_(SamlBase):
"""The http://www.w3.org/2005/08/addressing:AttributedQNameType element """
c_tag = 'AttributedQNameType'
c_namespace = NAMESPACE
c_value_type = {'base': 'QName'}
c_children = SamlBase.c_children.copy()
c_attributes = SamlBase.c_attributes.copy()
c_child_order = SamlBase.c_child_order[:]
c_cardinality = SamlBase.c_cardinality.copy()
def attributed_q_name_type__from_string(xml_string):
return saml2.create_class_from_xml_string(AttributedQNameType_, xml_string)
class ProblemIRI(AttributedURIType_):
"""The http://www.w3.org/2005/08/addressing:ProblemIRI element """
c_tag = 'ProblemIRI'
c_namespace = NAMESPACE
c_children = AttributedURIType_.c_children.copy()
c_attributes = AttributedURIType_.c_attributes.copy()
c_child_order = AttributedURIType_.c_child_order[:]
c_cardinality = AttributedURIType_.c_cardinality.copy()
def problem_iri_from_string(xml_string):
return saml2.create_class_from_xml_string(ProblemIRI, xml_string)
class EndpointReferenceType_Address(AttributedURIType_):
c_tag = 'Address'
c_namespace = NAMESPACE
c_children = AttributedURIType_.c_children.copy()
c_attributes = AttributedURIType_.c_attributes.copy()
c_child_order = AttributedURIType_.c_child_order[:]
c_cardinality = AttributedURIType_.c_cardinality.copy()
def endpoint_reference_type__address_from_string(xml_string):
return saml2.create_class_from_xml_string(EndpointReferenceType_Address, xml_string)
class ReferenceParameters(ReferenceParametersType_):
"""The http://www.w3.org/2005/08/addressing:ReferenceParameters element """
c_tag = 'ReferenceParameters'
c_namespace = NAMESPACE
c_children = ReferenceParametersType_.c_children.copy()
c_attributes = ReferenceParametersType_.c_attributes.copy()
c_child_order = ReferenceParametersType_.c_child_order[:]
c_cardinality = ReferenceParametersType_.c_cardinality.copy()
def reference_parameters_from_string(xml_string):
return saml2.create_class_from_xml_string(ReferenceParameters, xml_string)
class Metadata(MetadataType_):
"""The http://www.w3.org/2005/08/addressing:Metadata element """
c_tag = 'Metadata'
c_namespace = NAMESPACE
c_children = MetadataType_.c_children.copy()
c_attributes = MetadataType_.c_attributes.copy()
c_child_order = MetadataType_.c_child_order[:]
c_cardinality = MetadataType_.c_cardinality.copy()
def metadata_from_string(xml_string):
return saml2.create_class_from_xml_string(Metadata, xml_string)
class MessageID(AttributedURIType_):
"""The http://www.w3.org/2005/08/addressing:MessageID element """
c_tag = 'MessageID'
c_namespace = NAMESPACE
c_children = AttributedURIType_.c_children.copy()
c_attributes = AttributedURIType_.c_attributes.copy()
c_child_order = AttributedURIType_.c_child_order[:]
c_cardinality = AttributedURIType_.c_cardinality.copy()
def message_id_from_string(xml_string):
return saml2.create_class_from_xml_string(MessageID, xml_string)
class RelatesToType_(SamlBase):
"""The http://www.w3.org/2005/08/addressing:RelatesToType element """
c_tag = 'RelatesToType'
c_namespace = NAMESPACE
c_value_type = {'base': 'anyURI'}
c_children = SamlBase.c_children.copy()
c_attributes = SamlBase.c_attributes.copy()
c_child_order = SamlBase.c_child_order[:]
c_cardinality = SamlBase.c_cardinality.copy()
c_attributes['RelationshipType'] = ('relationship_type', RelationshipTypeOpenEnum_, False)
def __init__(self,
relationship_type='http://www.w3.org/2005/08/addressing/reply',
text=None,
extension_elements=None,
extension_attributes=None,
):
SamlBase.__init__(self,
text=text,
extension_elements=extension_elements,
extension_attributes=extension_attributes,
)
self.relationship_type=relationship_type
def relates_to_type__from_string(xml_string):
return saml2.create_class_from_xml_string(RelatesToType_, xml_string)
class To(AttributedURIType_):
"""The http://www.w3.org/2005/08/addressing:To element """
c_tag = 'To'
c_namespace = NAMESPACE
c_children = AttributedURIType_.c_children.copy()
c_attributes = AttributedURIType_.c_attributes.copy()
c_child_order = AttributedURIType_.c_child_order[:]
c_cardinality = AttributedURIType_.c_cardinality.copy()
def to_from_string(xml_string):
return saml2.create_class_from_xml_string(To, xml_string)
class Action(AttributedURIType_):
"""The http://www.w3.org/2005/08/addressing:Action element """
c_tag = 'Action'
c_namespace = NAMESPACE
c_children = AttributedURIType_.c_children.copy()
c_attributes = AttributedURIType_.c_attributes.copy()
c_child_order = AttributedURIType_.c_child_order[:]
c_cardinality = AttributedURIType_.c_cardinality.copy()
def action_from_string(xml_string):
return saml2.create_class_from_xml_string(Action, xml_string)
class RetryAfter(AttributedUnsignedLongType_):
"""The http://www.w3.org/2005/08/addressing:RetryAfter element """
c_tag = 'RetryAfter'
c_namespace = NAMESPACE
c_children = AttributedUnsignedLongType_.c_children.copy()
c_attributes = AttributedUnsignedLongType_.c_attributes.copy()
c_child_order = AttributedUnsignedLongType_.c_child_order[:]
c_cardinality = AttributedUnsignedLongType_.c_cardinality.copy()
def retry_after_from_string(xml_string):
return saml2.create_class_from_xml_string(RetryAfter, xml_string)
class ProblemHeaderQName(AttributedQNameType_):
"""The http://www.w3.org/2005/08/addressing:ProblemHeaderQName element """
c_tag = 'ProblemHeaderQName'
c_namespace = NAMESPACE
c_children = AttributedQNameType_.c_children.copy()
c_attributes = AttributedQNameType_.c_attributes.copy()
c_child_order = AttributedQNameType_.c_child_order[:]
c_cardinality = AttributedQNameType_.c_cardinality.copy()
def problem_header_q_name_from_string(xml_string):
return saml2.create_class_from_xml_string(ProblemHeaderQName, xml_string)
class ProblemActionType_SoapAction(SamlBase):
c_tag = 'SoapAction'
c_namespace = NAMESPACE
c_value_type = {'base': 'anyURI'}
c_children = SamlBase.c_children.copy()
c_attributes = SamlBase.c_attributes.copy()
c_child_order = SamlBase.c_child_order[:]
c_cardinality = SamlBase.c_cardinality.copy()
def problem_action_type__soap_action_from_string(xml_string):
return saml2.create_class_from_xml_string(ProblemActionType_SoapAction, xml_string)
class ProblemActionType_(SamlBase):
"""The http://www.w3.org/2005/08/addressing:ProblemActionType element """
c_tag = 'ProblemActionType'
c_namespace = NAMESPACE
c_children = SamlBase.c_children.copy()
c_attributes = SamlBase.c_attributes.copy()
c_child_order = SamlBase.c_child_order[:]
c_cardinality = SamlBase.c_cardinality.copy()
c_children['{http://www.w3.org/2005/08/addressing}Action'] = ('action', Action)
c_cardinality['action'] = {"min":0, "max":1}
c_children['{http://www.w3.org/2005/08/addressing}SoapAction'] = ('soap_action', ProblemActionType_SoapAction)
c_cardinality['soap_action'] = {"min":0, "max":1}
c_child_order.extend(['action', 'soap_action'])
def __init__(self,
action=None,
soap_action=None,
text=None,
extension_elements=None,
extension_attributes=None,
):
SamlBase.__init__(self,
text=text,
extension_elements=extension_elements,
extension_attributes=extension_attributes,
)
self.action=action
self.soap_action=soap_action
def problem_action_type__from_string(xml_string):
return saml2.create_class_from_xml_string(ProblemActionType_, xml_string)
class EndpointReferenceType_(SamlBase):
"""The http://www.w3.org/2005/08/addressing:EndpointReferenceType element """
c_tag = 'EndpointReferenceType'
c_namespace = NAMESPACE
c_children = SamlBase.c_children.copy()
c_attributes = SamlBase.c_attributes.copy()
c_child_order = SamlBase.c_child_order[:]
c_cardinality = SamlBase.c_cardinality.copy()
c_children['{http://www.w3.org/2005/08/addressing}Address'] = ('address', EndpointReferenceType_Address)
c_children['{http://www.w3.org/2005/08/addressing}ReferenceParameters'] = ('reference_parameters', ReferenceParameters)
c_cardinality['reference_parameters'] = {"min":0, "max":1}
c_children['{http://www.w3.org/2005/08/addressing}Metadata'] = ('metadata', Metadata)
c_cardinality['metadata'] = {"min":0, "max":1}
c_child_order.extend(['address', 'reference_parameters', 'metadata'])
def __init__(self,
address=None,
reference_parameters=None,
metadata=None,
text=None,
extension_elements=None,
extension_attributes=None,
):
SamlBase.__init__(self,
text=text,
extension_elements=extension_elements,
extension_attributes=extension_attributes,
)
self.address=address
self.reference_parameters=reference_parameters
self.metadata=metadata
def endpoint_reference_type__from_string(xml_string):
return saml2.create_class_from_xml_string(EndpointReferenceType_, xml_string)
class RelatesTo(RelatesToType_):
"""The http://www.w3.org/2005/08/addressing:RelatesTo element """
c_tag = 'RelatesTo'
c_namespace = NAMESPACE
c_children = RelatesToType_.c_children.copy()
c_attributes = RelatesToType_.c_attributes.copy()
c_child_order = RelatesToType_.c_child_order[:]
c_cardinality = RelatesToType_.c_cardinality.copy()
def relates_to_from_string(xml_string):
return saml2.create_class_from_xml_string(RelatesTo, xml_string)
class ReplyTo(EndpointReferenceType_):
"""The http://www.w3.org/2005/08/addressing:ReplyTo element """
c_tag = 'ReplyTo'
c_namespace = NAMESPACE
c_children = EndpointReferenceType_.c_children.copy()
c_attributes = EndpointReferenceType_.c_attributes.copy()
c_child_order = EndpointReferenceType_.c_child_order[:]
c_cardinality = EndpointReferenceType_.c_cardinality.copy()
def reply_to_from_string(xml_string):
return saml2.create_class_from_xml_string(ReplyTo, xml_string)
class From(EndpointReferenceType_):
"""The http://www.w3.org/2005/08/addressing:From element """
c_tag = 'From'
c_namespace = NAMESPACE
c_children = EndpointReferenceType_.c_children.copy()
c_attributes = EndpointReferenceType_.c_attributes.copy()
c_child_order = EndpointReferenceType_.c_child_order[:]
c_cardinality = EndpointReferenceType_.c_cardinality.copy()
def from_from_string(xml_string):
return saml2.create_class_from_xml_string(From, xml_string)
class FaultTo(EndpointReferenceType_):
"""The http://www.w3.org/2005/08/addressing:FaultTo element """
c_tag = 'FaultTo'
c_namespace = NAMESPACE
c_children = EndpointReferenceType_.c_children.copy()
c_attributes = EndpointReferenceType_.c_attributes.copy()
c_child_order = EndpointReferenceType_.c_child_order[:]
c_cardinality = EndpointReferenceType_.c_cardinality.copy()
def fault_to_from_string(xml_string):
return saml2.create_class_from_xml_string(FaultTo, xml_string)
class ProblemAction(ProblemActionType_):
"""The http://www.w3.org/2005/08/addressing:ProblemAction element """
c_tag = 'ProblemAction'
c_namespace = NAMESPACE
c_children = ProblemActionType_.c_children.copy()
c_attributes = ProblemActionType_.c_attributes.copy()
c_child_order = ProblemActionType_.c_child_order[:]
c_cardinality = ProblemActionType_.c_cardinality.copy()
def problem_action_from_string(xml_string):
return saml2.create_class_from_xml_string(ProblemAction, xml_string)
class EndpointReference(EndpointReferenceType_):
"""The http://www.w3.org/2005/08/addressing:EndpointReference element """
c_tag = 'EndpointReference'
c_namespace = NAMESPACE
c_children = EndpointReferenceType_.c_children.copy()
c_attributes = EndpointReferenceType_.c_attributes.copy()
c_child_order = EndpointReferenceType_.c_child_order[:]
c_cardinality = EndpointReferenceType_.c_cardinality.copy()
def endpoint_reference_from_string(xml_string):
return saml2.create_class_from_xml_string(EndpointReference, xml_string)
ELEMENT_FROM_STRING = {
EndpointReference.c_tag: endpoint_reference_from_string,
EndpointReferenceType_.c_tag: endpoint_reference_type__from_string,
ReferenceParameters.c_tag: reference_parameters_from_string,
ReferenceParametersType_.c_tag: reference_parameters_type__from_string,
Metadata.c_tag: metadata_from_string,
MetadataType_.c_tag: metadata_type__from_string,
MessageID.c_tag: message_id_from_string,
RelatesTo.c_tag: relates_to_from_string,
RelatesToType_.c_tag: relates_to_type__from_string,
RelationshipTypeOpenEnum_.c_tag: relationship_type_open_enum__from_string,
RelationshipType_.c_tag: relationship_type__from_string,
ReplyTo.c_tag: reply_to_from_string,
From.c_tag: from_from_string,
FaultTo.c_tag: fault_to_from_string,
To.c_tag: to_from_string,
Action.c_tag: action_from_string,
AttributedURIType_.c_tag: attributed_uri_type__from_string,
FaultCodesOpenEnumType_.c_tag: fault_codes_open_enum_type__from_string,
FaultCodesType_.c_tag: fault_codes_type__from_string,
RetryAfter.c_tag: retry_after_from_string,
AttributedUnsignedLongType_.c_tag: attributed_unsigned_long_type__from_string,
ProblemHeaderQName.c_tag: problem_header_q_name_from_string,
AttributedQNameType_.c_tag: attributed_q_name_type__from_string,
ProblemIRI.c_tag: problem_iri_from_string,
ProblemAction.c_tag: problem_action_from_string,
ProblemActionType_.c_tag: problem_action_type__from_string,
EndpointReferenceType_Address.c_tag: endpoint_reference_type__address_from_string,
ProblemActionType_SoapAction.c_tag: problem_action_type__soap_action_from_string,
}
ELEMENT_BY_TAG = {
'EndpointReference': EndpointReference,
'EndpointReferenceType': EndpointReferenceType_,
'ReferenceParameters': ReferenceParameters,
'ReferenceParametersType': ReferenceParametersType_,
'Metadata': Metadata,
'MetadataType': MetadataType_,
'MessageID': MessageID,
'RelatesTo': RelatesTo,
'RelatesToType': RelatesToType_,
'RelationshipTypeOpenEnum': RelationshipTypeOpenEnum_,
'RelationshipType': RelationshipType_,
'ReplyTo': ReplyTo,
'From': From,
'FaultTo': FaultTo,
'To': To,
'Action': Action,
'AttributedURIType': AttributedURIType_,
'FaultCodesOpenEnumType': FaultCodesOpenEnumType_,
'FaultCodesType': FaultCodesType_,
'RetryAfter': RetryAfter,
'AttributedUnsignedLongType': AttributedUnsignedLongType_,
'ProblemHeaderQName': ProblemHeaderQName,
'AttributedQNameType': AttributedQNameType_,
'ProblemIRI': ProblemIRI,
'ProblemAction': ProblemAction,
'ProblemActionType': ProblemActionType_,
'Address': EndpointReferenceType_Address,
'SoapAction': ProblemActionType_SoapAction,
}
def factory(tag, **kwargs):
return ELEMENT_BY_TAG[tag](**kwargs)

241
src/saml2/ws/wspol.py Normal file
View File

@ -0,0 +1,241 @@
#!/usr/bin/env python
#
# Generated Sun Jun 14 13:35:32 2015 by parse_xsd.py version 0.5.
#
import saml2
from saml2 import SamlBase
from saml2.ws import wssec as wsse
from saml2.ws import wsutil as wsu
NAMESPACE = 'http://schemas.xmlsoap.org/ws/2004/09/policy'
class PolicyReference(SamlBase):
"""The http://schemas.xmlsoap.org/ws/2004/09/policy:PolicyReference element """
c_tag = 'PolicyReference'
c_namespace = NAMESPACE
c_children = SamlBase.c_children.copy()
c_attributes = SamlBase.c_attributes.copy()
c_child_order = SamlBase.c_child_order[:]
c_cardinality = SamlBase.c_cardinality.copy()
c_attributes['URI'] = ('uri', 'anyURI', True)
c_attributes['Digest'] = ('digest', 'base64Binary', False)
c_attributes['DigestAlgorithm'] = ('digest_algorithm', 'anyURI', False)
def __init__(self,
uri=None,
digest=None,
digest_algorithm='http://schemas.xmlsoap.org/ws/2004/09/policy/Sha1Exc',
text=None,
extension_elements=None,
extension_attributes=None,
):
SamlBase.__init__(self,
text=text,
extension_elements=extension_elements,
extension_attributes=extension_attributes,
)
self.uri=uri
self.digest=digest
self.digest_algorithm=digest_algorithm
def policy_reference_from_string(xml_string):
return saml2.create_class_from_xml_string(PolicyReference, xml_string)
class AppliesTo(SamlBase):
"""The http://schemas.xmlsoap.org/ws/2004/09/policy:AppliesTo element """
c_tag = 'AppliesTo'
c_namespace = NAMESPACE
c_children = SamlBase.c_children.copy()
c_attributes = SamlBase.c_attributes.copy()
c_child_order = SamlBase.c_child_order[:]
c_cardinality = SamlBase.c_cardinality.copy()
def applies_to_from_string(xml_string):
return saml2.create_class_from_xml_string(AppliesTo, xml_string)
class PolicyAttachment(SamlBase):
"""The http://schemas.xmlsoap.org/ws/2004/09/policy:PolicyAttachment element """
c_tag = 'PolicyAttachment'
c_namespace = NAMESPACE
c_children = SamlBase.c_children.copy()
c_attributes = SamlBase.c_attributes.copy()
c_child_order = SamlBase.c_child_order[:]
c_cardinality = SamlBase.c_cardinality.copy()
c_children['{http://schemas.xmlsoap.org/ws/2004/09/policy}AppliesTo'] = ('applies_to', AppliesTo)
c_cardinality['policy'] = {"min":0}
c_children['{http://schemas.xmlsoap.org/ws/2004/09/policy}PolicyReference'] = ('policy_reference', [PolicyReference])
c_cardinality['policy_reference'] = {"min":0}
c_child_order.extend(['applies_to', 'policy', 'policy_reference'])
def __init__(self,
applies_to=None,
policy=None,
policy_reference=None,
text=None,
extension_elements=None,
extension_attributes=None,
):
SamlBase.__init__(self,
text=text,
extension_elements=extension_elements,
extension_attributes=extension_attributes,
)
self.applies_to=applies_to
self.policy=policy or []
self.policy_reference=policy_reference or []
def policy_attachment_from_string(xml_string):
return saml2.create_class_from_xml_string(PolicyAttachment, xml_string)
class OperatorContentType_(SamlBase):
"""The http://schemas.xmlsoap.org/ws/2004/09/policy:OperatorContentType element """
c_tag = 'OperatorContentType'
c_namespace = NAMESPACE
c_children = SamlBase.c_children.copy()
c_attributes = SamlBase.c_attributes.copy()
c_child_order = SamlBase.c_child_order[:]
c_cardinality = SamlBase.c_cardinality.copy()
c_cardinality['policy'] = {"min":0}
c_cardinality['all'] = {"min":0}
c_cardinality['exactly_one'] = {"min":0}
c_children['{http://schemas.xmlsoap.org/ws/2004/09/policy}PolicyReference'] = ('policy_reference', [PolicyReference])
c_cardinality['policy_reference'] = {"min":0}
c_child_order.extend(['policy', 'all', 'exactly_one', 'policy_reference'])
def __init__(self,
policy=None,
all=None,
exactly_one=None,
policy_reference=None,
text=None,
extension_elements=None,
extension_attributes=None,
):
SamlBase.__init__(self,
text=text,
extension_elements=extension_elements,
extension_attributes=extension_attributes,
)
self.policy=policy or []
self.all=all or []
self.exactly_one=exactly_one or []
self.policy_reference=policy_reference or []
def operator_content_type__from_string(xml_string):
return saml2.create_class_from_xml_string(OperatorContentType_, xml_string)
class Policy(OperatorContentType_):
"""The http://schemas.xmlsoap.org/ws/2004/09/policy:Policy element """
c_tag = 'Policy'
c_namespace = NAMESPACE
c_children = OperatorContentType_.c_children.copy()
c_attributes = OperatorContentType_.c_attributes.copy()
c_child_order = OperatorContentType_.c_child_order[:]
c_cardinality = OperatorContentType_.c_cardinality.copy()
c_attributes['Name'] = ('name', 'anyURI', False)
c_attributes['{http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd}Id'] = ('Id', 'tns:OperatorContentType', False)
def __init__(self,
name=None,
Id=None,
policy=None,
all=None,
exactly_one=None,
policy_reference=None,
text=None,
extension_elements=None,
extension_attributes=None,
):
OperatorContentType_.__init__(self,
policy=policy,
all=all,
exactly_one=exactly_one,
policy_reference=policy_reference,
text=text,
extension_elements=extension_elements,
extension_attributes=extension_attributes,
)
self.name=name
self.Id=Id
def policy_from_string(xml_string):
return saml2.create_class_from_xml_string(Policy, xml_string)
class All(OperatorContentType_):
"""The http://schemas.xmlsoap.org/ws/2004/09/policy:All element """
c_tag = 'All'
c_namespace = NAMESPACE
c_children = OperatorContentType_.c_children.copy()
c_attributes = OperatorContentType_.c_attributes.copy()
c_child_order = OperatorContentType_.c_child_order[:]
c_cardinality = OperatorContentType_.c_cardinality.copy()
def all_from_string(xml_string):
return saml2.create_class_from_xml_string(All, xml_string)
class ExactlyOne(OperatorContentType_):
"""The http://schemas.xmlsoap.org/ws/2004/09/policy:ExactlyOne element """
c_tag = 'ExactlyOne'
c_namespace = NAMESPACE
c_children = OperatorContentType_.c_children.copy()
c_attributes = OperatorContentType_.c_attributes.copy()
c_child_order = OperatorContentType_.c_child_order[:]
c_cardinality = OperatorContentType_.c_cardinality.copy()
def exactly_one_from_string(xml_string):
return saml2.create_class_from_xml_string(ExactlyOne, xml_string)
PolicyAttachment.c_children['{http://schemas.xmlsoap.org/ws/2004/09/policy}Policy'] = ('policy', [Policy])
OperatorContentType_.c_children['{http://schemas.xmlsoap.org/ws/2004/09/policy}Policy'] = ('policy', [Policy])
Policy.c_children['{http://schemas.xmlsoap.org/ws/2004/09/policy}Policy'] = ('policy', [Policy])
ExactlyOne.c_children['{http://schemas.xmlsoap.org/ws/2004/09/policy}Policy'] = ('policy', [Policy])
All.c_children['{http://schemas.xmlsoap.org/ws/2004/09/policy}Policy'] = ('policy', [Policy])
OperatorContentType_.c_children['{http://schemas.xmlsoap.org/ws/2004/09/policy}All'] = ('all', [All])
Policy.c_children['{http://schemas.xmlsoap.org/ws/2004/09/policy}All'] = ('all', [All])
ExactlyOne.c_children['{http://schemas.xmlsoap.org/ws/2004/09/policy}All'] = ('all', [All])
All.c_children['{http://schemas.xmlsoap.org/ws/2004/09/policy}All'] = ('all', [All])
OperatorContentType_.c_children['{http://schemas.xmlsoap.org/ws/2004/09/policy}ExactlyOne'] = ('exactly_one', [ExactlyOne])
Policy.c_children['{http://schemas.xmlsoap.org/ws/2004/09/policy}ExactlyOne'] = ('exactly_one', [ExactlyOne])
ExactlyOne.c_children['{http://schemas.xmlsoap.org/ws/2004/09/policy}ExactlyOne'] = ('exactly_one', [ExactlyOne])
All.c_children['{http://schemas.xmlsoap.org/ws/2004/09/policy}ExactlyOne'] = ('exactly_one', [ExactlyOne])
ELEMENT_FROM_STRING = {
Policy.c_tag: policy_from_string,
All.c_tag: all_from_string,
ExactlyOne.c_tag: exactly_one_from_string,
OperatorContentType_.c_tag: operator_content_type__from_string,
PolicyReference.c_tag: policy_reference_from_string,
PolicyAttachment.c_tag: policy_attachment_from_string,
AppliesTo.c_tag: applies_to_from_string,
}
ELEMENT_BY_TAG = {
'Policy': Policy,
'All': All,
'ExactlyOne': ExactlyOne,
'OperatorContentType': OperatorContentType_,
'PolicyReference': PolicyReference,
'PolicyAttachment': PolicyAttachment,
'AppliesTo': AppliesTo,
}
def factory(tag, **kwargs):
return ELEMENT_BY_TAG[tag](**kwargs)

546
src/saml2/ws/wssec.py Normal file
View File

@ -0,0 +1,546 @@
#!/usr/bin/env python
#
# Generated Sun Jun 14 13:29:15 2015 by parse_xsd.py version 0.5.
#
import saml2
from saml2 import SamlBase
from saml2 import xmldsig as ds
from saml2.schema import soapenv
from saml2.ws import wsutil as wsu
NAMESPACE = 'http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd'
class AttributedString_(SamlBase):
"""The http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd:AttributedString element """
c_tag = 'AttributedString'
c_namespace = NAMESPACE
c_value_type = {'base': 'string'}
c_children = SamlBase.c_children.copy()
c_attributes = SamlBase.c_attributes.copy()
c_child_order = SamlBase.c_child_order[:]
c_cardinality = SamlBase.c_cardinality.copy()
c_attributes['{http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd}Id'] = ('Id', 'string', False)
def __init__(self,
Id=None,
text=None,
extension_elements=None,
extension_attributes=None,
):
SamlBase.__init__(self,
text=text,
extension_elements=extension_elements,
extension_attributes=extension_attributes,
)
self.Id=Id
def attributed_string__from_string(xml_string):
return saml2.create_class_from_xml_string(AttributedString_, xml_string)
class PasswordString_(AttributedString_):
"""The http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd:PasswordString element """
c_tag = 'PasswordString'
c_namespace = NAMESPACE
c_children = AttributedString_.c_children.copy()
c_attributes = AttributedString_.c_attributes.copy()
c_child_order = AttributedString_.c_child_order[:]
c_cardinality = AttributedString_.c_cardinality.copy()
c_attributes['Type'] = ('type', 'anyURI', False)
def __init__(self,
type=None,
Id=None,
text=None,
extension_elements=None,
extension_attributes=None,
):
AttributedString_.__init__(self,
Id=Id,
text=text,
extension_elements=extension_elements,
extension_attributes=extension_attributes,
)
self.type=type
def password_string__from_string(xml_string):
return saml2.create_class_from_xml_string(PasswordString_, xml_string)
class EncodedString_(AttributedString_):
"""The http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd:EncodedString element """
c_tag = 'EncodedString'
c_namespace = NAMESPACE
c_children = AttributedString_.c_children.copy()
c_attributes = AttributedString_.c_attributes.copy()
c_child_order = AttributedString_.c_child_order[:]
c_cardinality = AttributedString_.c_cardinality.copy()
c_attributes['EncodingType'] = ('encoding_type', 'anyURI', False)
def __init__(self,
encoding_type=None,
Id=None,
text=None,
extension_elements=None,
extension_attributes=None,
):
AttributedString_.__init__(self,
Id=Id,
text=text,
extension_elements=extension_elements,
extension_attributes=extension_attributes,
)
self.encoding_type=encoding_type
def encoded_string__from_string(xml_string):
return saml2.create_class_from_xml_string(EncodedString_, xml_string)
class UsernameTokenType_Username(AttributedString_):
c_tag = 'Username'
c_namespace = NAMESPACE
c_children = AttributedString_.c_children.copy()
c_attributes = AttributedString_.c_attributes.copy()
c_child_order = AttributedString_.c_child_order[:]
c_cardinality = AttributedString_.c_cardinality.copy()
def username_token_type__username_from_string(xml_string):
return saml2.create_class_from_xml_string(UsernameTokenType_Username, xml_string)
class UsernameTokenType_(SamlBase):
"""The http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd:UsernameTokenType element """
c_tag = 'UsernameTokenType'
c_namespace = NAMESPACE
c_children = SamlBase.c_children.copy()
c_attributes = SamlBase.c_attributes.copy()
c_child_order = SamlBase.c_child_order[:]
c_cardinality = SamlBase.c_cardinality.copy()
c_children['{http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd}Username'] = ('username', UsernameTokenType_Username)
c_attributes['{http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd}Id'] = ('Id', 'None', False)
c_child_order.extend(['username'])
def __init__(self,
username=None,
Id=None,
text=None,
extension_elements=None,
extension_attributes=None,
):
SamlBase.__init__(self,
text=text,
extension_elements=extension_elements,
extension_attributes=extension_attributes,
)
self.username=username
self.Id=Id
def username_token_type__from_string(xml_string):
return saml2.create_class_from_xml_string(UsernameTokenType_, xml_string)
class BinarySecurityTokenType_(EncodedString_):
"""The http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd:BinarySecurityTokenType element """
c_tag = 'BinarySecurityTokenType'
c_namespace = NAMESPACE
c_children = EncodedString_.c_children.copy()
c_attributes = EncodedString_.c_attributes.copy()
c_child_order = EncodedString_.c_child_order[:]
c_cardinality = EncodedString_.c_cardinality.copy()
c_attributes['ValueType'] = ('value_type', 'anyURI', False)
def __init__(self,
value_type=None,
encoding_type=None,
Id=None,
text=None,
extension_elements=None,
extension_attributes=None,
):
EncodedString_.__init__(self,
encoding_type=encoding_type,
Id=Id,
text=text,
extension_elements=extension_elements,
extension_attributes=extension_attributes,
)
self.value_type=value_type
def binary_security_token_type__from_string(xml_string):
return saml2.create_class_from_xml_string(BinarySecurityTokenType_, xml_string)
class KeyIdentifierType_(EncodedString_):
"""The http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd:KeyIdentifierType element """
c_tag = 'KeyIdentifierType'
c_namespace = NAMESPACE
c_children = EncodedString_.c_children.copy()
c_attributes = EncodedString_.c_attributes.copy()
c_child_order = EncodedString_.c_child_order[:]
c_cardinality = EncodedString_.c_cardinality.copy()
c_attributes['ValueType'] = ('value_type', 'anyURI', False)
def __init__(self,
value_type=None,
encoding_type=None,
Id=None,
text=None,
extension_elements=None,
extension_attributes=None,
):
EncodedString_.__init__(self,
encoding_type=encoding_type,
Id=Id,
text=text,
extension_elements=extension_elements,
extension_attributes=extension_attributes,
)
self.value_type=value_type
def key_identifier_type__from_string(xml_string):
return saml2.create_class_from_xml_string(KeyIdentifierType_, xml_string)
class TUsage_(SamlBase):
"""The http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd:tUsage element """
c_tag = 'tUsage'
c_namespace = NAMESPACE
c_children = SamlBase.c_children.copy()
c_attributes = SamlBase.c_attributes.copy()
c_child_order = SamlBase.c_child_order[:]
c_cardinality = SamlBase.c_cardinality.copy()
def t_usage__from_string(xml_string):
return saml2.create_class_from_xml_string(TUsage_, xml_string)
class ReferenceType_(SamlBase):
"""The http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd:ReferenceType element """
c_tag = 'ReferenceType'
c_namespace = NAMESPACE
c_children = SamlBase.c_children.copy()
c_attributes = SamlBase.c_attributes.copy()
c_child_order = SamlBase.c_child_order[:]
c_cardinality = SamlBase.c_cardinality.copy()
c_attributes['URI'] = ('uri', 'anyURI', False)
c_attributes['ValueType'] = ('value_type', 'anyURI', False)
def __init__(self,
uri=None,
value_type=None,
text=None,
extension_elements=None,
extension_attributes=None,
):
SamlBase.__init__(self,
text=text,
extension_elements=extension_elements,
extension_attributes=extension_attributes,
)
self.uri=uri
self.value_type=value_type
def reference_type__from_string(xml_string):
return saml2.create_class_from_xml_string(ReferenceType_, xml_string)
class EmbeddedType_(SamlBase):
"""The http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd:EmbeddedType element """
c_tag = 'EmbeddedType'
c_namespace = NAMESPACE
c_children = SamlBase.c_children.copy()
c_attributes = SamlBase.c_attributes.copy()
c_child_order = SamlBase.c_child_order[:]
c_cardinality = SamlBase.c_cardinality.copy()
c_attributes['ValueType'] = ('value_type', 'anyURI', False)
def __init__(self,
value_type=None,
text=None,
extension_elements=None,
extension_attributes=None,
):
SamlBase.__init__(self,
text=text,
extension_elements=extension_elements,
extension_attributes=extension_attributes,
)
self.value_type=value_type
def embedded_type__from_string(xml_string):
return saml2.create_class_from_xml_string(EmbeddedType_, xml_string)
class SecurityTokenReferenceType_(SamlBase):
"""The http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd:SecurityTokenReferenceType element """
c_tag = 'SecurityTokenReferenceType'
c_namespace = NAMESPACE
c_children = SamlBase.c_children.copy()
c_attributes = SamlBase.c_attributes.copy()
c_child_order = SamlBase.c_child_order[:]
c_cardinality = SamlBase.c_cardinality.copy()
c_attributes['{http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd}Id'] = ('Id', 'None', False)
c_attributes['Usage'] = ('Usage', 'None', False)
def __init__(self,
Id=None,
Usage=None,
text=None,
extension_elements=None,
extension_attributes=None,
):
SamlBase.__init__(self,
text=text,
extension_elements=extension_elements,
extension_attributes=extension_attributes,
)
self.Id=Id
self.Usage=Usage
def security_token_reference_type__from_string(xml_string):
return saml2.create_class_from_xml_string(SecurityTokenReferenceType_, xml_string)
class SecurityHeaderType_(SamlBase):
"""The http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd:SecurityHeaderType element """
c_tag = 'SecurityHeaderType'
c_namespace = NAMESPACE
c_children = SamlBase.c_children.copy()
c_attributes = SamlBase.c_attributes.copy()
c_child_order = SamlBase.c_child_order[:]
c_cardinality = SamlBase.c_cardinality.copy()
def security_header_type__from_string(xml_string):
return saml2.create_class_from_xml_string(SecurityHeaderType_, xml_string)
class TransformationParametersType_(SamlBase):
"""The http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd:TransformationParametersType element """
c_tag = 'TransformationParametersType'
c_namespace = NAMESPACE
c_children = SamlBase.c_children.copy()
c_attributes = SamlBase.c_attributes.copy()
c_child_order = SamlBase.c_child_order[:]
c_cardinality = SamlBase.c_cardinality.copy()
def transformation_parameters_type__from_string(xml_string):
return saml2.create_class_from_xml_string(TransformationParametersType_, xml_string)
class UsernameToken(UsernameTokenType_):
"""The http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd:UsernameToken element """
c_tag = 'UsernameToken'
c_namespace = NAMESPACE
c_children = UsernameTokenType_.c_children.copy()
c_attributes = UsernameTokenType_.c_attributes.copy()
c_child_order = UsernameTokenType_.c_child_order[:]
c_cardinality = UsernameTokenType_.c_cardinality.copy()
def username_token_from_string(xml_string):
return saml2.create_class_from_xml_string(UsernameToken, xml_string)
class BinarySecurityToken(BinarySecurityTokenType_):
"""The http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd:BinarySecurityToken element """
c_tag = 'BinarySecurityToken'
c_namespace = NAMESPACE
c_children = BinarySecurityTokenType_.c_children.copy()
c_attributes = BinarySecurityTokenType_.c_attributes.copy()
c_child_order = BinarySecurityTokenType_.c_child_order[:]
c_cardinality = BinarySecurityTokenType_.c_cardinality.copy()
def binary_security_token_from_string(xml_string):
return saml2.create_class_from_xml_string(BinarySecurityToken, xml_string)
class Reference(ReferenceType_):
"""The http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd:Reference element """
c_tag = 'Reference'
c_namespace = NAMESPACE
c_children = ReferenceType_.c_children.copy()
c_attributes = ReferenceType_.c_attributes.copy()
c_child_order = ReferenceType_.c_child_order[:]
c_cardinality = ReferenceType_.c_cardinality.copy()
def reference_from_string(xml_string):
return saml2.create_class_from_xml_string(Reference, xml_string)
class Embedded(EmbeddedType_):
"""The http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd:Embedded element """
c_tag = 'Embedded'
c_namespace = NAMESPACE
c_children = EmbeddedType_.c_children.copy()
c_attributes = EmbeddedType_.c_attributes.copy()
c_child_order = EmbeddedType_.c_child_order[:]
c_cardinality = EmbeddedType_.c_cardinality.copy()
def embedded_from_string(xml_string):
return saml2.create_class_from_xml_string(Embedded, xml_string)
class KeyIdentifier(KeyIdentifierType_):
"""The http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd:KeyIdentifier element """
c_tag = 'KeyIdentifier'
c_namespace = NAMESPACE
c_children = KeyIdentifierType_.c_children.copy()
c_attributes = KeyIdentifierType_.c_attributes.copy()
c_child_order = KeyIdentifierType_.c_child_order[:]
c_cardinality = KeyIdentifierType_.c_cardinality.copy()
def key_identifier_from_string(xml_string):
return saml2.create_class_from_xml_string(KeyIdentifier, xml_string)
class SecurityTokenReference(SecurityTokenReferenceType_):
"""The http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd:SecurityTokenReference element """
c_tag = 'SecurityTokenReference'
c_namespace = NAMESPACE
c_children = SecurityTokenReferenceType_.c_children.copy()
c_attributes = SecurityTokenReferenceType_.c_attributes.copy()
c_child_order = SecurityTokenReferenceType_.c_child_order[:]
c_cardinality = SecurityTokenReferenceType_.c_cardinality.copy()
def security_token_reference_from_string(xml_string):
return saml2.create_class_from_xml_string(SecurityTokenReference, xml_string)
class Security(SecurityHeaderType_):
"""The http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd:Security element """
c_tag = 'Security'
c_namespace = NAMESPACE
c_children = SecurityHeaderType_.c_children.copy()
c_attributes = SecurityHeaderType_.c_attributes.copy()
c_child_order = SecurityHeaderType_.c_child_order[:]
c_cardinality = SecurityHeaderType_.c_cardinality.copy()
def security_from_string(xml_string):
return saml2.create_class_from_xml_string(Security, xml_string)
class TransformationParameters(TransformationParametersType_):
"""The http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd:TransformationParameters element """
c_tag = 'TransformationParameters'
c_namespace = NAMESPACE
c_children = TransformationParametersType_.c_children.copy()
c_attributes = TransformationParametersType_.c_attributes.copy()
c_child_order = TransformationParametersType_.c_child_order[:]
c_cardinality = TransformationParametersType_.c_cardinality.copy()
def transformation_parameters_from_string(xml_string):
return saml2.create_class_from_xml_string(TransformationParameters, xml_string)
class Password(PasswordString_):
"""The http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd:Password element """
c_tag = 'Password'
c_namespace = NAMESPACE
c_children = PasswordString_.c_children.copy()
c_attributes = PasswordString_.c_attributes.copy()
c_child_order = PasswordString_.c_child_order[:]
c_cardinality = PasswordString_.c_cardinality.copy()
def password_from_string(xml_string):
return saml2.create_class_from_xml_string(Password, xml_string)
class Nonce(EncodedString_):
"""The http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd:Nonce element """
c_tag = 'Nonce'
c_namespace = NAMESPACE
c_children = EncodedString_.c_children.copy()
c_attributes = EncodedString_.c_attributes.copy()
c_child_order = EncodedString_.c_child_order[:]
c_cardinality = EncodedString_.c_cardinality.copy()
def nonce_from_string(xml_string):
return saml2.create_class_from_xml_string(Nonce, xml_string)
class FaultcodeEnum_(SamlBase):
"""The http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd:FaultcodeEnum element """
c_tag = 'FaultcodeEnum'
c_namespace = NAMESPACE
c_value_type = {'base': 'xsd:QName', 'enumeration': ['wsse:UnsupportedSecurityToken', 'wsse:UnsupportedAlgorithm', 'wsse:InvalidSecurity', 'wsse:InvalidSecurityToken', 'wsse:FailedAuthentication', 'wsse:FailedCheck', 'wsse:SecurityTokenUnavailable']}
c_children = SamlBase.c_children.copy()
c_attributes = SamlBase.c_attributes.copy()
c_child_order = SamlBase.c_child_order[:]
c_cardinality = SamlBase.c_cardinality.copy()
def faultcode_enum__from_string(xml_string):
return saml2.create_class_from_xml_string(FaultcodeEnum_, xml_string)
#..................
('#', [])
ELEMENT_FROM_STRING = {
AttributedString_.c_tag: attributed_string__from_string,
PasswordString_.c_tag: password_string__from_string,
EncodedString_.c_tag: encoded_string__from_string,
UsernameTokenType_.c_tag: username_token_type__from_string,
BinarySecurityTokenType_.c_tag: binary_security_token_type__from_string,
KeyIdentifierType_.c_tag: key_identifier_type__from_string,
TUsage_.c_tag: t_usage__from_string,
ReferenceType_.c_tag: reference_type__from_string,
EmbeddedType_.c_tag: embedded_type__from_string,
SecurityTokenReferenceType_.c_tag: security_token_reference_type__from_string,
SecurityHeaderType_.c_tag: security_header_type__from_string,
TransformationParametersType_.c_tag: transformation_parameters_type__from_string,
UsernameToken.c_tag: username_token_from_string,
BinarySecurityToken.c_tag: binary_security_token_from_string,
Reference.c_tag: reference_from_string,
Embedded.c_tag: embedded_from_string,
KeyIdentifier.c_tag: key_identifier_from_string,
SecurityTokenReference.c_tag: security_token_reference_from_string,
Security.c_tag: security_from_string,
TransformationParameters.c_tag: transformation_parameters_from_string,
Password.c_tag: password_from_string,
Nonce.c_tag: nonce_from_string,
FaultcodeEnum_.c_tag: faultcode_enum__from_string,
UsernameTokenType_Username.c_tag: username_token_type__username_from_string,
}
ELEMENT_BY_TAG = {
'AttributedString': AttributedString_,
'PasswordString': PasswordString_,
'EncodedString': EncodedString_,
'UsernameTokenType': UsernameTokenType_,
'BinarySecurityTokenType': BinarySecurityTokenType_,
'KeyIdentifierType': KeyIdentifierType_,
'tUsage': TUsage_,
'ReferenceType': ReferenceType_,
'EmbeddedType': EmbeddedType_,
'SecurityTokenReferenceType': SecurityTokenReferenceType_,
'SecurityHeaderType': SecurityHeaderType_,
'TransformationParametersType': TransformationParametersType_,
'UsernameToken': UsernameToken,
'BinarySecurityToken': BinarySecurityToken,
'Reference': Reference,
'Embedded': Embedded,
'KeyIdentifier': KeyIdentifier,
'SecurityTokenReference': SecurityTokenReference,
'Security': Security,
'TransformationParameters': TransformationParameters,
'Password': Password,
'Nonce': Nonce,
'FaultcodeEnum': FaultcodeEnum_,
'Username': UsernameTokenType_Username,
}
def factory(tag, **kwargs):
return ELEMENT_BY_TAG[tag](**kwargs)

1802
src/saml2/ws/wstrust.py Normal file

File diff suppressed because it is too large Load Diff

184
src/saml2/ws/wsutil.py Normal file
View File

@ -0,0 +1,184 @@
#!/usr/bin/env python
#
# Generated Sun Jun 14 12:18:10 2015 by parse_xsd.py version 0.5.
#
import saml2
from saml2 import SamlBase
NAMESPACE = 'http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd'
class TTimestampFault_(SamlBase):
"""The http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd:tTimestampFault element """
c_tag = 'tTimestampFault'
c_namespace = NAMESPACE
c_children = SamlBase.c_children.copy()
c_attributes = SamlBase.c_attributes.copy()
c_child_order = SamlBase.c_child_order[:]
c_cardinality = SamlBase.c_cardinality.copy()
def t_timestamp_fault__from_string(xml_string):
return saml2.create_class_from_xml_string(TTimestampFault_, xml_string)
class AttributedDateTime_(SamlBase):
"""The http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd:AttributedDateTime element """
c_tag = 'AttributedDateTime'
c_namespace = NAMESPACE
c_value_type = {'base': 'string'}
c_children = SamlBase.c_children.copy()
c_attributes = SamlBase.c_attributes.copy()
c_child_order = SamlBase.c_child_order[:]
c_cardinality = SamlBase.c_cardinality.copy()
c_attributes['Id'] = ('Id', 'anyURI', False)
def __init__(self,
Id=None,
text=None,
extension_elements=None,
extension_attributes=None,
):
SamlBase.__init__(self,
text=text,
extension_elements=extension_elements,
extension_attributes=extension_attributes,
)
self.Id=Id
def attributed_date_time__from_string(xml_string):
return saml2.create_class_from_xml_string(AttributedDateTime_, xml_string)
class AttributedURI_(SamlBase):
"""The http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd:AttributedURI element """
c_tag = 'AttributedURI'
c_namespace = NAMESPACE
c_value_type = {'base': 'anyURI'}
c_children = SamlBase.c_children.copy()
c_attributes = SamlBase.c_attributes.copy()
c_child_order = SamlBase.c_child_order[:]
c_cardinality = SamlBase.c_cardinality.copy()
c_attributes['Id'] = ('Id', 'anyURI', False)
def __init__(self,
Id=None,
text=None,
extension_elements=None,
extension_attributes=None,
):
SamlBase.__init__(self,
text=text,
extension_elements=extension_elements,
extension_attributes=extension_attributes,
)
self.Id=Id
def attributed_ur_i__from_string(xml_string):
return saml2.create_class_from_xml_string(AttributedURI_, xml_string)
class Expires(AttributedDateTime_):
"""The http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd:Expires element """
c_tag = 'Expires'
c_namespace = NAMESPACE
c_children = AttributedDateTime_.c_children.copy()
c_attributes = AttributedDateTime_.c_attributes.copy()
c_child_order = AttributedDateTime_.c_child_order[:]
c_cardinality = AttributedDateTime_.c_cardinality.copy()
def expires_from_string(xml_string):
return saml2.create_class_from_xml_string(Expires, xml_string)
class Created(AttributedDateTime_):
"""The http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd:Created element """
c_tag = 'Created'
c_namespace = NAMESPACE
c_children = AttributedDateTime_.c_children.copy()
c_attributes = AttributedDateTime_.c_attributes.copy()
c_child_order = AttributedDateTime_.c_child_order[:]
c_cardinality = AttributedDateTime_.c_cardinality.copy()
def created_from_string(xml_string):
return saml2.create_class_from_xml_string(Created, xml_string)
class TimestampType_(SamlBase):
"""The http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd:TimestampType element """
c_tag = 'TimestampType'
c_namespace = NAMESPACE
c_children = SamlBase.c_children.copy()
c_attributes = SamlBase.c_attributes.copy()
c_child_order = SamlBase.c_child_order[:]
c_cardinality = SamlBase.c_cardinality.copy()
c_children['{http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd}Created'] = ('created', Created)
c_cardinality['created'] = {"min":0, "max":1}
c_children['{http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd}Expires'] = ('expires', Expires)
c_cardinality['expires'] = {"min":0, "max":1}
c_attributes['Id'] = ('Id', 'anyURI', False)
c_child_order.extend(['created', 'expires'])
def __init__(self,
created=None,
expires=None,
Id=None,
text=None,
extension_elements=None,
extension_attributes=None,
):
SamlBase.__init__(self,
text=text,
extension_elements=extension_elements,
extension_attributes=extension_attributes,
)
self.created=created
self.expires=expires
self.Id=Id
def timestamp_type__from_string(xml_string):
return saml2.create_class_from_xml_string(TimestampType_, xml_string)
class Timestamp(TimestampType_):
"""The http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd:Timestamp element """
c_tag = 'Timestamp'
c_namespace = NAMESPACE
c_children = TimestampType_.c_children.copy()
c_attributes = TimestampType_.c_attributes.copy()
c_child_order = TimestampType_.c_child_order[:]
c_cardinality = TimestampType_.c_cardinality.copy()
def timestamp_from_string(xml_string):
return saml2.create_class_from_xml_string(Timestamp, xml_string)
#..................
AG_commonAtts = [
('Id', '', False),
]
ELEMENT_FROM_STRING = {
TTimestampFault_.c_tag: t_timestamp_fault__from_string,
AttributedDateTime_.c_tag: attributed_date_time__from_string,
AttributedURI_.c_tag: attributed_ur_i__from_string,
TimestampType_.c_tag: timestamp_type__from_string,
Timestamp.c_tag: timestamp_from_string,
Expires.c_tag: expires_from_string,
Created.c_tag: created_from_string,
}
ELEMENT_BY_TAG = {
'tTimestampFault': TTimestampFault_,
'AttributedDateTime': AttributedDateTime_,
'AttributedURI': AttributedURI_,
'TimestampType': TimestampType_,
'Timestamp': Timestamp,
'Expires': Expires,
'Created': Created,
}
def factory(tag, **kwargs):
return ELEMENT_BY_TAG[tag](**kwargs)

View File

@ -7,6 +7,7 @@ import imp
import sys
import types
import errno
import six
__version__ = 0.5