-/*
- * Copyright 2001-2006 Internet2
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+/**
+ * Licensed to the University Corporation for Advanced Internet
+ * Development, Inc. (UCAID) under one or more contributor license
+ * agreements. See the NOTICE file distributed with this work for
+ * additional information regarding copyright ownership.
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * UCAID licenses this file to you under the Apache License,
+ * Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the
+ * License at
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
+ * either express or implied. See the License for the specific
+ * language governing permissions and limitations under the License.
*/
/**
* Protocols20Impl.cpp
*
- * Implementation classes for SAML 2.0 Protocols schema
+ * Implementation classes for SAML 2.0 Protocols schema.
*/
#include "internal.h"
#include "exceptions.h"
-#include "saml/encryption/EncryptedKeyResolver.h"
#include "saml2/core/Protocols.h"
+#include "signature/ContentReference.h"
#include <xmltooling/AbstractComplexElement.h>
-#include <xmltooling/AbstractElementProxy.h>
#include <xmltooling/AbstractSimpleElement.h>
-#include <xmltooling/encryption/Decrypter.h>
+#include <xmltooling/encryption/Encryption.h>
#include <xmltooling/impl/AnyElement.h>
#include <xmltooling/io/AbstractXMLObjectMarshaller.h>
#include <xmltooling/io/AbstractXMLObjectUnmarshaller.h>
+#include <xmltooling/signature/Signature.h>
+#include <xmltooling/util/DateTime.h>
#include <xmltooling/util/XMLHelper.h>
#include <ctime>
+#include <boost/lambda/bind.hpp>
+#include <boost/lambda/if.hpp>
+#include <boost/lambda/lambda.hpp>
#include <xercesc/util/XMLUniDefs.hpp>
using namespace opensaml::saml2p;
-using namespace opensaml::saml2;
-using namespace opensaml;
-using namespace xmlsignature;
-using namespace xmlencryption;
using namespace xmltooling;
using namespace std;
+using xmlconstants::XMLSIG_NS;
+using xmlconstants::XMLENC_NS;
+using xmlconstants::XML_BOOL_NULL;
+using samlconstants::SAML20_NS;
+using samlconstants::SAML20P_NS;
#if defined (_MSC_VER)
#pragma warning( push )
DECL_XMLOBJECTIMPL_SIMPLE(SAML_DLLLOCAL,RespondTo);
- //TODO need unit test for this, using objects from another namespace
+ class SAML_DLLLOCAL AsynchronousImpl : public virtual Asynchronous,
+ public AbstractSimpleElement,
+ public AbstractDOMCachingXMLObject,
+ public AbstractXMLObjectMarshaller,
+ public AbstractXMLObjectUnmarshaller
+ {
+ public:
+ virtual ~AsynchronousImpl() {}
+
+ AsynchronousImpl(const XMLCh* nsURI, const XMLCh* localName, const XMLCh* prefix, const xmltooling::QName* schemaType)
+ : AbstractXMLObject(nsURI, localName, prefix, schemaType) {}
+
+ AsynchronousImpl(const AsynchronousImpl& src)
+ : AbstractXMLObject(src), AbstractSimpleElement(src), AbstractDOMCachingXMLObject(src) {}
+
+ IMPL_XMLOBJECT_CLONE(Asynchronous);
+
+ protected:
+ // has no attributes or children
+ };
+
class SAML_DLLLOCAL ExtensionsImpl : public virtual Extensions,
- public AbstractElementProxy,
+ public AbstractComplexElement,
public AbstractDOMCachingXMLObject,
public AbstractXMLObjectMarshaller,
public AbstractXMLObjectUnmarshaller
public:
virtual ~ExtensionsImpl() {}
- ExtensionsImpl(const XMLCh* nsURI, const XMLCh* localName, const XMLCh* prefix, const QName* schemaType)
- : AbstractXMLObject(nsURI, localName, prefix, schemaType) {
- }
+ ExtensionsImpl(const XMLCh* nsURI, const XMLCh* localName, const XMLCh* prefix, const xmltooling::QName* schemaType)
+ : AbstractXMLObject(nsURI, localName, prefix, schemaType) {}
ExtensionsImpl(const ExtensionsImpl& src)
- : AbstractXMLObject(src), AbstractElementProxy(src), AbstractDOMCachingXMLObject(src) {
- for (list<XMLObject*>::const_iterator i=src.m_children.begin(); i!=src.m_children.end(); i++) {
- if (*i) {
- getXMLObjects().push_back((*i)->clone());
- }
- }
+ : AbstractXMLObject(src), AbstractComplexElement(src), AbstractDOMCachingXMLObject(src) {
+ IMPL_CLONE_XMLOBJECT_CHILDREN(UnknownXMLObject);
}
IMPL_XMLOBJECT_CLONE(Extensions);
+ IMPL_XMLOBJECT_CHILDREN(UnknownXMLObject,m_children.end());
protected:
void processChildElement(XMLObject* childXMLObject, const DOMElement* root) {
// Unknown child.
const XMLCh* nsURI=root->getNamespaceURI();
- if (!XMLString::equals(nsURI,SAMLConstants::SAML20P_NS) && nsURI && *nsURI) {
- getXMLObjects().push_back(childXMLObject);
+ if (!XMLString::equals(nsURI,SAML20P_NS) && nsURI && *nsURI) {
+ getUnknownXMLObjects().push_back(childXMLObject);
return;
}
public AbstractXMLObjectUnmarshaller
{
void init() {
- m_Value=NULL;
- m_StatusCode=NULL;
- m_children.push_back(NULL);
+ m_Value=nullptr;
+ m_StatusCode=nullptr;
+ m_children.push_back(nullptr);
m_pos_StatusCode=m_children.begin();
}
- public:
- virtual ~StatusCodeImpl() {}
- StatusCodeImpl(const XMLCh* nsURI, const XMLCh* localName, const XMLCh* prefix, const QName* schemaType)
- : AbstractXMLObject(nsURI, localName, prefix, schemaType)
- {
- init();
- }
+ public:
+ virtual ~StatusCodeImpl() {
+ XMLString::release(&m_Value);
+ }
- StatusCodeImpl(const StatusCodeImpl& src)
- : AbstractXMLObject(src), AbstractComplexElement(src), AbstractDOMCachingXMLObject(src) {
- init();
- setValue(src.getValue());
- if (src.getStatusCode())
- setStatusCode(src.getStatusCode()->cloneStatusCode());
- }
+ StatusCodeImpl(const XMLCh* nsURI, const XMLCh* localName, const XMLCh* prefix, const xmltooling::QName* schemaType)
+ : AbstractXMLObject(nsURI, localName, prefix, schemaType) {
+ init();
+ }
+
+ StatusCodeImpl(const StatusCodeImpl& src)
+ : AbstractXMLObject(src), AbstractComplexElement(src), AbstractDOMCachingXMLObject(src) {
+ init();
+ IMPL_CLONE_ATTRIB(Value);
+ IMPL_CLONE_TYPED_CHILD(StatusCode);
+ }
- IMPL_XMLOBJECT_CLONE(StatusCode);
- IMPL_STRING_ATTRIB(Value);
- IMPL_TYPED_CHILD(StatusCode);
+ IMPL_XMLOBJECT_CLONE(StatusCode);
+ IMPL_STRING_ATTRIB(Value);
+ IMPL_TYPED_CHILD(StatusCode);
- protected:
- void marshallAttributes(DOMElement* domElement) const {
- MARSHALL_STRING_ATTRIB(Value,VALUE,NULL);
- }
+ protected:
+ void marshallAttributes(DOMElement* domElement) const {
+ MARSHALL_STRING_ATTRIB(Value,VALUE,nullptr);
+ }
- void processChildElement(XMLObject* childXMLObject, const DOMElement* root) {
- PROC_TYPED_CHILD(StatusCode,SAMLConstants::SAML20P_NS,false);
- AbstractXMLObjectUnmarshaller::processChildElement(childXMLObject,root);
- }
+ void processChildElement(XMLObject* childXMLObject, const DOMElement* root) {
+ PROC_TYPED_CHILD(StatusCode,SAML20P_NS,false);
+ AbstractXMLObjectUnmarshaller::processChildElement(childXMLObject,root);
+ }
- void processAttribute(const DOMAttr* attribute) {
- PROC_STRING_ATTRIB(Value,VALUE,NULL);
- AbstractXMLObjectUnmarshaller::processAttribute(attribute);
- }
+ void processAttribute(const DOMAttr* attribute) {
+ PROC_STRING_ATTRIB(Value,VALUE,nullptr);
+ AbstractXMLObjectUnmarshaller::processAttribute(attribute);
+ }
};
- //TODO need unit tests for non-SAML namespace children
class SAML_DLLLOCAL StatusDetailImpl : public virtual StatusDetail,
public AbstractComplexElement,
public AbstractDOMCachingXMLObject,
public AbstractXMLObjectMarshaller,
public AbstractXMLObjectUnmarshaller
{
- public:
- virtual ~StatusDetailImpl() {}
-
- StatusDetailImpl(const XMLCh* nsURI, const XMLCh* localName, const XMLCh* prefix, const QName* schemaType)
- : AbstractXMLObject(nsURI, localName, prefix, schemaType) { }
-
- StatusDetailImpl(const StatusDetailImpl& src)
- : AbstractXMLObject(src), AbstractComplexElement(src), AbstractDOMCachingXMLObject(src) {
- VectorOf(XMLObject) v=getDetails();
- for (vector<XMLObject*>::const_iterator i=src.m_Details.begin(); i!=src.m_Details.end(); i++) {
- if (*i) {
- v.push_back((*i)->clone());
- }
- }
- }
+ public:
+ virtual ~StatusDetailImpl() {}
- IMPL_XMLOBJECT_CLONE(StatusDetail);
- IMPL_XMLOBJECT_CHILDREN(Detail,m_children.end());
+ StatusDetailImpl(const XMLCh* nsURI, const XMLCh* localName, const XMLCh* prefix, const xmltooling::QName* schemaType)
+ : AbstractXMLObject(nsURI, localName, prefix, schemaType) {}
- protected:
- void processChildElement(XMLObject* childXMLObject, const DOMElement* root) {
- getDetails().push_back(childXMLObject);
- AbstractXMLObjectUnmarshaller::processChildElement(childXMLObject,root);
- }
+ StatusDetailImpl(const StatusDetailImpl& src)
+ : AbstractXMLObject(src), AbstractComplexElement(src), AbstractDOMCachingXMLObject(src) {
+ IMPL_CLONE_XMLOBJECT_CHILDREN(UnknownXMLObject);
+ }
+
+ IMPL_XMLOBJECT_CLONE(StatusDetail);
+ IMPL_XMLOBJECT_CHILDREN(UnknownXMLObject,m_children.end());
+
+ protected:
+ void processChildElement(XMLObject* childXMLObject, const DOMElement* root) {
+ getUnknownXMLObjects().push_back(childXMLObject);
+ }
};
public AbstractXMLObjectUnmarshaller
{
void init() {
- m_StatusCode=NULL;
- m_StatusMessage=NULL;
- m_StatusDetail=NULL;
- m_children.push_back(NULL);
- m_children.push_back(NULL);
- m_children.push_back(NULL);
+ m_StatusCode=nullptr;
+ m_StatusMessage=nullptr;
+ m_StatusDetail=nullptr;
+ m_children.push_back(nullptr);
+ m_children.push_back(nullptr);
+ m_children.push_back(nullptr);
m_pos_StatusCode=m_children.begin();
m_pos_StatusMessage=m_pos_StatusCode;
++m_pos_StatusMessage;
m_pos_StatusDetail=m_pos_StatusMessage;
++m_pos_StatusDetail;
}
+
public:
- virtual ~StatusImpl() { }
+ virtual ~StatusImpl() {}
- StatusImpl(const XMLCh* nsURI, const XMLCh* localName, const XMLCh* prefix, const QName* schemaType)
+ StatusImpl(const XMLCh* nsURI, const XMLCh* localName, const XMLCh* prefix, const xmltooling::QName* schemaType)
: AbstractXMLObject(nsURI, localName, prefix, schemaType) {
init();
}
- StatusImpl(const StatusImpl& src)
- : AbstractXMLObject(src), AbstractComplexElement(src), AbstractDOMCachingXMLObject(src) {
+ StatusImpl(const StatusImpl& src) : AbstractXMLObject(src), AbstractComplexElement(src), AbstractDOMCachingXMLObject(src) {
init();
- if (src.getStatusCode())
- setStatusCode(src.getStatusCode()->cloneStatusCode());
- if (src.getStatusMessage())
- setStatusMessage(src.getStatusMessage()->cloneStatusMessage());
- if (src.getStatusDetail())
- setStatusDetail(src.getStatusDetail()->cloneStatusDetail());
+ IMPL_CLONE_TYPED_CHILD(StatusCode);
+ IMPL_CLONE_TYPED_CHILD(StatusMessage);
+ IMPL_CLONE_TYPED_CHILD(StatusDetail);
}
IMPL_XMLOBJECT_CLONE(Status);
IMPL_TYPED_CHILD(StatusMessage);
IMPL_TYPED_CHILD(StatusDetail);
+ // Base class methods.
+ const XMLCh* getTopStatus() const {
+ return getStatusCode() ? getStatusCode()->getValue() : nullptr;
+ }
+ const XMLCh* getSubStatus() const {
+ const StatusCode* sc = getStatusCode() ? getStatusCode()->getStatusCode() : nullptr;
+ return sc ? sc->getValue() : nullptr;
+ }
+ bool hasAdditionalStatus() const {
+ return (getStatusCode() && getStatusCode()->getStatusCode() && getStatusCode()->getStatusCode()->getStatusCode());
+ }
+ const XMLCh* getMessage() const {
+ return getStatusMessage() ? getStatusMessage()->getMessage() : nullptr;
+ }
+
protected:
-
void processChildElement(XMLObject* childXMLObject, const DOMElement* root) {
- PROC_TYPED_CHILD(StatusCode,SAMLConstants::SAML20P_NS,false);
- PROC_TYPED_CHILD(StatusMessage,SAMLConstants::SAML20P_NS,false);
- PROC_TYPED_CHILD(StatusDetail,SAMLConstants::SAML20P_NS,false);
+ PROC_TYPED_CHILD(StatusCode,SAML20P_NS,false);
+ PROC_TYPED_CHILD(StatusMessage,SAML20P_NS,false);
+ PROC_TYPED_CHILD(StatusDetail,SAML20P_NS,false);
AbstractXMLObjectUnmarshaller::processChildElement(childXMLObject,root);
}
-
};
public AbstractXMLObjectUnmarshaller
{
void init() {
- m_ID=NULL;
- m_Version=NULL;
- m_IssueInstant=NULL;
- m_Destination=NULL;
- m_Consent=NULL;
- m_Issuer=NULL;
- m_Signature=NULL;
- m_Extensions=NULL;
- m_children.push_back(NULL);
- m_children.push_back(NULL);
- m_children.push_back(NULL);
+ m_ID=nullptr;
+ m_Version=nullptr;
+ m_IssueInstant=nullptr;
+ m_Destination=nullptr;
+ m_Consent=nullptr;
+ m_Issuer=nullptr;
+ m_Signature=nullptr;
+ m_Extensions=nullptr;
+ m_children.push_back(nullptr);
+ m_children.push_back(nullptr);
+ m_children.push_back(nullptr);
m_pos_Issuer=m_children.begin();
m_pos_Signature=m_pos_Issuer;
++m_pos_Signature;
m_pos_Extensions=m_pos_Signature;
++m_pos_Extensions;
}
+
protected:
RequestAbstractTypeImpl() {
init();
}
+
public:
virtual ~RequestAbstractTypeImpl() {
XMLString::release(&m_ID);
delete m_IssueInstant;
}
- RequestAbstractTypeImpl(const XMLCh* nsURI, const XMLCh* localName, const XMLCh* prefix, const QName* schemaType)
+ RequestAbstractTypeImpl(const XMLCh* nsURI, const XMLCh* localName, const XMLCh* prefix, const xmltooling::QName* schemaType)
: AbstractXMLObject(nsURI, localName, prefix, schemaType) {
init();
}
RequestAbstractTypeImpl(const RequestAbstractTypeImpl& src)
: AbstractXMLObject(src), AbstractComplexElement(src), AbstractDOMCachingXMLObject(src) {
init();
- setID(src.getID());
- setVersion(src.getVersion());
- setIssueInstant(src.getIssueInstant());
- setDestination(src.getDestination());
- setConsent(src.getConsent());
- if (src.getIssuer())
- setIssuer(src.getIssuer()->cloneIssuer());
- if (src.getSignature())
- setSignature(src.getSignature()->cloneSignature());
- if (src.getExtensions())
- setExtensions(src.getExtensions()->cloneExtensions());
+ }
+
+ void _clone(const RequestAbstractTypeImpl& src) {
+ IMPL_CLONE_ATTRIB(ID);
+ IMPL_CLONE_ATTRIB(Version);
+ IMPL_CLONE_ATTRIB(IssueInstant);
+ IMPL_CLONE_ATTRIB(Destination);
+ IMPL_CLONE_ATTRIB(Consent);
+ IMPL_CLONE_TYPED_CHILD(Issuer);
+ IMPL_CLONE_TYPED_CHILD(Signature);
+ IMPL_CLONE_TYPED_CHILD(Extensions);
}
//IMPL_TYPED_CHILD(Signature);
// Need customized setter.
protected:
- Signature* m_Signature;
+ xmlsignature::Signature* m_Signature;
list<XMLObject*>::iterator m_pos_Signature;
public:
- Signature* getSignature() const {
+ xmlsignature::Signature* getSignature() const {
return m_Signature;
}
- void setSignature(Signature* sig) {
+ void setSignature(xmlsignature::Signature* sig) {
prepareForAssignment(m_Signature,sig);
*m_pos_Signature=m_Signature=sig;
// Sync content reference back up.
if (m_Signature)
m_Signature->setContentReference(new opensaml::ContentReference(*this));
}
+
+ RequestAbstractType* cloneRequestAbstractType() const {
+ return dynamic_cast<RequestAbstractType*>(clone());
+ }
IMPL_STRING_ATTRIB(Version);
- IMPL_ID_ATTRIB(ID);
+ IMPL_ID_ATTRIB_EX(ID,ID,nullptr);
IMPL_DATETIME_ATTRIB(IssueInstant,0);
IMPL_STRING_ATTRIB(Destination);
IMPL_STRING_ATTRIB(Consent);
IMPL_TYPED_CHILD(Extensions);
protected:
+ void prepareForMarshalling() const {
+ if (m_Signature)
+ declareNonVisibleNamespaces();
+ }
+
void marshallAttributes(DOMElement* domElement) const {
if (!m_Version)
const_cast<RequestAbstractTypeImpl*>(this)->m_Version=XMLString::transcode("2.0");
- MARSHALL_STRING_ATTRIB(Version,VER,NULL);
+ MARSHALL_STRING_ATTRIB(Version,VER,nullptr);
if (!m_ID)
const_cast<RequestAbstractTypeImpl*>(this)->m_ID=SAMLConfig::getConfig().generateIdentifier();
- MARSHALL_ID_ATTRIB(ID,ID,NULL);
+ MARSHALL_ID_ATTRIB(ID,ID,nullptr);
if (!m_IssueInstant) {
- const_cast<RequestAbstractTypeImpl*>(this)->m_IssueInstantEpoch=time(NULL);
+ const_cast<RequestAbstractTypeImpl*>(this)->m_IssueInstantEpoch=time(nullptr);
const_cast<RequestAbstractTypeImpl*>(this)->m_IssueInstant=new DateTime(m_IssueInstantEpoch);
}
- MARSHALL_DATETIME_ATTRIB(IssueInstant,ISSUEINSTANT,NULL);
- MARSHALL_STRING_ATTRIB(Destination,DESTINATION,NULL);
- MARSHALL_STRING_ATTRIB(Consent,CONSENT,NULL);
+ MARSHALL_DATETIME_ATTRIB(IssueInstant,ISSUEINSTANT,nullptr);
+ MARSHALL_STRING_ATTRIB(Destination,DESTINATION,nullptr);
+ MARSHALL_STRING_ATTRIB(Consent,CONSENT,nullptr);
}
void processChildElement(XMLObject* childXMLObject, const DOMElement* root) {
- PROC_TYPED_FOREIGN_CHILD(Issuer,saml2,SAMLConstants::SAML20_NS,false);
- PROC_TYPED_FOREIGN_CHILD(Signature,xmlsignature,XMLConstants::XMLSIG_NS,false);
- PROC_TYPED_CHILD(Extensions,SAMLConstants::SAML20P_NS,false);
+ PROC_TYPED_FOREIGN_CHILD(Issuer,saml2,SAML20_NS,false);
+ PROC_TYPED_FOREIGN_CHILD(Signature,xmlsignature,XMLSIG_NS,false);
+ PROC_TYPED_CHILD(Extensions,SAML20P_NS,false);
AbstractXMLObjectUnmarshaller::processChildElement(childXMLObject,root);
}
void processAttribute(const DOMAttr* attribute) {
- PROC_ID_ATTRIB(ID,ID,NULL);
- PROC_STRING_ATTRIB(Version,VER,NULL);
- PROC_DATETIME_ATTRIB(IssueInstant,ISSUEINSTANT,NULL);
- PROC_STRING_ATTRIB(Destination,DESTINATION,NULL);
- PROC_STRING_ATTRIB(Consent,CONSENT,NULL);
+ PROC_ID_ATTRIB(ID,ID,nullptr);
+ PROC_STRING_ATTRIB(Version,VER,nullptr);
+ PROC_DATETIME_ATTRIB(IssueInstant,ISSUEINSTANT,nullptr);
+ PROC_STRING_ATTRIB(Destination,DESTINATION,nullptr);
+ PROC_STRING_ATTRIB(Consent,CONSENT,nullptr);
AbstractXMLObjectUnmarshaller::processAttribute(attribute);
}
};
class SAML_DLLLOCAL AssertionIDRequestImpl : public virtual AssertionIDRequest, public RequestAbstractTypeImpl
{
public:
- virtual ~AssertionIDRequestImpl() { }
+ virtual ~AssertionIDRequestImpl() {}
- AssertionIDRequestImpl(const XMLCh* nsURI, const XMLCh* localName, const XMLCh* prefix, const QName* schemaType)
- : AbstractXMLObject(nsURI, localName, prefix, schemaType) { }
+ AssertionIDRequestImpl(const XMLCh* nsURI, const XMLCh* localName, const XMLCh* prefix, const xmltooling::QName* schemaType)
+ : AbstractXMLObject(nsURI, localName, prefix, schemaType) {}
- AssertionIDRequestImpl(const AssertionIDRequestImpl& src) : AbstractXMLObject(src), RequestAbstractTypeImpl(src) {
- VectorOf(AssertionIDRef) v=getAssertionIDRefs();
- for (vector<AssertionIDRef*>::const_iterator i=src.m_AssertionIDRefs.begin(); i!=src.m_AssertionIDRefs.end(); i++) {
- if (*i) {
- v.push_back((*i)->cloneAssertionIDRef());
- }
- }
+ AssertionIDRequestImpl(const AssertionIDRequestImpl& src) : AbstractXMLObject(src), RequestAbstractTypeImpl(src) {}
+ void _clone(const AssertionIDRequestImpl& src) {
+ RequestAbstractTypeImpl::_clone(src);
+ IMPL_CLONE_TYPED_FOREIGN_CHILDREN(AssertionIDRef,saml2);
}
- IMPL_XMLOBJECT_CLONE(AssertionIDRequest);
- RequestAbstractType* cloneRequestAbstractType() const {
- return cloneAssertionIDRequest();
- }
-
+ IMPL_XMLOBJECT_CLONE_EX(AssertionIDRequest);
IMPL_TYPED_FOREIGN_CHILDREN(AssertionIDRef,saml2,m_children.end());
protected:
void processChildElement(XMLObject* childXMLObject, const DOMElement* root) {
- PROC_TYPED_FOREIGN_CHILDREN(AssertionIDRef,saml2,SAMLConstants::SAML20_NS,false);
+ PROC_TYPED_FOREIGN_CHILDREN(AssertionIDRef,saml2,SAML20_NS,false);
RequestAbstractTypeImpl::processChildElement(childXMLObject,root);
}
};
class SAML_DLLLOCAL SubjectQueryImpl : public virtual SubjectQuery, public RequestAbstractTypeImpl
{
- void init()
- {
- m_Subject = NULL;
- m_children.push_back(NULL);
+ void init() {
+ m_Subject = nullptr;
+ m_children.push_back(nullptr);
m_pos_Subject = m_pos_Extensions;
++m_pos_Subject;
}
+
protected:
SubjectQueryImpl() {
init();
}
+
public:
- virtual ~SubjectQueryImpl() { }
+ virtual ~SubjectQueryImpl() {}
- SubjectQueryImpl(const XMLCh* nsURI, const XMLCh* localName, const XMLCh* prefix, const QName* schemaType)
- : AbstractXMLObject(nsURI, localName, prefix, schemaType)
- {
+ SubjectQueryImpl(const XMLCh* nsURI, const XMLCh* localName, const XMLCh* prefix, const xmltooling::QName* schemaType)
+ : AbstractXMLObject(nsURI, localName, prefix, schemaType) {
init();
}
SubjectQueryImpl(const SubjectQueryImpl& src) : AbstractXMLObject(src), RequestAbstractTypeImpl(src) {
init();
- if (src.getSubject())
- setSubject(src.getSubject()->cloneSubject());
+ }
+
+ void _clone(const SubjectQueryImpl& src) {
+ RequestAbstractTypeImpl::_clone(src);
+ IMPL_CLONE_TYPED_CHILD(Subject);
}
+ SubjectQuery* cloneSubjectQuery() const {
+ return dynamic_cast<SubjectQuery*>(clone());
+ }
+
IMPL_TYPED_FOREIGN_CHILD(Subject,saml2);
protected:
void processChildElement(XMLObject* childXMLObject, const DOMElement* root) {
- PROC_TYPED_FOREIGN_CHILD(Subject,saml2,SAMLConstants::SAML20_NS,false);
+ PROC_TYPED_FOREIGN_CHILD(Subject,saml2,SAML20_NS,false);
RequestAbstractTypeImpl::processChildElement(childXMLObject,root);
}
};
-
class SAML_DLLLOCAL RequestedAuthnContextImpl : public virtual RequestedAuthnContext,
public AbstractComplexElement,
public AbstractDOMCachingXMLObject,
public AbstractXMLObjectUnmarshaller
{
void init() {
- m_Comparison=NULL;
+ m_Comparison=nullptr;
}
+
public:
virtual ~RequestedAuthnContextImpl() {
XMLString::release(&m_Comparison);
}
- RequestedAuthnContextImpl(const XMLCh* nsURI, const XMLCh* localName, const XMLCh* prefix, const QName* schemaType)
+ RequestedAuthnContextImpl(const XMLCh* nsURI, const XMLCh* localName, const XMLCh* prefix, const xmltooling::QName* schemaType)
: AbstractXMLObject(nsURI, localName, prefix, schemaType) {
init();
}
RequestedAuthnContextImpl(const RequestedAuthnContextImpl& src)
: AbstractXMLObject(src), AbstractComplexElement(src), AbstractDOMCachingXMLObject(src) {
init();
- setComparison(src.getComparison());
- for (list<XMLObject*>::const_iterator i=src.m_children.begin(); i!=src.m_children.end(); i++) {
- if (*i) {
- AuthnContextClassRef* classref=dynamic_cast<AuthnContextClassRef*>(*i);
- if (classref) {
- getAuthnContextClassRefs().push_back(classref->cloneAuthnContextClassRef());
- continue;
- }
-
- AuthnContextDeclRef* declref=dynamic_cast<AuthnContextDeclRef*>(*i);
- if (declref) {
- getAuthnContextDeclRefs().push_back(declref->cloneAuthnContextDeclRef());
- continue;
- }
- }
- }
+ IMPL_CLONE_ATTRIB(Comparison);
+ IMPL_CLONE_CHILDBAG_BEGIN;
+ IMPL_CLONE_TYPED_FOREIGN_CHILD_IN_BAG(AuthnContextClassRef,saml2);
+ IMPL_CLONE_TYPED_FOREIGN_CHILD_IN_BAG(AuthnContextDeclRef,saml2);
+ IMPL_CLONE_CHILDBAG_END;
}
IMPL_XMLOBJECT_CLONE(RequestedAuthnContext);
protected:
void marshallAttributes(DOMElement* domElement) const {
- MARSHALL_STRING_ATTRIB(Comparison,COMPARISON,NULL);
+ MARSHALL_STRING_ATTRIB(Comparison,COMPARISON,nullptr);
}
void processChildElement(XMLObject* childXMLObject, const DOMElement* root) {
- PROC_TYPED_FOREIGN_CHILDREN(AuthnContextClassRef,saml2,SAMLConstants::SAML20_NS,false);
- PROC_TYPED_FOREIGN_CHILDREN(AuthnContextDeclRef,saml2,SAMLConstants::SAML20_NS,false);
+ PROC_TYPED_FOREIGN_CHILDREN(AuthnContextClassRef,saml2,SAML20_NS,false);
+ PROC_TYPED_FOREIGN_CHILDREN(AuthnContextDeclRef,saml2,SAML20_NS,false);
AbstractXMLObjectUnmarshaller::processChildElement(childXMLObject,root);
}
void processAttribute(const DOMAttr* attribute) {
- PROC_STRING_ATTRIB(Comparison,COMPARISON,NULL);
+ PROC_STRING_ATTRIB(Comparison,COMPARISON,nullptr);
AbstractXMLObjectUnmarshaller::processAttribute(attribute);
}
};
-
class SAML_DLLLOCAL AuthnQueryImpl : public virtual AuthnQuery, public SubjectQueryImpl
{
void init() {
- m_SessionIndex=NULL;
- m_RequestedAuthnContext=NULL;
- m_children.push_back(NULL);
+ m_SessionIndex=nullptr;
+ m_RequestedAuthnContext=nullptr;
+ m_children.push_back(nullptr);
m_pos_RequestedAuthnContext = m_pos_Subject;
++m_pos_RequestedAuthnContext;
}
+
public:
virtual ~AuthnQueryImpl() {
XMLString::release(&m_SessionIndex);
}
- AuthnQueryImpl(const XMLCh* nsURI, const XMLCh* localName, const XMLCh* prefix, const QName* schemaType)
- : AbstractXMLObject(nsURI, localName, prefix, schemaType)
- {
+ AuthnQueryImpl(const XMLCh* nsURI, const XMLCh* localName, const XMLCh* prefix, const xmltooling::QName* schemaType)
+ : AbstractXMLObject(nsURI, localName, prefix, schemaType) {
init();
}
AuthnQueryImpl(const AuthnQueryImpl& src) : AbstractXMLObject(src), SubjectQueryImpl(src) {
init();
- setSessionIndex(src.getSessionIndex());
- if (src.getRequestedAuthnContext())
- setRequestedAuthnContext(src.getRequestedAuthnContext()->cloneRequestedAuthnContext());
- }
-
- IMPL_XMLOBJECT_CLONE(AuthnQuery);
- SubjectQuery* cloneSubjectQuery() const {
- return cloneAuthnQuery();
- }
- RequestAbstractType* cloneRequestAbstractType() const {
- return cloneAuthnQuery();
}
+ void _clone(const AuthnQueryImpl& src) {
+ SubjectQueryImpl::_clone(src);
+ IMPL_CLONE_ATTRIB(SessionIndex);
+ IMPL_CLONE_TYPED_CHILD(RequestedAuthnContext);
+ }
+
+ IMPL_XMLOBJECT_CLONE_EX(AuthnQuery);
IMPL_STRING_ATTRIB(SessionIndex);
IMPL_TYPED_CHILD(RequestedAuthnContext);
protected:
void marshallAttributes(DOMElement* domElement) const {
- MARSHALL_STRING_ATTRIB(SessionIndex,SESSIONINDEX,NULL);
+ MARSHALL_STRING_ATTRIB(SessionIndex,SESSIONINDEX,nullptr);
SubjectQueryImpl::marshallAttributes(domElement);
}
void processChildElement(XMLObject* childXMLObject, const DOMElement* root) {
- PROC_TYPED_CHILD(RequestedAuthnContext,SAMLConstants::SAML20P_NS,false);
+ PROC_TYPED_CHILD(RequestedAuthnContext,SAML20P_NS,false);
SubjectQueryImpl::processChildElement(childXMLObject,root);
}
void processAttribute(const DOMAttr* attribute) {
- PROC_STRING_ATTRIB(SessionIndex,SESSIONINDEX,NULL);
+ PROC_STRING_ATTRIB(SessionIndex,SESSIONINDEX,nullptr);
SubjectQueryImpl::processAttribute(attribute);
}
};
class SAML_DLLLOCAL AttributeQueryImpl : public virtual AttributeQuery, public SubjectQueryImpl
{
public:
- virtual ~AttributeQueryImpl() { }
+ virtual ~AttributeQueryImpl() {}
- AttributeQueryImpl(const XMLCh* nsURI, const XMLCh* localName, const XMLCh* prefix, const QName* schemaType)
- : AbstractXMLObject(nsURI, localName, prefix, schemaType) { }
+ AttributeQueryImpl(const XMLCh* nsURI, const XMLCh* localName, const XMLCh* prefix, const xmltooling::QName* schemaType)
+ : AbstractXMLObject(nsURI, localName, prefix, schemaType) {}
- AttributeQueryImpl(const AttributeQueryImpl& src) : AbstractXMLObject(src), SubjectQueryImpl(src) {
- for (list<XMLObject*>::const_iterator i=src.m_children.begin(); i!=src.m_children.end(); i++) {
- if (*i) {
- Attribute* attrib=dynamic_cast<Attribute*>(*i);
- if (attrib) {
- getAttributes().push_back(attrib->cloneAttribute());
- continue;
- }
- }
- }
+ AttributeQueryImpl(const AttributeQueryImpl& src) : AbstractXMLObject(src), SubjectQueryImpl(src) {}
+ void _clone(const AttributeQueryImpl& src) {
+ SubjectQueryImpl::_clone(src);
+ IMPL_CLONE_TYPED_FOREIGN_CHILDREN(Attribute,saml2);
}
- IMPL_XMLOBJECT_CLONE(AttributeQuery);
- SubjectQuery* cloneSubjectQuery() const {
- return cloneAttributeQuery();
- }
- RequestAbstractType* cloneRequestAbstractType() const {
- return cloneAttributeQuery();
- }
-
+ IMPL_XMLOBJECT_CLONE_EX(AttributeQuery);
IMPL_TYPED_FOREIGN_CHILDREN(Attribute,saml2,m_children.end());
protected:
void processChildElement(XMLObject* childXMLObject, const DOMElement* root) {
- PROC_TYPED_FOREIGN_CHILDREN(Attribute,saml2,SAMLConstants::SAML20_NS,false);
+ PROC_TYPED_FOREIGN_CHILDREN(Attribute,saml2,SAML20_NS,false);
SubjectQueryImpl::processChildElement(childXMLObject,root);
}
};
class SAML_DLLLOCAL AuthzDecisionQueryImpl : public virtual AuthzDecisionQuery, public SubjectQueryImpl
{
void init() {
- m_Resource=NULL;
- m_Evidence=NULL;
- m_children.push_back(NULL);
+ m_Resource=nullptr;
+ m_Evidence=nullptr;
+ m_children.push_back(nullptr);
m_pos_Evidence=m_pos_Subject;
- ++m_pos_Evidence;
-
+ ++m_pos_Evidence;
}
+
public:
virtual ~AuthzDecisionQueryImpl() {
XMLString::release(&m_Resource);
}
- AuthzDecisionQueryImpl(const XMLCh* nsURI, const XMLCh* localName, const XMLCh* prefix, const QName* schemaType)
+ AuthzDecisionQueryImpl(const XMLCh* nsURI, const XMLCh* localName, const XMLCh* prefix, const xmltooling::QName* schemaType)
: AbstractXMLObject(nsURI, localName, prefix, schemaType) {
init();
}
AuthzDecisionQueryImpl(const AuthzDecisionQueryImpl& src) : AbstractXMLObject(src), SubjectQueryImpl(src) {
init();
- setResource(src.getResource());
- if (src.getEvidence())
- setEvidence(src.getEvidence()->cloneEvidence());
- for (list<XMLObject*>::const_iterator i=src.m_children.begin(); i!=src.m_children.end(); i++) {
- if (*i) {
- Action* action=dynamic_cast<Action*>(*i);
- if (action) {
- getActions().push_back(action->cloneAction());
- continue;
- }
- }
- }
- }
-
- IMPL_XMLOBJECT_CLONE(AuthzDecisionQuery);
- SubjectQuery* cloneSubjectQuery() const {
- return cloneAuthzDecisionQuery();
- }
- RequestAbstractType* cloneRequestAbstractType() const {
- return cloneAuthzDecisionQuery();
}
+ void _clone(const AuthzDecisionQueryImpl& src) {
+ SubjectQueryImpl::_clone(src);
+ IMPL_CLONE_ATTRIB(Resource);
+ IMPL_CLONE_TYPED_CHILD(Evidence);
+ IMPL_CLONE_TYPED_FOREIGN_CHILDREN(Action,saml2);
+ }
+
+ IMPL_XMLOBJECT_CLONE_EX(AuthzDecisionQuery);
IMPL_STRING_ATTRIB(Resource);
IMPL_TYPED_FOREIGN_CHILDREN(Action,saml2,m_pos_Evidence);
IMPL_TYPED_FOREIGN_CHILD(Evidence,saml2);
protected:
void marshallAttributes(DOMElement* domElement) const {
- MARSHALL_STRING_ATTRIB(Resource,RESOURCE,NULL);
+ MARSHALL_STRING_ATTRIB(Resource,RESOURCE,nullptr);
SubjectQueryImpl::marshallAttributes(domElement);
}
void processChildElement(XMLObject* childXMLObject, const DOMElement* root) {
- PROC_TYPED_FOREIGN_CHILD(Evidence,saml2,SAMLConstants::SAML20_NS,false);
- PROC_TYPED_FOREIGN_CHILDREN(Action,saml2,SAMLConstants::SAML20_NS,false);
+ PROC_TYPED_FOREIGN_CHILD(Evidence,saml2,SAML20_NS,false);
+ PROC_TYPED_FOREIGN_CHILDREN(Action,saml2,SAML20_NS,false);
SubjectQueryImpl::processChildElement(childXMLObject,root);
}
void processAttribute(const DOMAttr* attribute) {
- PROC_STRING_ATTRIB(Resource,RESOURCE,NULL);
+ PROC_STRING_ATTRIB(Resource,RESOURCE,nullptr);
SubjectQueryImpl::processAttribute(attribute);
}
};
public AbstractXMLObjectUnmarshaller
{
void init() {
- m_Format=NULL;
- m_SPNameQualifier=NULL;
- m_AllowCreate=XMLConstants::XML_BOOL_NULL;
- }
- public:
- virtual ~NameIDPolicyImpl()
- {
- XMLString::release(&m_Format);
- XMLString::release(&m_SPNameQualifier);
- }
+ m_Format=nullptr;
+ m_SPNameQualifier=nullptr;
+ m_AllowCreate=XML_BOOL_NULL;
+ }
- NameIDPolicyImpl(const XMLCh* nsURI, const XMLCh* localName, const XMLCh* prefix, const QName* schemaType)
- : AbstractXMLObject(nsURI, localName, prefix, schemaType)
- {
- init();
- }
+ public:
+ virtual ~NameIDPolicyImpl() {
+ XMLString::release(&m_Format);
+ XMLString::release(&m_SPNameQualifier);
+ }
- NameIDPolicyImpl(const NameIDPolicyImpl& src)
- : AbstractXMLObject(src), AbstractSimpleElement(src), AbstractDOMCachingXMLObject(src) {
- init();
- setFormat(src.getFormat());
- setSPNameQualifier(src.getSPNameQualifier());
- AllowCreate(m_AllowCreate);
- }
+ NameIDPolicyImpl(const XMLCh* nsURI, const XMLCh* localName, const XMLCh* prefix, const xmltooling::QName* schemaType)
+ : AbstractXMLObject(nsURI, localName, prefix, schemaType) {
+ init();
+ }
- IMPL_XMLOBJECT_CLONE(NameIDPolicy);
- IMPL_STRING_ATTRIB(Format);
- IMPL_STRING_ATTRIB(SPNameQualifier);
- IMPL_BOOLEAN_ATTRIB(AllowCreate);
+ NameIDPolicyImpl(const NameIDPolicyImpl& src)
+ : AbstractXMLObject(src), AbstractSimpleElement(src), AbstractDOMCachingXMLObject(src) {
+ init();
+ IMPL_CLONE_ATTRIB(Format);
+ IMPL_CLONE_ATTRIB(SPNameQualifier);
+ IMPL_CLONE_BOOLEAN_ATTRIB(AllowCreate);
+ }
- protected:
- void marshallAttributes(DOMElement* domElement) const {
- MARSHALL_STRING_ATTRIB(Format,FORMAT,NULL);
- MARSHALL_STRING_ATTRIB(SPNameQualifier,SPNAMEQUALIFIER,NULL);
- MARSHALL_BOOLEAN_ATTRIB(AllowCreate,ALLOWCREATE,NULL);
- }
+ IMPL_XMLOBJECT_CLONE(NameIDPolicy);
+ IMPL_STRING_ATTRIB(Format);
+ IMPL_STRING_ATTRIB(SPNameQualifier);
+ IMPL_BOOLEAN_ATTRIB(AllowCreate);
- void processAttribute(const DOMAttr* attribute) {
- PROC_STRING_ATTRIB(Format,FORMAT,NULL);
- PROC_STRING_ATTRIB(SPNameQualifier,SPNAMEQUALIFIER,NULL);
- PROC_BOOLEAN_ATTRIB(AllowCreate,ALLOWCREATE,NULL);
- AbstractXMLObjectUnmarshaller::processAttribute(attribute);
- }
+ protected:
+ void marshallAttributes(DOMElement* domElement) const {
+ MARSHALL_STRING_ATTRIB(Format,FORMAT,nullptr);
+ MARSHALL_STRING_ATTRIB(SPNameQualifier,SPNAMEQUALIFIER,nullptr);
+ MARSHALL_BOOLEAN_ATTRIB(AllowCreate,ALLOWCREATE,nullptr);
+ }
+
+ void processAttribute(const DOMAttr* attribute) {
+ PROC_STRING_ATTRIB(Format,FORMAT,nullptr);
+ PROC_STRING_ATTRIB(SPNameQualifier,SPNAMEQUALIFIER,nullptr);
+ PROC_BOOLEAN_ATTRIB(AllowCreate,ALLOWCREATE,nullptr);
+ AbstractXMLObjectUnmarshaller::processAttribute(attribute);
+ }
};
class SAML_DLLLOCAL IDPEntryImpl : public virtual IDPEntry,
public AbstractXMLObjectUnmarshaller
{
void init() {
- m_ProviderID=NULL;
- m_Name=NULL;
- m_Loc=NULL;
- }
- public:
- virtual ~IDPEntryImpl()
- {
- XMLString::release(&m_ProviderID);
- XMLString::release(&m_Name);
- XMLString::release(&m_Loc);
- }
+ m_ProviderID=nullptr;
+ m_Name=nullptr;
+ m_Loc=nullptr;
+ }
- IDPEntryImpl(const XMLCh* nsURI, const XMLCh* localName, const XMLCh* prefix, const QName* schemaType)
- : AbstractXMLObject(nsURI, localName, prefix, schemaType)
- {
- init();
- }
+ public:
+ virtual ~IDPEntryImpl() {
+ XMLString::release(&m_ProviderID);
+ XMLString::release(&m_Name);
+ XMLString::release(&m_Loc);
+ }
- IDPEntryImpl(const IDPEntryImpl& src)
- : AbstractXMLObject(src), AbstractSimpleElement(src), AbstractDOMCachingXMLObject(src) {
- init();
- setProviderID(src.getProviderID());
- setName(src.getName());
- setLoc(src.getLoc());
- }
+ IDPEntryImpl(const XMLCh* nsURI, const XMLCh* localName, const XMLCh* prefix, const xmltooling::QName* schemaType)
+ : AbstractXMLObject(nsURI, localName, prefix, schemaType) {
+ init();
+ }
- IMPL_XMLOBJECT_CLONE(IDPEntry);
- IMPL_STRING_ATTRIB(ProviderID);
- IMPL_STRING_ATTRIB(Name);
- IMPL_STRING_ATTRIB(Loc);
+ IDPEntryImpl(const IDPEntryImpl& src) : AbstractXMLObject(src), AbstractSimpleElement(src), AbstractDOMCachingXMLObject(src) {
+ init();
+ IMPL_CLONE_ATTRIB(ProviderID);
+ IMPL_CLONE_ATTRIB(Name);
+ IMPL_CLONE_ATTRIB(Loc);
+ }
- protected:
- void marshallAttributes(DOMElement* domElement) const {
- MARSHALL_STRING_ATTRIB(ProviderID,PROVIDERID,NULL);
- MARSHALL_STRING_ATTRIB(Name,NAME,NULL);
- MARSHALL_STRING_ATTRIB(Loc,LOC,NULL);
- }
+ IMPL_XMLOBJECT_CLONE(IDPEntry);
+ IMPL_STRING_ATTRIB(ProviderID);
+ IMPL_STRING_ATTRIB(Name);
+ IMPL_STRING_ATTRIB(Loc);
- void processAttribute(const DOMAttr* attribute) {
- PROC_STRING_ATTRIB(ProviderID,PROVIDERID,NULL);
- PROC_STRING_ATTRIB(Name,NAME,NULL);
- PROC_STRING_ATTRIB(Loc,LOC,NULL);
- AbstractXMLObjectUnmarshaller::processAttribute(attribute);
- }
+ protected:
+ void marshallAttributes(DOMElement* domElement) const {
+ MARSHALL_STRING_ATTRIB(ProviderID,PROVIDERID,nullptr);
+ MARSHALL_STRING_ATTRIB(Name,NAME,nullptr);
+ MARSHALL_STRING_ATTRIB(Loc,LOC,nullptr);
+ }
+
+ void processAttribute(const DOMAttr* attribute) {
+ PROC_STRING_ATTRIB(ProviderID,PROVIDERID,nullptr);
+ PROC_STRING_ATTRIB(Name,NAME,nullptr);
+ PROC_STRING_ATTRIB(Loc,LOC,nullptr);
+ AbstractXMLObjectUnmarshaller::processAttribute(attribute);
+ }
};
class SAML_DLLLOCAL IDPListImpl : public virtual IDPList,
public AbstractXMLObjectUnmarshaller
{
void init() {
- m_GetComplete=NULL;
- m_children.push_back(NULL);
+ m_GetComplete=nullptr;
+ m_children.push_back(nullptr);
m_pos_GetComplete=m_children.begin();
-
}
+
public:
- virtual ~IDPListImpl() { }
+ virtual ~IDPListImpl() {}
- IDPListImpl(const XMLCh* nsURI, const XMLCh* localName, const XMLCh* prefix, const QName* schemaType)
- : AbstractXMLObject(nsURI, localName, prefix, schemaType)
- {
+ IDPListImpl(const XMLCh* nsURI, const XMLCh* localName, const XMLCh* prefix, const xmltooling::QName* schemaType)
+ : AbstractXMLObject(nsURI, localName, prefix, schemaType) {
init();
}
IDPListImpl(const IDPListImpl& src)
: AbstractXMLObject(src), AbstractComplexElement(src), AbstractDOMCachingXMLObject(src) {
init();
- if (src.getGetComplete())
- setGetComplete(src.getGetComplete()->cloneGetComplete());
- for (list<XMLObject*>::const_iterator i=src.m_children.begin(); i!=src.m_children.end(); i++) {
- if (*i) {
- IDPEntry* entry=dynamic_cast<IDPEntry*>(*i);
- if (entry) {
- getIDPEntrys().push_back(entry->cloneIDPEntry());
- continue;
- }
- }
- }
+ IMPL_CLONE_TYPED_CHILD(GetComplete);
+ IMPL_CLONE_TYPED_CHILDREN(IDPEntry);
}
IMPL_XMLOBJECT_CLONE(IDPList);
protected:
void processChildElement(XMLObject* childXMLObject, const DOMElement* root) {
- PROC_TYPED_CHILDREN(IDPEntry,SAMLConstants::SAML20P_NS,false);
- PROC_TYPED_CHILD(GetComplete,SAMLConstants::SAML20P_NS,false);
+ PROC_TYPED_CHILDREN(IDPEntry,SAML20P_NS,false);
+ PROC_TYPED_CHILD(GetComplete,SAML20P_NS,false);
AbstractXMLObjectUnmarshaller::processChildElement(childXMLObject,root);
}
};
public AbstractXMLObjectUnmarshaller
{
void init() {
- m_ProxyCount=NULL;
- m_IDPList=NULL;
- m_children.push_back(NULL);
+ m_ProxyCount=nullptr;
+ m_IDPList=nullptr;
+ m_children.push_back(nullptr);
m_pos_IDPList=m_children.begin();
-
}
+
public:
virtual ~ScopingImpl() {
XMLString::release(&m_ProxyCount);
}
- ScopingImpl(const XMLCh* nsURI, const XMLCh* localName, const XMLCh* prefix, const QName* schemaType)
- : AbstractXMLObject(nsURI, localName, prefix, schemaType)
- {
+ ScopingImpl(const XMLCh* nsURI, const XMLCh* localName, const XMLCh* prefix, const xmltooling::QName* schemaType)
+ : AbstractXMLObject(nsURI, localName, prefix, schemaType) {
init();
}
ScopingImpl(const ScopingImpl& src)
: AbstractXMLObject(src), AbstractComplexElement(src), AbstractDOMCachingXMLObject(src) {
init();
- setProxyCount(m_ProxyCount);
- if (src.getIDPList())
- setIDPList(src.getIDPList()->cloneIDPList());
- for (list<XMLObject*>::const_iterator i=src.m_children.begin(); i!=src.m_children.end(); i++) {
- if (*i) {
- RequesterID* reqid =dynamic_cast<RequesterID*>(*i);
- if (reqid) {
- getRequesterIDs().push_back(reqid->cloneRequesterID());
- continue;
- }
- }
- }
+ IMPL_CLONE_INTEGER_ATTRIB(ProxyCount);
+ IMPL_CLONE_TYPED_CHILD(IDPList);
+ IMPL_CLONE_TYPED_CHILDREN(RequesterID);
}
IMPL_XMLOBJECT_CLONE(Scoping);
protected:
void marshallAttributes(DOMElement* domElement) const {
- MARSHALL_INTEGER_ATTRIB(ProxyCount,PROXYCOUNT,NULL);
+ MARSHALL_INTEGER_ATTRIB(ProxyCount,PROXYCOUNT,nullptr);
}
void processChildElement(XMLObject* childXMLObject, const DOMElement* root) {
- PROC_TYPED_CHILD(IDPList,SAMLConstants::SAML20P_NS,false);
- PROC_TYPED_CHILDREN(RequesterID,SAMLConstants::SAML20P_NS,false);
+ PROC_TYPED_CHILD(IDPList,SAML20P_NS,false);
+ PROC_TYPED_CHILDREN(RequesterID,SAML20P_NS,false);
AbstractXMLObjectUnmarshaller::processChildElement(childXMLObject,root);
}
void processAttribute(const DOMAttr* attribute) {
- PROC_INTEGER_ATTRIB(ProxyCount,PROXYCOUNT,NULL);
+ PROC_INTEGER_ATTRIB(ProxyCount,PROXYCOUNT,nullptr);
AbstractXMLObjectUnmarshaller::processAttribute(attribute);
}
};
class SAML_DLLLOCAL AuthnRequestImpl : public virtual AuthnRequest, public RequestAbstractTypeImpl
{
void init() {
- m_ForceAuthn=XMLConstants::XML_BOOL_NULL;
- m_IsPassive=XMLConstants::XML_BOOL_NULL;
- m_ProtocolBinding=NULL;
- m_AssertionConsumerServiceIndex=NULL;
- m_AssertionConsumerServiceURL=NULL;
- m_AttributeConsumingServiceIndex=NULL;
- m_ProviderName=NULL;
-
- m_Subject=NULL;
- m_NameIDPolicy=NULL;
- m_Conditions=NULL;
- m_RequestedAuthnContext=NULL;
- m_Scoping=NULL;
- m_children.push_back(NULL);
- m_children.push_back(NULL);
- m_children.push_back(NULL);
- m_children.push_back(NULL);
- m_children.push_back(NULL);
+ m_ForceAuthn=XML_BOOL_NULL;
+ m_IsPassive=XML_BOOL_NULL;
+ m_ProtocolBinding=nullptr;
+ m_AssertionConsumerServiceIndex=nullptr;
+ m_AssertionConsumerServiceURL=nullptr;
+ m_AttributeConsumingServiceIndex=nullptr;
+ m_ProviderName=nullptr;
+
+ m_Subject=nullptr;
+ m_NameIDPolicy=nullptr;
+ m_Conditions=nullptr;
+ m_RequestedAuthnContext=nullptr;
+ m_Scoping=nullptr;
+ m_children.push_back(nullptr);
+ m_children.push_back(nullptr);
+ m_children.push_back(nullptr);
+ m_children.push_back(nullptr);
+ m_children.push_back(nullptr);
m_pos_Subject=m_pos_Extensions;
++m_pos_Subject;
m_pos_NameIDPolicy=m_pos_Subject;
++m_pos_RequestedAuthnContext;
m_pos_Scoping=m_pos_RequestedAuthnContext;
++m_pos_Scoping;
-
}
+
public:
virtual ~AuthnRequestImpl() {
XMLString::release(&m_ProtocolBinding);
XMLString::release(&m_AttributeConsumingServiceIndex);
}
- AuthnRequestImpl(const XMLCh* nsURI, const XMLCh* localName, const XMLCh* prefix, const QName* schemaType)
- : AbstractXMLObject(nsURI, localName, prefix, schemaType)
- {
+ AuthnRequestImpl(const XMLCh* nsURI, const XMLCh* localName, const XMLCh* prefix, const xmltooling::QName* schemaType)
+ : AbstractXMLObject(nsURI, localName, prefix, schemaType) {
init();
}
AuthnRequestImpl(const AuthnRequestImpl& src) : AbstractXMLObject(src), RequestAbstractTypeImpl(src) {
init();
+ }
- ForceAuthn(m_ForceAuthn);
- IsPassive(m_IsPassive);
- setProtocolBinding(src.getProtocolBinding());
- setAssertionConsumerServiceIndex(m_AssertionConsumerServiceIndex);
- setAssertionConsumerServiceURL(src.getAssertionConsumerServiceURL());
- setAttributeConsumingServiceIndex(m_AttributeConsumingServiceIndex);
- setProviderName(src.getProviderName());
-
- if (src.getSubject())
- setSubject(src.getSubject()->cloneSubject());
- if (src.getNameIDPolicy())
- setNameIDPolicy(src.getNameIDPolicy()->cloneNameIDPolicy());
- if (src.getConditions())
- setConditions(src.getConditions()->cloneConditions());
- if (src.getRequestedAuthnContext())
- setRequestedAuthnContext(src.getRequestedAuthnContext()->cloneRequestedAuthnContext());
- if (src.getScoping())
- setScoping(src.getScoping()->cloneScoping());
+ void _clone(const AuthnRequestImpl& src) {
+ RequestAbstractTypeImpl::_clone(src);
+ IMPL_CLONE_BOOLEAN_ATTRIB(ForceAuthn);
+ IMPL_CLONE_BOOLEAN_ATTRIB(IsPassive);
+ IMPL_CLONE_ATTRIB(ProtocolBinding);
+ IMPL_CLONE_INTEGER_ATTRIB(AssertionConsumerServiceIndex);
+ IMPL_CLONE_ATTRIB(AssertionConsumerServiceURL);
+ IMPL_CLONE_INTEGER_ATTRIB(AttributeConsumingServiceIndex);
+ IMPL_CLONE_ATTRIB(ProviderName);
+ IMPL_CLONE_TYPED_CHILD(Subject);
+ IMPL_CLONE_TYPED_CHILD(NameIDPolicy);
+ IMPL_CLONE_TYPED_CHILD(Conditions);
+ IMPL_CLONE_TYPED_CHILD(RequestedAuthnContext);
+ IMPL_CLONE_TYPED_CHILD(Scoping);
}
- IMPL_XMLOBJECT_CLONE(AuthnRequest);
- RequestAbstractType* cloneRequestAbstractType() const {
- return cloneAuthnRequest();
- }
+ IMPL_XMLOBJECT_CLONE_EX(AuthnRequest);
IMPL_BOOLEAN_ATTRIB(ForceAuthn);
IMPL_BOOLEAN_ATTRIB(IsPassive);
protected:
void marshallAttributes(DOMElement* domElement) const {
- MARSHALL_BOOLEAN_ATTRIB(ForceAuthn,FORCEAUTHN,NULL);
- MARSHALL_BOOLEAN_ATTRIB(IsPassive,ISPASSIVE,NULL);
- MARSHALL_STRING_ATTRIB(ProtocolBinding,PROTOCOLBINDING,NULL);
- MARSHALL_INTEGER_ATTRIB(AssertionConsumerServiceIndex,ASSERTIONCONSUMERSERVICEINDEX,NULL);
- MARSHALL_STRING_ATTRIB(AssertionConsumerServiceURL,ASSERTIONCONSUMERSERVICEURL,NULL);
- MARSHALL_INTEGER_ATTRIB(AttributeConsumingServiceIndex,ATTRIBUTECONSUMINGSERVICEINDEX,NULL);
- MARSHALL_STRING_ATTRIB(ProviderName,PROVIDERNAME,NULL);
+ MARSHALL_BOOLEAN_ATTRIB(ForceAuthn,FORCEAUTHN,nullptr);
+ MARSHALL_BOOLEAN_ATTRIB(IsPassive,ISPASSIVE,nullptr);
+ MARSHALL_STRING_ATTRIB(ProtocolBinding,PROTOCOLBINDING,nullptr);
+ MARSHALL_INTEGER_ATTRIB(AssertionConsumerServiceIndex,ASSERTIONCONSUMERSERVICEINDEX,nullptr);
+ MARSHALL_STRING_ATTRIB(AssertionConsumerServiceURL,ASSERTIONCONSUMERSERVICEURL,nullptr);
+ MARSHALL_INTEGER_ATTRIB(AttributeConsumingServiceIndex,ATTRIBUTECONSUMINGSERVICEINDEX,nullptr);
+ MARSHALL_STRING_ATTRIB(ProviderName,PROVIDERNAME,nullptr);
RequestAbstractTypeImpl::marshallAttributes(domElement);
}
void processChildElement(XMLObject* childXMLObject, const DOMElement* root) {
- PROC_TYPED_FOREIGN_CHILD(Subject,saml2,SAMLConstants::SAML20_NS,false);
- PROC_TYPED_CHILD(NameIDPolicy,SAMLConstants::SAML20P_NS,false);
- PROC_TYPED_FOREIGN_CHILD(Conditions,saml2,SAMLConstants::SAML20_NS,false);
- PROC_TYPED_CHILD(RequestedAuthnContext,SAMLConstants::SAML20P_NS,false);
- PROC_TYPED_CHILD(Scoping,SAMLConstants::SAML20P_NS,false);
+ PROC_TYPED_FOREIGN_CHILD(Subject,saml2,SAML20_NS,false);
+ PROC_TYPED_CHILD(NameIDPolicy,SAML20P_NS,false);
+ PROC_TYPED_FOREIGN_CHILD(Conditions,saml2,SAML20_NS,false);
+ PROC_TYPED_CHILD(RequestedAuthnContext,SAML20P_NS,false);
+ PROC_TYPED_CHILD(Scoping,SAML20P_NS,false);
RequestAbstractTypeImpl::processChildElement(childXMLObject,root);
}
void processAttribute(const DOMAttr* attribute) {
- PROC_BOOLEAN_ATTRIB(ForceAuthn,FORCEAUTHN,NULL);
- PROC_BOOLEAN_ATTRIB(IsPassive,ISPASSIVE,NULL);
- PROC_STRING_ATTRIB(ProtocolBinding,PROTOCOLBINDING,NULL);
- PROC_INTEGER_ATTRIB(AssertionConsumerServiceIndex,ASSERTIONCONSUMERSERVICEINDEX,NULL);
- PROC_STRING_ATTRIB(AssertionConsumerServiceURL,ASSERTIONCONSUMERSERVICEURL,NULL);
- PROC_INTEGER_ATTRIB(AttributeConsumingServiceIndex,ATTRIBUTECONSUMINGSERVICEINDEX,NULL);
- PROC_STRING_ATTRIB(ProviderName,PROVIDERNAME,NULL);
+ PROC_BOOLEAN_ATTRIB(ForceAuthn,FORCEAUTHN,nullptr);
+ PROC_BOOLEAN_ATTRIB(IsPassive,ISPASSIVE,nullptr);
+ PROC_STRING_ATTRIB(ProtocolBinding,PROTOCOLBINDING,nullptr);
+ PROC_INTEGER_ATTRIB(AssertionConsumerServiceIndex,ASSERTIONCONSUMERSERVICEINDEX,nullptr);
+ PROC_STRING_ATTRIB(AssertionConsumerServiceURL,ASSERTIONCONSUMERSERVICEURL,nullptr);
+ PROC_INTEGER_ATTRIB(AttributeConsumingServiceIndex,ATTRIBUTECONSUMINGSERVICEINDEX,nullptr);
+ PROC_STRING_ATTRIB(ProviderName,PROVIDERNAME,nullptr);
RequestAbstractTypeImpl::processAttribute(attribute);
}
};
public AbstractXMLObjectUnmarshaller
{
void init() {
- m_ID=NULL;
- m_InResponseTo=NULL;
- m_Version=NULL;
- m_IssueInstant=NULL;
- m_Destination=NULL;
- m_Consent=NULL;
- m_Issuer=NULL;
- m_Signature=NULL;
- m_Extensions=NULL;
- m_Status=NULL;
- m_children.push_back(NULL);
- m_children.push_back(NULL);
- m_children.push_back(NULL);
- m_children.push_back(NULL);
+ m_ID=nullptr;
+ m_InResponseTo=nullptr;
+ m_Version=nullptr;
+ m_IssueInstant=nullptr;
+ m_Destination=nullptr;
+ m_Consent=nullptr;
+ m_Issuer=nullptr;
+ m_Signature=nullptr;
+ m_Extensions=nullptr;
+ m_Status=nullptr;
+ m_children.push_back(nullptr);
+ m_children.push_back(nullptr);
+ m_children.push_back(nullptr);
+ m_children.push_back(nullptr);
m_pos_Issuer=m_children.begin();
m_pos_Signature=m_pos_Issuer;
++m_pos_Signature;
m_pos_Status=m_pos_Extensions;
++m_pos_Status;
}
+
protected:
StatusResponseTypeImpl() {
init();
}
+
public:
virtual ~StatusResponseTypeImpl() {
XMLString::release(&m_ID);
delete m_IssueInstant;
}
- StatusResponseTypeImpl(const XMLCh* nsURI, const XMLCh* localName, const XMLCh* prefix, const QName* schemaType)
- : AbstractXMLObject(nsURI, localName, prefix, schemaType)
- {
+ StatusResponseTypeImpl(const XMLCh* nsURI, const XMLCh* localName, const XMLCh* prefix, const xmltooling::QName* schemaType)
+ : AbstractXMLObject(nsURI, localName, prefix, schemaType) {
init();
}
StatusResponseTypeImpl(const StatusResponseTypeImpl& src)
: AbstractXMLObject(src), AbstractComplexElement(src), AbstractDOMCachingXMLObject(src) {
init();
- setID(src.getID());
- setInResponseTo(src.getInResponseTo());
- setVersion(src.getVersion());
- setIssueInstant(src.getIssueInstant());
- setDestination(src.getDestination());
- setConsent(src.getConsent());
- if (src.getIssuer())
- setIssuer(src.getIssuer()->cloneIssuer());
- if (src.getSignature())
- setSignature(src.getSignature()->cloneSignature());
- if (src.getExtensions())
- setExtensions(src.getExtensions()->cloneExtensions());
- if (src.getStatus())
- setStatus(src.getStatus()->cloneStatus());
+ }
+
+ void _clone(const StatusResponseTypeImpl& src) {
+ IMPL_CLONE_ATTRIB(ID);
+ IMPL_CLONE_ATTRIB(InResponseTo);
+ IMPL_CLONE_ATTRIB(Version);
+ IMPL_CLONE_ATTRIB(IssueInstant);
+ IMPL_CLONE_ATTRIB(Destination);
+ IMPL_CLONE_ATTRIB(Consent);
+ IMPL_CLONE_TYPED_CHILD(Issuer);
+ IMPL_CLONE_TYPED_CHILD(Signature);
+ IMPL_CLONE_TYPED_CHILD(Extensions);
+ IMPL_CLONE_TYPED_CHILD(Status);
}
//IMPL_TYPED_CHILD(Signature);
// Need customized setter.
protected:
- Signature* m_Signature;
+ xmlsignature::Signature* m_Signature;
list<XMLObject*>::iterator m_pos_Signature;
public:
- Signature* getSignature() const {
+ xmlsignature::Signature* getSignature() const {
return m_Signature;
}
- void setSignature(Signature* sig) {
+ void setSignature(xmlsignature::Signature* sig) {
prepareForAssignment(m_Signature,sig);
*m_pos_Signature=m_Signature=sig;
// Sync content reference back up.
m_Signature->setContentReference(new opensaml::ContentReference(*this));
}
+ StatusResponseType* cloneStatusResponseType() const {
+ return dynamic_cast<StatusResponseType*>(clone());
+ }
+
IMPL_STRING_ATTRIB(Version);
- IMPL_ID_ATTRIB(ID);
+ IMPL_ID_ATTRIB_EX(ID,ID,nullptr);
IMPL_STRING_ATTRIB(InResponseTo);
IMPL_DATETIME_ATTRIB(IssueInstant,0);
IMPL_STRING_ATTRIB(Destination);
IMPL_TYPED_CHILD(Status);
protected:
+ void prepareForMarshalling() const {
+ if (m_Signature)
+ declareNonVisibleNamespaces();
+ }
+
void marshallAttributes(DOMElement* domElement) const {
if (!m_Version)
const_cast<StatusResponseTypeImpl*>(this)->m_Version=XMLString::transcode("2.0");
- MARSHALL_STRING_ATTRIB(Version,VER,NULL);
+ MARSHALL_STRING_ATTRIB(Version,VER,nullptr);
if (!m_ID)
const_cast<StatusResponseTypeImpl*>(this)->m_ID=SAMLConfig::getConfig().generateIdentifier();
- MARSHALL_ID_ATTRIB(ID,ID,NULL);
+ MARSHALL_ID_ATTRIB(ID,ID,nullptr);
if (!m_IssueInstant) {
- const_cast<StatusResponseTypeImpl*>(this)->m_IssueInstantEpoch=time(NULL);
+ const_cast<StatusResponseTypeImpl*>(this)->m_IssueInstantEpoch=time(nullptr);
const_cast<StatusResponseTypeImpl*>(this)->m_IssueInstant=new DateTime(m_IssueInstantEpoch);
}
- MARSHALL_DATETIME_ATTRIB(IssueInstant,ISSUEINSTANT,NULL);
- MARSHALL_STRING_ATTRIB(Destination,DESTINATION,NULL);
- MARSHALL_STRING_ATTRIB(Consent,CONSENT,NULL);
- MARSHALL_STRING_ATTRIB(InResponseTo,INRESPONSETO,NULL);
+ MARSHALL_DATETIME_ATTRIB(IssueInstant,ISSUEINSTANT,nullptr);
+ MARSHALL_STRING_ATTRIB(Destination,DESTINATION,nullptr);
+ MARSHALL_STRING_ATTRIB(Consent,CONSENT,nullptr);
+ MARSHALL_STRING_ATTRIB(InResponseTo,INRESPONSETO,nullptr);
}
void processChildElement(XMLObject* childXMLObject, const DOMElement* root) {
- PROC_TYPED_FOREIGN_CHILD(Issuer,saml2,SAMLConstants::SAML20_NS,false);
- PROC_TYPED_FOREIGN_CHILD(Signature,xmlsignature,XMLConstants::XMLSIG_NS,false);
- PROC_TYPED_CHILD(Extensions,SAMLConstants::SAML20P_NS,false);
- PROC_TYPED_CHILD(Status,SAMLConstants::SAML20P_NS,false);
+ PROC_TYPED_FOREIGN_CHILD(Issuer,saml2,SAML20_NS,false);
+ PROC_TYPED_FOREIGN_CHILD(Signature,xmlsignature,XMLSIG_NS,false);
+ PROC_TYPED_CHILD(Extensions,SAML20P_NS,false);
+ PROC_TYPED_CHILD(Status,SAML20P_NS,false);
AbstractXMLObjectUnmarshaller::processChildElement(childXMLObject,root);
}
void processAttribute(const DOMAttr* attribute) {
- PROC_ID_ATTRIB(ID,ID,NULL);
- PROC_STRING_ATTRIB(Version,VER,NULL);
- PROC_STRING_ATTRIB(InResponseTo,INRESPONSETO,NULL);
- PROC_DATETIME_ATTRIB(IssueInstant,ISSUEINSTANT,NULL);
- PROC_STRING_ATTRIB(Destination,DESTINATION,NULL);
- PROC_STRING_ATTRIB(Consent,CONSENT,NULL);
+ PROC_ID_ATTRIB(ID,ID,nullptr);
+ PROC_STRING_ATTRIB(Version,VER,nullptr);
+ PROC_STRING_ATTRIB(InResponseTo,INRESPONSETO,nullptr);
+ PROC_DATETIME_ATTRIB(IssueInstant,ISSUEINSTANT,nullptr);
+ PROC_STRING_ATTRIB(Destination,DESTINATION,nullptr);
+ PROC_STRING_ATTRIB(Consent,CONSENT,nullptr);
AbstractXMLObjectUnmarshaller::processAttribute(attribute);
}
};
class SAML_DLLLOCAL ResponseImpl : public virtual Response, public StatusResponseTypeImpl
{
public:
- virtual ~ResponseImpl() { }
+ virtual ~ResponseImpl() {}
- ResponseImpl(const XMLCh* nsURI, const XMLCh* localName, const XMLCh* prefix, const QName* schemaType)
- : AbstractXMLObject(nsURI, localName, prefix, schemaType) { }
+ ResponseImpl(const XMLCh* nsURI, const XMLCh* localName, const XMLCh* prefix, const xmltooling::QName* schemaType)
+ : AbstractXMLObject(nsURI, localName, prefix, schemaType) {}
- ResponseImpl(const ResponseImpl& src) : AbstractXMLObject(src), StatusResponseTypeImpl(src) {
- for (list<XMLObject*>::const_iterator i=src.m_children.begin(); i!=src.m_children.end(); i++) {
- if (*i) {
- Assertion* assertion=dynamic_cast<Assertion*>(*i);
- if (assertion) {
- getAssertions().push_back(assertion->cloneAssertion());
- continue;
- }
- EncryptedAssertion* encAssertion=dynamic_cast<EncryptedAssertion*>(*i);
- if (encAssertion) {
- getEncryptedAssertions().push_back(encAssertion->cloneEncryptedAssertion());
- continue;
- }
- }
- }
+ ResponseImpl(const ResponseImpl& src) : AbstractXMLObject(src), StatusResponseTypeImpl(src) {}
+ void _clone(const ResponseImpl& src) {
+ StatusResponseTypeImpl::_clone(src);
+ IMPL_CLONE_CHILDBAG_BEGIN;
+ IMPL_CLONE_TYPED_FOREIGN_CHILD_IN_BAG(Assertion,saml2);
+ IMPL_CLONE_TYPED_FOREIGN_CHILD_IN_BAG(EncryptedAssertion,saml2);
+ IMPL_CLONE_CHILDBAG_END;
}
- IMPL_XMLOBJECT_CLONE(Response);
- StatusResponseType* cloneStatusResponseType() const {
- return cloneResponse();
- }
-
+ IMPL_XMLOBJECT_CLONE_EX(Response);
IMPL_TYPED_FOREIGN_CHILDREN(Assertion,saml2,m_children.end());
IMPL_TYPED_FOREIGN_CHILDREN(EncryptedAssertion,saml2,m_children.end());
protected:
void processChildElement(XMLObject* childXMLObject, const DOMElement* root) {
- PROC_TYPED_FOREIGN_CHILDREN(Assertion,saml2,SAMLConstants::SAML20_NS,false);
- PROC_TYPED_FOREIGN_CHILDREN(EncryptedAssertion,saml2,SAMLConstants::SAML20_NS,false);
+ PROC_TYPED_FOREIGN_CHILDREN(Assertion,saml2,SAML20_NS,false);
+ PROC_TYPED_FOREIGN_CHILDREN(EncryptedAssertion,saml2,SAML20_NS,false);
StatusResponseTypeImpl::processChildElement(childXMLObject,root);
}
};
class SAML_DLLLOCAL ArtifactResolveImpl : public virtual ArtifactResolve, public RequestAbstractTypeImpl
{
void init() {
- m_Artifact=NULL;
- m_children.push_back(NULL);
+ m_Artifact=nullptr;
+ m_children.push_back(nullptr);
m_pos_Artifact=m_pos_Extensions;
++m_pos_Artifact;
}
+
public:
- virtual ~ArtifactResolveImpl() { }
+ virtual ~ArtifactResolveImpl() {}
- ArtifactResolveImpl(const XMLCh* nsURI, const XMLCh* localName, const XMLCh* prefix, const QName* schemaType)
- : AbstractXMLObject(nsURI, localName, prefix, schemaType)
- {
+ ArtifactResolveImpl(const XMLCh* nsURI, const XMLCh* localName, const XMLCh* prefix, const xmltooling::QName* schemaType)
+ : AbstractXMLObject(nsURI, localName, prefix, schemaType) {
init();
}
ArtifactResolveImpl(const ArtifactResolveImpl& src) : AbstractXMLObject(src), RequestAbstractTypeImpl(src) {
init();
- if(src.getArtifact())
- setArtifact(src.getArtifact()->cloneArtifact());
- }
-
- IMPL_XMLOBJECT_CLONE(ArtifactResolve);
- RequestAbstractType* cloneRequestAbstractType() const {
- return cloneArtifactResolve();
}
+ void _clone(const ArtifactResolveImpl& src) {
+ RequestAbstractTypeImpl::_clone(src);
+ IMPL_CLONE_TYPED_CHILD(Artifact);
+ }
+
+ IMPL_XMLOBJECT_CLONE_EX(ArtifactResolve);
IMPL_TYPED_CHILD(Artifact);
protected:
void processChildElement(XMLObject* childXMLObject, const DOMElement* root) {
- PROC_TYPED_CHILD(Artifact,SAMLConstants::SAML20P_NS,false);
+ PROC_TYPED_CHILD(Artifact,SAML20P_NS,false);
RequestAbstractTypeImpl::processChildElement(childXMLObject,root);
}
};
class SAML_DLLLOCAL ArtifactResponseImpl : public virtual ArtifactResponse, public StatusResponseTypeImpl
{
void init() {
- m_Payload=NULL;
- m_children.push_back(NULL);
+ m_Payload=nullptr;
+ m_children.push_back(nullptr);
m_pos_Payload=m_pos_Status;
++m_pos_Payload;
}
+
public:
- virtual ~ArtifactResponseImpl() { }
+ virtual ~ArtifactResponseImpl() {}
- ArtifactResponseImpl(const XMLCh* nsURI, const XMLCh* localName, const XMLCh* prefix, const QName* schemaType)
- : AbstractXMLObject(nsURI, localName, prefix, schemaType)
- {
+ ArtifactResponseImpl(const XMLCh* nsURI, const XMLCh* localName, const XMLCh* prefix, const xmltooling::QName* schemaType)
+ : AbstractXMLObject(nsURI, localName, prefix, schemaType) {
init();
}
ArtifactResponseImpl(const ArtifactResponseImpl& src) : AbstractXMLObject(src), StatusResponseTypeImpl(src) {
init();
- if (src.getPayload())
- setPayload(getPayload()->clone());
+ }
+ void _clone(const ArtifactResponseImpl& src) {
+ StatusResponseTypeImpl::_clone(src);
+ IMPL_CLONE_XMLOBJECT_CHILD(Payload);
}
- IMPL_XMLOBJECT_CLONE(ArtifactResponse);
- StatusResponseType* cloneStatusResponseType() const {
- return cloneArtifactResponse();
- }
-
+ IMPL_XMLOBJECT_CLONE_EX(ArtifactResponse);
IMPL_XMLOBJECT_CHILD(Payload);
protected:
void processChildElement(XMLObject* childXMLObject, const DOMElement* root) {
// These are valid elements for the parent StatusResponseType, so don't process these.
// If not one of these, then it must be the payload.
- if (
- ! XMLHelper::isNodeNamed(root,SAMLConstants::SAML20_NS,saml2::Issuer::LOCAL_NAME) &&
- ! XMLHelper::isNodeNamed(root,XMLConstants::XMLSIG_NS,xmlsignature::Signature::LOCAL_NAME) &&
- ! XMLHelper::isNodeNamed(root,SAMLConstants::SAML20P_NS,saml2p::Extensions::LOCAL_NAME) &&
- ! XMLHelper::isNodeNamed(root,SAMLConstants::SAML20P_NS,saml2p::Status::LOCAL_NAME)
- )
- {
+ if (!XMLHelper::isNodeNamed(root,SAML20_NS,saml2::Issuer::LOCAL_NAME) &&
+ !XMLHelper::isNodeNamed(root,XMLSIG_NS,xmlsignature::Signature::LOCAL_NAME) &&
+ !XMLHelper::isNodeNamed(root,SAML20P_NS,saml2p::Extensions::LOCAL_NAME) &&
+ !XMLHelper::isNodeNamed(root,SAML20P_NS,saml2p::Status::LOCAL_NAME)) {
setPayload(childXMLObject);
return;
}
public AbstractXMLObjectUnmarshaller
{
void init() {
- m_EncryptedData=NULL;
- m_children.push_back(NULL);
+ m_EncryptedData=nullptr;
+ m_children.push_back(nullptr);
m_pos_EncryptedData=m_children.begin();
}
protected:
- NewEncryptedIDImpl()
- {
+ NewEncryptedIDImpl() {
init();
}
public:
virtual ~NewEncryptedIDImpl() {}
- NewEncryptedIDImpl(const XMLCh* nsURI, const XMLCh* localName, const XMLCh* prefix, const QName* schemaType)
- : AbstractXMLObject(nsURI, localName, prefix, schemaType)
- {
+ NewEncryptedIDImpl(const XMLCh* nsURI, const XMLCh* localName, const XMLCh* prefix, const xmltooling::QName* schemaType)
+ : AbstractXMLObject(nsURI, localName, prefix, schemaType) {
init();
}
NewEncryptedIDImpl(const NewEncryptedIDImpl& src)
: AbstractXMLObject(src), AbstractComplexElement(src), AbstractDOMCachingXMLObject(src) {
init();
- if (src.getEncryptedData())
- setEncryptedData(src.getEncryptedData()->cloneEncryptedData());
- VectorOf(xmlencryption::EncryptedKey) v=getEncryptedKeys();
- for (vector<xmlencryption::EncryptedKey*>::const_iterator i=src.m_EncryptedKeys.begin(); i!=src.m_EncryptedKeys.end(); i++) {
- if (*i) {
- v.push_back((*i)->cloneEncryptedKey());
- }
- }
+ IMPL_CLONE_TYPED_CHILD(EncryptedData);
+ IMPL_CLONE_TYPED_FOREIGN_CHILDREN(EncryptedKey,xmlencryption);
}
- XMLObject* decrypt(KeyResolver* KEKresolver, const XMLCh* recipient) const
- {
- if (!m_EncryptedData)
- throw DecryptionException("No encrypted data present.");
- Decrypter decrypter(KEKresolver, new EncryptedKeyResolver(*this, recipient));
- DOMDocumentFragment* frag = decrypter.decryptData(m_EncryptedData);
- if (frag->hasChildNodes() && frag->getFirstChild()==frag->getLastChild()) {
- DOMNode* plaintext=frag->getFirstChild();
- if (plaintext->getNodeType()==DOMNode::ELEMENT_NODE) {
- auto_ptr<XMLObject> ret(XMLObjectBuilder::buildOneFromElement(static_cast<DOMElement*>(plaintext)));
- ret->releaseThisAndChildrenDOM();
- return ret.release();
- }
- }
- frag->release();
- throw DecryptionException("Decryption did not result in a single element.");
- }
-
- IMPL_XMLOBJECT_CLONE(NewEncryptedID);
- EncryptedElementType* cloneEncryptedElementType() const {
- return new NewEncryptedIDImpl(*this);
- }
-
+ IMPL_XMLOBJECT_CLONE2(NewEncryptedID,EncryptedElementType);
IMPL_TYPED_FOREIGN_CHILD(EncryptedData,xmlencryption);
IMPL_TYPED_FOREIGN_CHILDREN(EncryptedKey,xmlencryption,m_children.end());
protected:
void processChildElement(XMLObject* childXMLObject, const DOMElement* root) {
- PROC_TYPED_FOREIGN_CHILD(EncryptedData,xmlencryption,XMLConstants::XMLENC_NS,false);
- PROC_TYPED_FOREIGN_CHILDREN(EncryptedKey,xmlencryption,XMLConstants::XMLENC_NS,false);
+ PROC_TYPED_FOREIGN_CHILD(EncryptedData,xmlencryption,XMLENC_NS,false);
+ PROC_TYPED_FOREIGN_CHILDREN(EncryptedKey,xmlencryption,XMLENC_NS,false);
AbstractXMLObjectUnmarshaller::processChildElement(childXMLObject,root);
}
};
public AbstractXMLObjectMarshaller,
public AbstractXMLObjectUnmarshaller
{
- public:
- virtual ~TerminateImpl() { }
+ public:
+ virtual ~TerminateImpl() {}
- TerminateImpl(const XMLCh* nsURI, const XMLCh* localName, const XMLCh* prefix, const QName* schemaType)
- : AbstractXMLObject(nsURI, localName, prefix, schemaType) { }
+ TerminateImpl(const XMLCh* nsURI, const XMLCh* localName, const XMLCh* prefix, const xmltooling::QName* schemaType)
+ : AbstractXMLObject(nsURI, localName, prefix, schemaType) {}
- TerminateImpl(const TerminateImpl& src)
- : AbstractXMLObject(src), AbstractSimpleElement(src), AbstractDOMCachingXMLObject(src) {
- }
+ TerminateImpl(const TerminateImpl& src)
+ : AbstractXMLObject(src), AbstractSimpleElement(src), AbstractDOMCachingXMLObject(src) {}
- IMPL_XMLOBJECT_CLONE(Terminate);
+ IMPL_XMLOBJECT_CLONE(Terminate);
- protected:
- // has no attributes or children
+ protected:
+ // has no attributes or children
};
class SAML_DLLLOCAL ManageNameIDRequestImpl : public virtual ManageNameIDRequest, public RequestAbstractTypeImpl
{
void init() {
- m_NameID=NULL;
- m_EncryptedID=NULL;
- m_NewID=NULL;
- m_NewEncryptedID=NULL;
- m_Terminate=NULL;
- m_children.push_back(NULL);
- m_children.push_back(NULL);
- m_children.push_back(NULL);
- m_children.push_back(NULL);
- m_children.push_back(NULL);
+ m_NameID=nullptr;
+ m_EncryptedID=nullptr;
+ m_NewID=nullptr;
+ m_NewEncryptedID=nullptr;
+ m_Terminate=nullptr;
+ m_children.push_back(nullptr);
+ m_children.push_back(nullptr);
+ m_children.push_back(nullptr);
+ m_children.push_back(nullptr);
+ m_children.push_back(nullptr);
m_pos_NameID=m_pos_Extensions;
++m_pos_NameID;
m_pos_EncryptedID=m_pos_NameID;
++m_pos_NewEncryptedID;
m_pos_Terminate=m_pos_NewEncryptedID;
++m_pos_Terminate;
-
}
+
public:
- virtual ~ManageNameIDRequestImpl() { }
+ virtual ~ManageNameIDRequestImpl() {}
- ManageNameIDRequestImpl(const XMLCh* nsURI, const XMLCh* localName, const XMLCh* prefix, const QName* schemaType)
- : AbstractXMLObject(nsURI, localName, prefix, schemaType)
- {
+ ManageNameIDRequestImpl(const XMLCh* nsURI, const XMLCh* localName, const XMLCh* prefix, const xmltooling::QName* schemaType)
+ : AbstractXMLObject(nsURI, localName, prefix, schemaType) {
init();
}
ManageNameIDRequestImpl(const ManageNameIDRequestImpl& src) : AbstractXMLObject(src), RequestAbstractTypeImpl(src) {
init();
+ }
- if (src.getNameID())
- setNameID(src.getNameID()->cloneNameID());
- if (src.getEncryptedID())
- setEncryptedID(src.getEncryptedID()->cloneEncryptedID());
- if (src.getNewID())
- setNewID(src.getNewID()->cloneNewID());
- if (src.getNewEncryptedID())
- setNewEncryptedID(src.getNewEncryptedID()->cloneNewEncryptedID());
- if (src.getTerminate())
- setTerminate(src.getTerminate()->cloneTerminate());
-
+ void _clone(const ManageNameIDRequestImpl& src) {
+ RequestAbstractTypeImpl::_clone(src);
+ IMPL_CLONE_TYPED_CHILD(NameID);
+ IMPL_CLONE_TYPED_CHILD(EncryptedID);
+ IMPL_CLONE_TYPED_CHILD(NewID);
+ IMPL_CLONE_TYPED_CHILD(NewEncryptedID);
+ IMPL_CLONE_TYPED_CHILD(Terminate);
}
- IMPL_XMLOBJECT_CLONE(ManageNameIDRequest);
- RequestAbstractType* cloneRequestAbstractType() const {
- return cloneManageNameIDRequest();
- }
-
+ IMPL_XMLOBJECT_CLONE_EX(ManageNameIDRequest);
IMPL_TYPED_FOREIGN_CHILD(NameID,saml2);
IMPL_TYPED_FOREIGN_CHILD(EncryptedID,saml2);
IMPL_TYPED_CHILD(NewID);
protected:
void processChildElement(XMLObject* childXMLObject, const DOMElement* root) {
- PROC_TYPED_FOREIGN_CHILD(NameID,saml2,SAMLConstants::SAML20_NS,false);
- PROC_TYPED_FOREIGN_CHILD(EncryptedID,saml2,SAMLConstants::SAML20_NS,false);
- PROC_TYPED_CHILD(NewID,SAMLConstants::SAML20P_NS,false);
- PROC_TYPED_CHILD(NewEncryptedID,SAMLConstants::SAML20P_NS,false);
- PROC_TYPED_CHILD(Terminate,SAMLConstants::SAML20P_NS,false);
+ PROC_TYPED_FOREIGN_CHILD(NameID,saml2,SAML20_NS,false);
+ PROC_TYPED_FOREIGN_CHILD(EncryptedID,saml2,SAML20_NS,false);
+ PROC_TYPED_CHILD(NewID,SAML20P_NS,false);
+ PROC_TYPED_CHILD(NewEncryptedID,SAML20P_NS,false);
+ PROC_TYPED_CHILD(Terminate,SAML20P_NS,false);
RequestAbstractTypeImpl::processChildElement(childXMLObject,root);
}
};
class SAML_DLLLOCAL ManageNameIDResponseImpl : public virtual ManageNameIDResponse, public StatusResponseTypeImpl
{
public:
- virtual ~ManageNameIDResponseImpl() { }
+ virtual ~ManageNameIDResponseImpl() {}
- ManageNameIDResponseImpl(const XMLCh* nsURI, const XMLCh* localName, const XMLCh* prefix, const QName* schemaType)
- : AbstractXMLObject(nsURI, localName, prefix, schemaType) { }
+ ManageNameIDResponseImpl(const XMLCh* nsURI, const XMLCh* localName, const XMLCh* prefix, const xmltooling::QName* schemaType)
+ : AbstractXMLObject(nsURI, localName, prefix, schemaType) {}
- ManageNameIDResponseImpl(const ManageNameIDResponseImpl& src) : AbstractXMLObject(src), StatusResponseTypeImpl(src) {
- }
+ ManageNameIDResponseImpl(const ManageNameIDResponseImpl& src) : AbstractXMLObject(src), StatusResponseTypeImpl(src) {}
- IMPL_XMLOBJECT_CLONE(ManageNameIDResponse);
- StatusResponseType* cloneStatusResponseType() const {
- return cloneManageNameIDResponse();
- }
+ IMPL_XMLOBJECT_CLONE_EX(ManageNameIDResponse);
};
class SAML_DLLLOCAL LogoutRequestImpl : public virtual LogoutRequest, public RequestAbstractTypeImpl
{
void init() {
- m_Reason=NULL;
- m_NotOnOrAfter=NULL;
-
- m_BaseID=NULL;
- m_NameID=NULL;
- m_EncryptedID=NULL;
- m_children.push_back(NULL);
- m_children.push_back(NULL);
- m_children.push_back(NULL);
+ m_Reason=nullptr;
+ m_NotOnOrAfter=nullptr;
+ m_BaseID=nullptr;
+ m_NameID=nullptr;
+ m_EncryptedID=nullptr;
+ m_children.push_back(nullptr);
+ m_children.push_back(nullptr);
+ m_children.push_back(nullptr);
m_pos_BaseID=m_pos_Extensions;
++m_pos_BaseID;
m_pos_NameID=m_pos_BaseID;
++m_pos_NameID;
m_pos_EncryptedID=m_pos_NameID;
++m_pos_EncryptedID;
-
}
+
public:
virtual ~LogoutRequestImpl() {
XMLString::release(&m_Reason);
delete m_NotOnOrAfter;
}
- LogoutRequestImpl(const XMLCh* nsURI, const XMLCh* localName, const XMLCh* prefix, const QName* schemaType)
- : AbstractXMLObject(nsURI, localName, prefix, schemaType)
- {
+ LogoutRequestImpl(const XMLCh* nsURI, const XMLCh* localName, const XMLCh* prefix, const xmltooling::QName* schemaType)
+ : AbstractXMLObject(nsURI, localName, prefix, schemaType) {
init();
}
LogoutRequestImpl(const LogoutRequestImpl& src) : AbstractXMLObject(src), RequestAbstractTypeImpl(src) {
init();
+ }
- setReason(src.getReason());
- setNotOnOrAfter(src.getNotOnOrAfter());
-
- if (src.getBaseID())
- setBaseID(src.getBaseID()->cloneBaseID());
- if (src.getNameID())
- setNameID(src.getNameID()->cloneNameID());
- if (src.getEncryptedID())
- setEncryptedID(src.getEncryptedID()->cloneEncryptedID());
-
- for (list<XMLObject*>::const_iterator i=src.m_children.begin(); i!=src.m_children.end(); i++) {
- if (*i) {
- SessionIndex* si = dynamic_cast<SessionIndex*>(*i);
- if (si) {
- getSessionIndexs().push_back(si->cloneSessionIndex());
- continue;
- }
- }
- }
+ void _clone(const LogoutRequestImpl& src) {
+ RequestAbstractTypeImpl::_clone(src);
+ IMPL_CLONE_ATTRIB(Reason);
+ IMPL_CLONE_ATTRIB(NotOnOrAfter);
+ IMPL_CLONE_TYPED_CHILD(BaseID);
+ IMPL_CLONE_TYPED_CHILD(NameID);
+ IMPL_CLONE_TYPED_CHILD(EncryptedID);
+ IMPL_CLONE_TYPED_CHILDREN(SessionIndex);
}
- IMPL_XMLOBJECT_CLONE(LogoutRequest);
- RequestAbstractType* cloneRequestAbstractType() const {
- return cloneLogoutRequest();
- }
-
+ IMPL_XMLOBJECT_CLONE_EX(LogoutRequest);
IMPL_STRING_ATTRIB(Reason);
IMPL_DATETIME_ATTRIB(NotOnOrAfter,SAMLTIME_MAX);
IMPL_TYPED_FOREIGN_CHILD(BaseID,saml2);
protected:
void marshallAttributes(DOMElement* domElement) const {
- MARSHALL_STRING_ATTRIB(Reason,REASON,NULL);
- MARSHALL_DATETIME_ATTRIB(NotOnOrAfter,NOTONORAFTER,NULL);
+ MARSHALL_STRING_ATTRIB(Reason,REASON,nullptr);
+ MARSHALL_DATETIME_ATTRIB(NotOnOrAfter,NOTONORAFTER,nullptr);
RequestAbstractTypeImpl::marshallAttributes(domElement);
}
void processChildElement(XMLObject* childXMLObject, const DOMElement* root) {
- PROC_TYPED_FOREIGN_CHILD(BaseID,saml2,SAMLConstants::SAML20_NS,false);
- PROC_TYPED_FOREIGN_CHILD(NameID,saml2,SAMLConstants::SAML20_NS,false);
- PROC_TYPED_FOREIGN_CHILD(EncryptedID,saml2,SAMLConstants::SAML20_NS,false);
- PROC_TYPED_CHILDREN(SessionIndex,SAMLConstants::SAML20P_NS,false);
+ PROC_TYPED_FOREIGN_CHILD(BaseID,saml2,SAML20_NS,false);
+ PROC_TYPED_FOREIGN_CHILD(NameID,saml2,SAML20_NS,false);
+ PROC_TYPED_FOREIGN_CHILD(EncryptedID,saml2,SAML20_NS,false);
+ PROC_TYPED_CHILDREN(SessionIndex,SAML20P_NS,false);
RequestAbstractTypeImpl::processChildElement(childXMLObject,root);
}
void processAttribute(const DOMAttr* attribute) {
- PROC_STRING_ATTRIB(Reason,REASON,NULL);
- PROC_DATETIME_ATTRIB(NotOnOrAfter,NOTONORAFTER,NULL);
+ PROC_STRING_ATTRIB(Reason,REASON,nullptr);
+ PROC_DATETIME_ATTRIB(NotOnOrAfter,NOTONORAFTER,nullptr);
RequestAbstractTypeImpl::processAttribute(attribute);
}
};
class SAML_DLLLOCAL LogoutResponseImpl : public virtual LogoutResponse, public StatusResponseTypeImpl
{
public:
- virtual ~LogoutResponseImpl() { }
+ virtual ~LogoutResponseImpl() {}
- LogoutResponseImpl(const XMLCh* nsURI, const XMLCh* localName, const XMLCh* prefix, const QName* schemaType)
- : AbstractXMLObject(nsURI, localName, prefix, schemaType) { }
+ LogoutResponseImpl(const XMLCh* nsURI, const XMLCh* localName, const XMLCh* prefix, const xmltooling::QName* schemaType)
+ : AbstractXMLObject(nsURI, localName, prefix, schemaType) {}
- LogoutResponseImpl(const LogoutResponseImpl& src) : AbstractXMLObject(src), StatusResponseTypeImpl(src) {
- }
+ LogoutResponseImpl(const LogoutResponseImpl& src) : AbstractXMLObject(src), StatusResponseTypeImpl(src) {}
- IMPL_XMLOBJECT_CLONE(LogoutResponse);
- StatusResponseType* cloneStatusResponseType() const {
- return cloneLogoutResponse();
- }
+ IMPL_XMLOBJECT_CLONE_EX(LogoutResponse);
};
class SAML_DLLLOCAL NameIDMappingRequestImpl : public virtual NameIDMappingRequest, public RequestAbstractTypeImpl
{
void init() {
- m_BaseID=NULL;
- m_NameID=NULL;
- m_EncryptedID=NULL;
- m_NameIDPolicy=NULL;
- m_children.push_back(NULL);
- m_children.push_back(NULL);
- m_children.push_back(NULL);
- m_children.push_back(NULL);
+ m_BaseID=nullptr;
+ m_NameID=nullptr;
+ m_EncryptedID=nullptr;
+ m_NameIDPolicy=nullptr;
+ m_children.push_back(nullptr);
+ m_children.push_back(nullptr);
+ m_children.push_back(nullptr);
+ m_children.push_back(nullptr);
m_pos_BaseID=m_pos_Extensions;
++m_pos_BaseID;
m_pos_NameID=m_pos_BaseID;
++m_pos_EncryptedID;
m_pos_NameIDPolicy=m_pos_EncryptedID;
++m_pos_NameIDPolicy;
-
}
+
public:
- virtual ~NameIDMappingRequestImpl() { }
+ virtual ~NameIDMappingRequestImpl() {}
- NameIDMappingRequestImpl(const XMLCh* nsURI, const XMLCh* localName, const XMLCh* prefix, const QName* schemaType)
- : AbstractXMLObject(nsURI, localName, prefix, schemaType)
- {
+ NameIDMappingRequestImpl(const XMLCh* nsURI, const XMLCh* localName, const XMLCh* prefix, const xmltooling::QName* schemaType)
+ : AbstractXMLObject(nsURI, localName, prefix, schemaType) {
init();
}
NameIDMappingRequestImpl(const NameIDMappingRequestImpl& src) : AbstractXMLObject(src), RequestAbstractTypeImpl(src) {
init();
+ }
- if (src.getBaseID())
- setBaseID(src.getBaseID()->cloneBaseID());
- if (src.getNameID())
- setNameID(src.getNameID()->cloneNameID());
- if (src.getEncryptedID())
- setEncryptedID(src.getEncryptedID()->cloneEncryptedID());
- if (src.getNameIDPolicy())
- setNameIDPolicy(src.getNameIDPolicy()->cloneNameIDPolicy());
-
+ void _clone(const NameIDMappingRequestImpl& src) {
+ RequestAbstractTypeImpl::_clone(src);
+ IMPL_CLONE_TYPED_CHILD(BaseID);
+ IMPL_CLONE_TYPED_CHILD(NameID);
+ IMPL_CLONE_TYPED_CHILD(EncryptedID);
+ IMPL_CLONE_TYPED_CHILD(NameIDPolicy);
}
- IMPL_XMLOBJECT_CLONE(NameIDMappingRequest);
- RequestAbstractType* cloneRequestAbstractType() const {
- return cloneNameIDMappingRequest();
- }
-
+ IMPL_XMLOBJECT_CLONE_EX(NameIDMappingRequest);
IMPL_TYPED_FOREIGN_CHILD(BaseID,saml2);
IMPL_TYPED_FOREIGN_CHILD(NameID,saml2);
IMPL_TYPED_FOREIGN_CHILD(EncryptedID,saml2);
protected:
void processChildElement(XMLObject* childXMLObject, const DOMElement* root) {
- PROC_TYPED_FOREIGN_CHILD(BaseID,saml2,SAMLConstants::SAML20_NS,false);
- PROC_TYPED_FOREIGN_CHILD(NameID,saml2,SAMLConstants::SAML20_NS,false);
- PROC_TYPED_FOREIGN_CHILD(EncryptedID,saml2,SAMLConstants::SAML20_NS,false);
- PROC_TYPED_CHILD(NameIDPolicy,SAMLConstants::SAML20P_NS,false);
+ PROC_TYPED_FOREIGN_CHILD(BaseID,saml2,SAML20_NS,false);
+ PROC_TYPED_FOREIGN_CHILD(NameID,saml2,SAML20_NS,false);
+ PROC_TYPED_FOREIGN_CHILD(EncryptedID,saml2,SAML20_NS,false);
+ PROC_TYPED_CHILD(NameIDPolicy,SAML20P_NS,false);
RequestAbstractTypeImpl::processChildElement(childXMLObject,root);
}
};
class SAML_DLLLOCAL NameIDMappingResponseImpl : public virtual NameIDMappingResponse, public StatusResponseTypeImpl
{
void init() {
- m_NameID=NULL;
- m_EncryptedID=NULL;
- m_children.push_back(NULL);
- m_children.push_back(NULL);
+ m_NameID=nullptr;
+ m_EncryptedID=nullptr;
+ m_children.push_back(nullptr);
+ m_children.push_back(nullptr);
m_pos_NameID=m_pos_Status;
++m_pos_NameID;
m_pos_EncryptedID=m_pos_NameID;
++m_pos_EncryptedID;
}
+
public:
- virtual ~NameIDMappingResponseImpl() { }
+ virtual ~NameIDMappingResponseImpl() {}
- NameIDMappingResponseImpl(const XMLCh* nsURI, const XMLCh* localName, const XMLCh* prefix, const QName* schemaType)
- : AbstractXMLObject(nsURI, localName, prefix, schemaType)
- {
+ NameIDMappingResponseImpl(const XMLCh* nsURI, const XMLCh* localName, const XMLCh* prefix, const xmltooling::QName* schemaType)
+ : AbstractXMLObject(nsURI, localName, prefix, schemaType) {
init();
}
NameIDMappingResponseImpl(const NameIDMappingResponseImpl& src) : AbstractXMLObject(src), StatusResponseTypeImpl(src) {
init();
+ }
- if (src.getNameID())
- setNameID(getNameID()->cloneNameID());
- if (src.getEncryptedID())
- setEncryptedID(getEncryptedID()->cloneEncryptedID());
-
+ void _clone(const NameIDMappingResponseImpl& src) {
+ StatusResponseTypeImpl::_clone(src);
+ IMPL_CLONE_TYPED_CHILD(NameID);
+ IMPL_CLONE_TYPED_CHILD(EncryptedID);
}
- IMPL_XMLOBJECT_CLONE(NameIDMappingResponse);
- StatusResponseType* cloneStatusResponseType() const {
- return cloneNameIDMappingResponse();
- }
-
+ IMPL_XMLOBJECT_CLONE_EX(NameIDMappingResponse);
IMPL_TYPED_FOREIGN_CHILD(NameID,saml2);
IMPL_TYPED_FOREIGN_CHILD(EncryptedID,saml2);
protected:
void processChildElement(XMLObject* childXMLObject, const DOMElement* root) {
- PROC_TYPED_FOREIGN_CHILD(NameID,saml2,SAMLConstants::SAML20_NS,false);
- PROC_TYPED_FOREIGN_CHILD(EncryptedID,saml2,SAMLConstants::SAML20_NS,false);
+ PROC_TYPED_FOREIGN_CHILD(NameID,saml2,SAML20_NS,false);
+ PROC_TYPED_FOREIGN_CHILD(EncryptedID,saml2,SAML20_NS,false);
StatusResponseTypeImpl::processChildElement(childXMLObject,root);
}
};
IMPL_XMLOBJECTBUILDER(Terminate);
IMPL_XMLOBJECTBUILDER(RespondTo);
+IMPL_XMLOBJECTBUILDER(Asynchronous);
// Unicode literals
const XMLCh Artifact::LOCAL_NAME[] = UNICODE_LITERAL_8(A,r,t,i,f,a,c,t);
const XMLCh ArtifactResponse::TYPE_NAME[] = UNICODE_LITERAL_20(A,r,t,i,f,a,c,t,R,e,s,p,o,n,s,e,T,y,p,e);
const XMLCh AssertionIDRequest::LOCAL_NAME[] = UNICODE_LITERAL_18(A,s,s,e,r,t,i,o,n,I,D,R,e,q,u,e,s,t);
const XMLCh AssertionIDRequest::TYPE_NAME[] = UNICODE_LITERAL_22(A,s,s,e,r,t,i,o,n,I,D,R,e,q,u,e,s,t,T,y,p,e);
+const XMLCh Asynchronous::LOCAL_NAME[] = UNICODE_LITERAL_12(A,s,y,n,c,h,r,o,n,o,u,s);
+const XMLCh Asynchronous::TYPE_NAME[] = UNICODE_LITERAL_16(A,s,y,n,c,h,r,o,n,o,u,s,T,y,p,e);
const XMLCh AttributeQuery::LOCAL_NAME[] = UNICODE_LITERAL_14(A,t,t,r,i,b,u,t,e,Q,u,e,r,y);
const XMLCh AttributeQuery::TYPE_NAME[] = UNICODE_LITERAL_18(A,t,t,r,i,b,u,t,e,Q,u,e,r,y,T,y,p,e);
const XMLCh AuthnQuery::LOCAL_NAME[] = UNICODE_LITERAL_10(A,u,t,h,n,Q,u,e,r,y);