#include <xmltooling/io/AbstractXMLObjectMarshaller.h>
#include <xmltooling/io/AbstractXMLObjectUnmarshaller.h>
#include <xmltooling/util/XMLHelper.h>
-#include <xmltooling/validation/AbstractValidatingXMLObject.h>
#include <ctime>
#include <xercesc/util/XMLUniDefs.hpp>
//TODO need unit test for this, using objects from another namespace
class SAML_DLLLOCAL ExtensionsImpl : public virtual Extensions,
- public AbstractDOMCachingXMLObject,
- public AbstractElementProxy,
- public AbstractValidatingXMLObject,
- public AbstractXMLObjectMarshaller,
- public AbstractXMLObjectUnmarshaller
+ public AbstractElementProxy,
+ public AbstractDOMCachingXMLObject,
+ public AbstractXMLObjectMarshaller,
+ public AbstractXMLObjectUnmarshaller
{
public:
virtual ~ExtensionsImpl() {}
}
ExtensionsImpl(const ExtensionsImpl& src)
- : AbstractXMLObject(src), AbstractDOMCachingXMLObject(src), AbstractElementProxy(src),
- AbstractValidatingXMLObject(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());
};
class SAML_DLLLOCAL StatusCodeImpl : public virtual StatusCode,
- public AbstractComplexElement,
- public AbstractDOMCachingXMLObject,
- public AbstractValidatingXMLObject,
- public AbstractXMLObjectMarshaller,
- public AbstractXMLObjectUnmarshaller
+ public AbstractComplexElement,
+ public AbstractDOMCachingXMLObject,
+ public AbstractXMLObjectMarshaller,
+ public AbstractXMLObjectUnmarshaller
{
void init() {
m_Value=NULL;
init();
}
- StatusCodeImpl(const StatusCodeImpl& src) : AbstractXMLObject(src),
- AbstractDOMCachingXMLObject(src),
- AbstractValidatingXMLObject(src)
- {
+ StatusCodeImpl(const StatusCodeImpl& src) : AbstractXMLObject(src), AbstractDOMCachingXMLObject(src) {
init();
setValue(src.getValue());
if (src.getStatusCode())
//TODO need unit tests for non-SAML namespace children
class SAML_DLLLOCAL StatusDetailImpl : public virtual StatusDetail,
- public AbstractComplexElement,
- public AbstractDOMCachingXMLObject,
- public AbstractValidatingXMLObject,
- public AbstractXMLObjectMarshaller,
- public AbstractXMLObjectUnmarshaller
+ 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),
- AbstractDOMCachingXMLObject(src),
- AbstractValidatingXMLObject(src)
- {
+ StatusDetailImpl(const StatusDetailImpl& src) : AbstractXMLObject(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) {
class SAML_DLLLOCAL StatusImpl : public virtual Status,
- public AbstractComplexElement,
- public AbstractDOMCachingXMLObject,
- public AbstractValidatingXMLObject,
- public AbstractXMLObjectMarshaller,
- public AbstractXMLObjectUnmarshaller
+ public AbstractComplexElement,
+ public AbstractDOMCachingXMLObject,
+ public AbstractXMLObjectMarshaller,
+ public AbstractXMLObjectUnmarshaller
{
void init() {
m_StatusCode=NULL;
init();
}
- StatusImpl(const StatusImpl& src) : AbstractXMLObject(src),
- AbstractDOMCachingXMLObject(src),
- AbstractValidatingXMLObject(src)
- {
+ StatusImpl(const StatusImpl& src) : AbstractXMLObject(src), AbstractDOMCachingXMLObject(src) {
init();
if (src.getStatusCode())
setStatusCode(src.getStatusCode()->cloneStatusCode());
class SAML_DLLLOCAL RequestImpl : public virtual Request,
- public AbstractComplexElement,
- public AbstractDOMCachingXMLObject,
- public AbstractValidatingXMLObject,
- public AbstractXMLObjectMarshaller,
- public AbstractXMLObjectUnmarshaller
+ public AbstractComplexElement,
+ public AbstractDOMCachingXMLObject,
+ public AbstractXMLObjectMarshaller,
+ public AbstractXMLObjectUnmarshaller
{
void init() {
m_ID=NULL;
init();
}
- RequestImpl(const RequestImpl& src) : AbstractXMLObject(src),
- AbstractDOMCachingXMLObject(src),
- AbstractValidatingXMLObject(src)
- {
+ RequestImpl(const RequestImpl& src) : AbstractXMLObject(src), AbstractDOMCachingXMLObject(src) {
init();
setID(src.getID());
setVersion(src.getVersion());
IMPL_XMLOBJECT_CLONE(Request);
IMPL_STRING_ATTRIB(Version);
IMPL_STRING_ATTRIB(ID);
- IMPL_DATETIME_ATTRIB(IssueInstant);
+ IMPL_DATETIME_ATTRIB(IssueInstant,0);
IMPL_STRING_ATTRIB(Destination);
IMPL_STRING_ATTRIB(Consent);
IMPL_TYPED_FOREIGN_CHILD(Issuer,saml2);
if (!m_ID)
const_cast<RequestImpl*>(this)->m_ID=SAMLConfig::getConfig().generateIdentifier();
MARSHALL_ID_ATTRIB(ID,ID,NULL);
- if (!m_IssueInstant)
- const_cast<RequestImpl*>(this)->m_IssueInstant=new DateTime(time(NULL));
+ if (!m_IssueInstant) {
+ const_cast<RequestImpl*>(this)->m_IssueInstantEpoch=time(NULL);
+ const_cast<RequestImpl*>(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);
AssertionIDRequestImpl(const XMLCh* nsURI, const XMLCh* localName, const XMLCh* prefix, const QName* schemaType)
: AbstractXMLObject(nsURI, localName, prefix, schemaType) { }
- AssertionIDRequestImpl(const AssertionIDRequestImpl& src) : AbstractXMLObject(src),
- RequestImpl(src)
- {
+ AssertionIDRequestImpl(const AssertionIDRequestImpl& src) : AbstractXMLObject(src), RequestImpl(src) {
VectorOf(AssertionIDRef) v=getAssertionIDRefs();
for (vector<AssertionIDRef*>::const_iterator i=src.m_AssertionIDRefs.begin(); i!=src.m_AssertionIDRefs.end(); i++) {
if (*i) {
init();
}
- SubjectQueryImpl(const SubjectQueryImpl& src) : AbstractXMLObject(src),
- RequestImpl(src)
- {
+ SubjectQueryImpl(const SubjectQueryImpl& src) : AbstractXMLObject(src), RequestImpl(src) {
init();
if (src.getSubject())
setSubject(src.getSubject()->cloneSubject());
class SAML_DLLLOCAL RequestedAuthnContextImpl : public virtual RequestedAuthnContext,
- public AbstractComplexElement,
- public AbstractDOMCachingXMLObject,
- public AbstractValidatingXMLObject,
- public AbstractXMLObjectMarshaller,
- public AbstractXMLObjectUnmarshaller
+ public AbstractComplexElement,
+ public AbstractDOMCachingXMLObject,
+ public AbstractXMLObjectMarshaller,
+ public AbstractXMLObjectUnmarshaller
{
void init() {
m_Comparison=NULL;
init();
}
- RequestedAuthnContextImpl(const RequestedAuthnContextImpl& src) : AbstractXMLObject(src),
- AbstractDOMCachingXMLObject(src),
- AbstractValidatingXMLObject(src)
- {
+ RequestedAuthnContextImpl(const RequestedAuthnContextImpl& src) : AbstractXMLObject(src), AbstractDOMCachingXMLObject(src) {
init();
setComparison(src.getComparison());
for (list<XMLObject*>::const_iterator i=src.m_children.begin(); i!=src.m_children.end(); i++) {
init();
}
- AuthnQueryImpl(const AuthnQueryImpl& src) : AbstractXMLObject(src),
- SubjectQueryImpl(src)
- {
+ AuthnQueryImpl(const AuthnQueryImpl& src) : AbstractXMLObject(src), SubjectQueryImpl(src) {
init();
setSessionIndex(src.getSessionIndex());
if (src.getRequestedAuthnContext())
AttributeQueryImpl(const XMLCh* nsURI, const XMLCh* localName, const XMLCh* prefix, const QName* schemaType)
: AbstractXMLObject(nsURI, localName, prefix, schemaType) { }
- AttributeQueryImpl(const AttributeQueryImpl& src) : AbstractXMLObject(src),
- SubjectQueryImpl(src)
- {
+ 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);
init();
}
- AuthzDecisionQueryImpl(const AuthzDecisionQueryImpl& src) : AbstractXMLObject(src),
- SubjectQueryImpl(src)
- {
+ AuthzDecisionQueryImpl(const AuthzDecisionQueryImpl& src) : AbstractXMLObject(src), SubjectQueryImpl(src) {
init();
setResource(src.getResource());
if (src.getEvidence())
};
class SAML_DLLLOCAL NameIDPolicyImpl : public virtual NameIDPolicy,
- public AbstractChildlessElement,
- public AbstractDOMCachingXMLObject,
- public AbstractValidatingXMLObject,
- public AbstractXMLObjectMarshaller,
- public AbstractXMLObjectUnmarshaller
+ public AbstractChildlessElement,
+ public AbstractDOMCachingXMLObject,
+ public AbstractXMLObjectMarshaller,
+ public AbstractXMLObjectUnmarshaller
{
void init() {
m_Format=NULL;
init();
}
- NameIDPolicyImpl(const NameIDPolicyImpl& src) : AbstractXMLObject(src),
- AbstractDOMCachingXMLObject(src),
- AbstractValidatingXMLObject(src)
- {
+ NameIDPolicyImpl(const NameIDPolicyImpl& src) : AbstractXMLObject(src), AbstractDOMCachingXMLObject(src) {
init();
setFormat(src.getFormat());
setSPNameQualifier(src.getSPNameQualifier());
};
class SAML_DLLLOCAL IDPEntryImpl : public virtual IDPEntry,
- public AbstractChildlessElement,
- public AbstractDOMCachingXMLObject,
- public AbstractValidatingXMLObject,
- public AbstractXMLObjectMarshaller,
- public AbstractXMLObjectUnmarshaller
+ public AbstractChildlessElement,
+ public AbstractDOMCachingXMLObject,
+ public AbstractXMLObjectMarshaller,
+ public AbstractXMLObjectUnmarshaller
{
void init() {
m_ProviderID=NULL;
init();
}
- IDPEntryImpl(const IDPEntryImpl& src) : AbstractXMLObject(src),
- AbstractDOMCachingXMLObject(src),
- AbstractValidatingXMLObject(src)
- {
+ IDPEntryImpl(const IDPEntryImpl& src) : AbstractXMLObject(src), AbstractDOMCachingXMLObject(src) {
init();
setProviderID(src.getProviderID());
setName(src.getName());
};
class SAML_DLLLOCAL IDPListImpl : public virtual IDPList,
- public AbstractComplexElement,
- public AbstractDOMCachingXMLObject,
- public AbstractValidatingXMLObject,
- public AbstractXMLObjectMarshaller,
- public AbstractXMLObjectUnmarshaller
+ public AbstractComplexElement,
+ public AbstractDOMCachingXMLObject,
+ public AbstractXMLObjectMarshaller,
+ public AbstractXMLObjectUnmarshaller
{
void init() {
m_GetComplete=NULL;
init();
}
- IDPListImpl(const IDPListImpl& src) : AbstractXMLObject(src),
- AbstractComplexElement(src),
- AbstractDOMCachingXMLObject(src),
- AbstractValidatingXMLObject(src)
- {
+ IDPListImpl(const IDPListImpl& src)
+ : AbstractXMLObject(src), AbstractComplexElement(src), AbstractDOMCachingXMLObject(src) {
init();
if (src.getGetComplete())
setGetComplete(src.getGetComplete()->cloneGetComplete());
class SAML_DLLLOCAL ScopingImpl : public virtual Scoping,
- public AbstractComplexElement,
- public AbstractDOMCachingXMLObject,
- public AbstractValidatingXMLObject,
- public AbstractXMLObjectMarshaller,
- public AbstractXMLObjectUnmarshaller
+ public AbstractComplexElement,
+ public AbstractDOMCachingXMLObject,
+ public AbstractXMLObjectMarshaller,
+ public AbstractXMLObjectUnmarshaller
{
void init() {
m_ProxyCount=NULL;
init();
}
- ScopingImpl(const ScopingImpl& src) : AbstractXMLObject(src),
- AbstractComplexElement(src),
- AbstractDOMCachingXMLObject(src),
- AbstractValidatingXMLObject(src)
- {
+ ScopingImpl(const ScopingImpl& src)
+ : AbstractXMLObject(src), AbstractComplexElement(src), AbstractDOMCachingXMLObject(src) {
init();
setProxyCount(m_ProxyCount);
if (src.getIDPList())
init();
}
- AuthnRequestImpl(const AuthnRequestImpl& src) : AbstractXMLObject(src),
- RequestImpl(src)
- {
+ AuthnRequestImpl(const AuthnRequestImpl& src) : AbstractXMLObject(src), RequestImpl(src) {
init();
ForceAuthn(m_ForceAuthn);
};
class SAML_DLLLOCAL StatusResponseImpl : public virtual StatusResponse,
- public AbstractComplexElement,
- public AbstractDOMCachingXMLObject,
- public AbstractValidatingXMLObject,
- public AbstractXMLObjectMarshaller,
- public AbstractXMLObjectUnmarshaller
+ public AbstractComplexElement,
+ public AbstractDOMCachingXMLObject,
+ public AbstractXMLObjectMarshaller,
+ public AbstractXMLObjectUnmarshaller
{
void init() {
m_ID=NULL;
init();
}
- StatusResponseImpl(const StatusResponseImpl& src) : AbstractXMLObject(src),
- AbstractDOMCachingXMLObject(src),
- AbstractValidatingXMLObject(src)
- {
+ StatusResponseImpl(const StatusResponseImpl& src) : AbstractXMLObject(src), AbstractDOMCachingXMLObject(src) {
init();
setID(src.getID());
setInResponseTo(src.getInResponseTo());
IMPL_STRING_ATTRIB(Version);
IMPL_STRING_ATTRIB(ID);
IMPL_STRING_ATTRIB(InResponseTo);
- IMPL_DATETIME_ATTRIB(IssueInstant);
+ IMPL_DATETIME_ATTRIB(IssueInstant,0);
IMPL_STRING_ATTRIB(Destination);
IMPL_STRING_ATTRIB(Consent);
IMPL_TYPED_FOREIGN_CHILD(Issuer,saml2);
if (!m_ID)
const_cast<StatusResponseImpl*>(this)->m_ID=SAMLConfig::getConfig().generateIdentifier();
MARSHALL_ID_ATTRIB(ID,ID,NULL);
- if (!m_IssueInstant)
- const_cast<StatusResponseImpl*>(this)->m_IssueInstant=new DateTime(time(NULL));
+ if (!m_IssueInstant) {
+ const_cast<StatusResponseImpl*>(this)->m_IssueInstantEpoch=time(NULL);
+ const_cast<StatusResponseImpl*>(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);
ResponseImpl(const XMLCh* nsURI, const XMLCh* localName, const XMLCh* prefix, const QName* schemaType)
: AbstractXMLObject(nsURI, localName, prefix, schemaType) { }
- ResponseImpl(const ResponseImpl& src) : AbstractXMLObject(src),
- StatusResponseImpl(src)
- {
+ ResponseImpl(const ResponseImpl& src) : AbstractXMLObject(src), StatusResponseImpl(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);
init();
}
- ArtifactResolveImpl(const ArtifactResolveImpl& src) : AbstractXMLObject(src),
- RequestImpl(src)
- {
+ ArtifactResolveImpl(const ArtifactResolveImpl& src) : AbstractXMLObject(src), RequestImpl(src) {
init();
if(src.getArtifact())
setArtifact(src.getArtifact()->cloneArtifact());
init();
}
- ArtifactResponseImpl(const ArtifactResponseImpl& src) : AbstractXMLObject(src),
- StatusResponseImpl(src)
- {
+ ArtifactResponseImpl(const ArtifactResponseImpl& src) : AbstractXMLObject(src), StatusResponseImpl(src) {
init();
if (src.getPayload())
setPayload(getPayload()->clone());
};
class SAML_DLLLOCAL NewEncryptedIDImpl : public virtual NewEncryptedID,
- public AbstractComplexElement,
- public AbstractDOMCachingXMLObject,
- public AbstractValidatingXMLObject,
- public AbstractXMLObjectMarshaller,
- public AbstractXMLObjectUnmarshaller
+ public AbstractComplexElement,
+ public AbstractDOMCachingXMLObject,
+ public AbstractXMLObjectMarshaller,
+ public AbstractXMLObjectUnmarshaller
{
void init() {
m_EncryptedData=NULL;
init();
}
- NewEncryptedIDImpl(const NewEncryptedIDImpl& src)
- : AbstractXMLObject(src), AbstractDOMCachingXMLObject(src), AbstractValidatingXMLObject(src)
- {
+ NewEncryptedIDImpl(const NewEncryptedIDImpl& src) : AbstractXMLObject(src), AbstractDOMCachingXMLObject(src) {
init();
if (src.getEncryptedData())
setEncryptedData(src.getEncryptedData()->cloneEncryptedData());
};
class SAML_DLLLOCAL TerminateImpl : public virtual Terminate,
- public AbstractChildlessElement,
- public AbstractDOMCachingXMLObject,
- public AbstractValidatingXMLObject,
- public AbstractXMLObjectMarshaller,
- public AbstractXMLObjectUnmarshaller
+ public AbstractChildlessElement,
+ public AbstractDOMCachingXMLObject,
+ public AbstractXMLObjectMarshaller,
+ public AbstractXMLObjectUnmarshaller
{
public:
virtual ~TerminateImpl() { }
TerminateImpl(const XMLCh* nsURI, const XMLCh* localName, const XMLCh* prefix, const QName* schemaType)
: AbstractXMLObject(nsURI, localName, prefix, schemaType) { }
- TerminateImpl(const TerminateImpl& src) : AbstractXMLObject(src),
- AbstractDOMCachingXMLObject(src),
- AbstractValidatingXMLObject(src) { }
+ TerminateImpl(const TerminateImpl& src) : AbstractXMLObject(src), AbstractDOMCachingXMLObject(src) {
+ }
IMPL_XMLOBJECT_CLONE(Terminate);
init();
}
- ManageNameIDRequestImpl(const ManageNameIDRequestImpl& src) : AbstractXMLObject(src),
- RequestImpl(src)
- {
+ ManageNameIDRequestImpl(const ManageNameIDRequestImpl& src) : AbstractXMLObject(src), RequestImpl(src) {
init();
if (src.getNameID())
ManageNameIDResponseImpl(const XMLCh* nsURI, const XMLCh* localName, const XMLCh* prefix, const QName* schemaType)
: AbstractXMLObject(nsURI, localName, prefix, schemaType) { }
- ManageNameIDResponseImpl(const ManageNameIDResponseImpl& src) : AbstractXMLObject(src),
- StatusResponseImpl(src) { }
+ ManageNameIDResponseImpl(const ManageNameIDResponseImpl& src) : AbstractXMLObject(src), StatusResponseImpl(src) {
+ }
IMPL_XMLOBJECT_CLONE(ManageNameIDResponse);
};
init();
}
- LogoutRequestImpl(const LogoutRequestImpl& src) : AbstractXMLObject(src),
- RequestImpl(src)
- {
+ LogoutRequestImpl(const LogoutRequestImpl& src) : AbstractXMLObject(src), RequestImpl(src) {
init();
setReason(src.getReason());
IMPL_XMLOBJECT_CLONE(LogoutRequest);
IMPL_STRING_ATTRIB(Reason);
- IMPL_DATETIME_ATTRIB(NotOnOrAfter);
+ IMPL_DATETIME_ATTRIB(NotOnOrAfter,SAMLTIME_MAX);
IMPL_TYPED_FOREIGN_CHILD(BaseID,saml2);
IMPL_TYPED_FOREIGN_CHILD(NameID,saml2);
IMPL_TYPED_FOREIGN_CHILD(EncryptedID,saml2);
LogoutResponseImpl(const XMLCh* nsURI, const XMLCh* localName, const XMLCh* prefix, const QName* schemaType)
: AbstractXMLObject(nsURI, localName, prefix, schemaType) { }
- LogoutResponseImpl(const LogoutResponseImpl& src) : AbstractXMLObject(src),
- StatusResponseImpl(src) { }
+ LogoutResponseImpl(const LogoutResponseImpl& src) : AbstractXMLObject(src), StatusResponseImpl(src) {
+ }
IMPL_XMLOBJECT_CLONE(LogoutResponse);
};
init();
}
- NameIDMappingRequestImpl(const NameIDMappingRequestImpl& src) : AbstractXMLObject(src),
- RequestImpl(src)
- {
+ NameIDMappingRequestImpl(const NameIDMappingRequestImpl& src) : AbstractXMLObject(src), RequestImpl(src) {
init();
if (src.getBaseID())
init();
}
- NameIDMappingResponseImpl(const NameIDMappingResponseImpl& src) : AbstractXMLObject(src),
- StatusResponseImpl(src)
- {
+ NameIDMappingResponseImpl(const NameIDMappingResponseImpl& src) : AbstractXMLObject(src), StatusResponseImpl(src) {
init();
if (src.getNameID())