From f4ff096a4048e157b8b377ddf253f2e76b7fee53 Mon Sep 17 00:00:00 2001 From: Scott Cantor Date: Wed, 12 Jul 2006 01:13:18 +0000 Subject: [PATCH] Removed ValidatingXMLObject interface and implementations. --- xmltooling/Makefile.am | 3 - xmltooling/base.h | 20 ++--- xmltooling/encryption/impl/EncryptionImpl.cpp | 41 ++------- xmltooling/signature/KeyInfo.h | 1 - xmltooling/signature/Signature.h | 3 +- xmltooling/signature/SignatureValidator.h | 8 -- xmltooling/signature/impl/KeyInfoImpl.cpp | 46 +++------- xmltooling/signature/impl/XMLSecSignatureImpl.cpp | 56 +----------- .../validation/AbstractValidatingXMLObject.cpp | 100 --------------------- .../validation/AbstractValidatingXMLObject.h | 85 ------------------ xmltooling/validation/ValidatingXMLObject.h | 85 ------------------ xmltooling/validation/Validator.h | 7 -- xmltooling/xmltooling.vcproj | 12 --- xmltoolingtest/SignatureTest.h | 12 +-- xmltoolingtest/data/ComplexXMLObject.xml | 4 +- 15 files changed, 31 insertions(+), 452 deletions(-) delete mode 100644 xmltooling/validation/AbstractValidatingXMLObject.cpp delete mode 100644 xmltooling/validation/AbstractValidatingXMLObject.h delete mode 100644 xmltooling/validation/ValidatingXMLObject.h diff --git a/xmltooling/Makefile.am b/xmltooling/Makefile.am index ed8c919..71dd110 100644 --- a/xmltooling/Makefile.am +++ b/xmltooling/Makefile.am @@ -71,8 +71,6 @@ utilinclude_HEADERS = \ util/XMLObjectChildrenList.h valinclude_HEADERS = \ - validation/AbstractValidatingXMLObject.h \ - validation/ValidatingXMLObject.h \ validation/Validator.h \ validation/ValidatorSuite.h @@ -120,7 +118,6 @@ libxmltooling_la_SOURCES = \ util/ParserPool.cpp \ util/XMLConstants.cpp \ util/XMLHelper.cpp \ - validation/AbstractValidatingXMLObject.cpp \ validation/ValidatorSuite.cpp \ ${xmlsec_sources} \ $(thread_sources) diff --git a/xmltooling/base.h b/xmltooling/base.h index 4f9ec8f..bc24a43 100644 --- a/xmltooling/base.h +++ b/xmltooling/base.h @@ -229,7 +229,7 @@ */ #define BEGIN_XMLOBJECT(linkage,cname,base,desc) \ XMLTOOLING_DOXYGEN(desc) \ - class linkage cname : public virtual base, public virtual xmltooling::ValidatingXMLObject { \ + class linkage cname : public virtual base { \ protected: \ cname() {} \ public: \ @@ -252,7 +252,7 @@ */ #define BEGIN_XMLOBJECT2(linkage,cname,base,base2,desc) \ XMLTOOLING_DOXYGEN(desc) \ - class linkage cname : public virtual base, public virtual base2, public virtual xmltooling::ValidatingXMLObject { \ + class linkage cname : public virtual base, public virtual base2 { \ protected: \ cname() {} \ public: \ @@ -276,8 +276,7 @@ */ #define BEGIN_XMLOBJECT3(linkage,cname,base,base2,base3,desc) \ XMLTOOLING_DOXYGEN(desc) \ - class linkage cname : public virtual base, public virtual base2, public virtual base3, \ - public virtual xmltooling::ValidatingXMLObject { \ + class linkage cname : public virtual base, public virtual base2, public virtual base3 { \ protected: \ cname() {} \ public: \ @@ -302,8 +301,7 @@ */ #define BEGIN_XMLOBJECT4(linkage,cname,base,base2,base3,base4,desc) \ XMLTOOLING_DOXYGEN(desc) \ - class linkage cname : public virtual base, public virtual base2, public virtual base3, \ - public virtual base4, public virtual xmltooling::ValidatingXMLObject { \ + class linkage cname : public virtual base, public virtual base2, public virtual base3, public virtual base4 { \ protected: \ cname() {} \ public: \ @@ -1037,7 +1035,6 @@ public xmltooling::AbstractSimpleElement, \ public xmltooling::AbstractChildlessElement, \ public xmltooling::AbstractDOMCachingXMLObject, \ - public xmltooling::AbstractValidatingXMLObject, \ public xmltooling::AbstractXMLObjectMarshaller, \ public xmltooling::AbstractXMLObjectUnmarshaller \ { \ @@ -1049,8 +1046,7 @@ cname##Impl(const cname##Impl& src) \ : xmltooling::AbstractXMLObject(src), \ xmltooling::AbstractSimpleElement(src), \ - xmltooling::AbstractDOMCachingXMLObject(src), \ - xmltooling::AbstractValidatingXMLObject(src) {} \ + xmltooling::AbstractDOMCachingXMLObject(src) {} \ IMPL_XMLOBJECT_CLONE(cname) \ IMPL_XMLOBJECT_CONTENT \ } @@ -1129,9 +1125,6 @@ { \ public: \ virtual ~cname##SchemaValidator() {} \ - virtual cname##SchemaValidator* clone() const { \ - return new cname##SchemaValidator(); \ - } \ virtual void validate(const xmltooling::XMLObject* xmlObject) const { \ const cname* ptr=dynamic_cast(xmlObject); \ if (!ptr) \ @@ -1149,9 +1142,6 @@ { \ public: \ virtual ~cname##SchemaValidator() {} \ - virtual cname##SchemaValidator* clone() const { \ - return new cname##SchemaValidator(); \ - } \ virtual void validate(const xmltooling::XMLObject* xmlObject) const { \ const cname* ptr=dynamic_cast(xmlObject); \ if (!ptr) \ diff --git a/xmltooling/encryption/impl/EncryptionImpl.cpp b/xmltooling/encryption/impl/EncryptionImpl.cpp index 39030a8..d1256be 100644 --- a/xmltooling/encryption/impl/EncryptionImpl.cpp +++ b/xmltooling/encryption/impl/EncryptionImpl.cpp @@ -29,7 +29,6 @@ #include "io/AbstractXMLObjectMarshaller.h" #include "io/AbstractXMLObjectUnmarshaller.h" #include "util/XMLHelper.h" -#include "validation/AbstractValidatingXMLObject.h" #include @@ -52,7 +51,6 @@ namespace xmlencryption { class XMLTOOL_DLLLOCAL EncryptionMethodImpl : public virtual EncryptionMethod, public AbstractComplexElement, public AbstractDOMCachingXMLObject, - public AbstractValidatingXMLObject, public AbstractXMLObjectMarshaller, public AbstractXMLObjectUnmarshaller { @@ -76,8 +74,7 @@ namespace xmlencryption { init(); } - EncryptionMethodImpl(const EncryptionMethodImpl& src) - : AbstractXMLObject(src), AbstractDOMCachingXMLObject(src), AbstractValidatingXMLObject(src) { + EncryptionMethodImpl(const EncryptionMethodImpl& src) : AbstractXMLObject(src), AbstractDOMCachingXMLObject(src) { init(); setAlgorithm(src.getAlgorithm()); if (src.getKeySize()) @@ -126,7 +123,6 @@ namespace xmlencryption { class XMLTOOL_DLLLOCAL TransformsImpl : public virtual Transforms, public AbstractComplexElement, public AbstractDOMCachingXMLObject, - public AbstractValidatingXMLObject, public AbstractXMLObjectMarshaller, public AbstractXMLObjectUnmarshaller { @@ -137,8 +133,7 @@ namespace xmlencryption { : AbstractXMLObject(nsURI, localName, prefix, schemaType) { } - TransformsImpl(const TransformsImpl& src) - : AbstractXMLObject(src), AbstractDOMCachingXMLObject(src), AbstractValidatingXMLObject(src) { + TransformsImpl(const TransformsImpl& src) : AbstractXMLObject(src), AbstractDOMCachingXMLObject(src) { VectorOf(xmlsignature::Transform) v=getTransforms(); for (vector::const_iterator i=src.m_Transforms.begin(); i!=src.m_Transforms.end(); i++) { if (*i) { @@ -160,7 +155,6 @@ namespace xmlencryption { class XMLTOOL_DLLLOCAL CipherReferenceImpl : public virtual CipherReference, public AbstractComplexElement, public AbstractDOMCachingXMLObject, - public AbstractValidatingXMLObject, public AbstractXMLObjectMarshaller, public AbstractXMLObjectUnmarshaller { @@ -180,8 +174,7 @@ namespace xmlencryption { init(); } - CipherReferenceImpl(const CipherReferenceImpl& src) - : AbstractXMLObject(src), AbstractDOMCachingXMLObject(src), AbstractValidatingXMLObject(src) { + CipherReferenceImpl(const CipherReferenceImpl& src) : AbstractXMLObject(src), AbstractDOMCachingXMLObject(src) { init(); setURI(src.getURI()); if (src.getTransforms()) @@ -211,7 +204,6 @@ namespace xmlencryption { class XMLTOOL_DLLLOCAL CipherDataImpl : public virtual CipherData, public AbstractComplexElement, public AbstractDOMCachingXMLObject, - public AbstractValidatingXMLObject, public AbstractXMLObjectMarshaller, public AbstractXMLObjectUnmarshaller { @@ -232,8 +224,7 @@ namespace xmlencryption { init(); } - CipherDataImpl(const CipherDataImpl& src) - : AbstractXMLObject(src), AbstractDOMCachingXMLObject(src), AbstractValidatingXMLObject(src) { + CipherDataImpl(const CipherDataImpl& src) : AbstractXMLObject(src), AbstractDOMCachingXMLObject(src) { init(); if (src.getCipherValue()) setCipherValue(src.getCipherValue()->cloneCipherValue()); @@ -257,7 +248,6 @@ namespace xmlencryption { public AbstractElementProxy, public AbstractAttributeExtensibleXMLObject, public AbstractDOMCachingXMLObject, - public AbstractValidatingXMLObject, public AbstractXMLObjectMarshaller, public AbstractXMLObjectUnmarshaller { @@ -279,8 +269,7 @@ namespace xmlencryption { : AbstractXMLObject(src), AbstractElementProxy(src), AbstractAttributeExtensibleXMLObject(src), - AbstractDOMCachingXMLObject(src), - AbstractValidatingXMLObject(src) { + AbstractDOMCachingXMLObject(src) { init(); setId(src.getId()); setTarget(src.getTarget()); @@ -338,7 +327,6 @@ namespace xmlencryption { class XMLTOOL_DLLLOCAL EncryptionPropertiesImpl : public virtual EncryptionProperties, public AbstractComplexElement, public AbstractDOMCachingXMLObject, - public AbstractValidatingXMLObject, public AbstractXMLObjectMarshaller, public AbstractXMLObjectUnmarshaller { @@ -355,10 +343,7 @@ namespace xmlencryption { init(); } - EncryptionPropertiesImpl(const EncryptionPropertiesImpl& src) - : AbstractXMLObject(src), - AbstractDOMCachingXMLObject(src), - AbstractValidatingXMLObject(src) { + EncryptionPropertiesImpl(const EncryptionPropertiesImpl& src) : AbstractXMLObject(src), AbstractDOMCachingXMLObject(src) { init(); setId(src.getId()); VectorOf(EncryptionProperty) v=getEncryptionPropertys(); @@ -392,7 +377,6 @@ namespace xmlencryption { class XMLTOOL_DLLLOCAL ReferenceTypeImpl : public virtual ReferenceType, public AbstractElementProxy, public AbstractDOMCachingXMLObject, - public AbstractValidatingXMLObject, public AbstractXMLObjectMarshaller, public AbstractXMLObjectUnmarshaller { @@ -416,10 +400,7 @@ namespace xmlencryption { } ReferenceTypeImpl(const ReferenceTypeImpl& src) - : AbstractXMLObject(src), - AbstractElementProxy(src), - AbstractDOMCachingXMLObject(src), - AbstractValidatingXMLObject(src) { + : AbstractXMLObject(src), AbstractElementProxy(src), AbstractDOMCachingXMLObject(src) { init(); setURI(src.getURI()); for (list::const_iterator i=src.m_children.begin(); i!=src.m_children.end(); i++) { @@ -482,7 +463,6 @@ namespace xmlencryption { class XMLTOOL_DLLLOCAL ReferenceListImpl : public virtual ReferenceList, public AbstractComplexElement, public AbstractDOMCachingXMLObject, - public AbstractValidatingXMLObject, public AbstractXMLObjectMarshaller, public AbstractXMLObjectUnmarshaller { @@ -493,8 +473,7 @@ namespace xmlencryption { : AbstractXMLObject(nsURI, localName, prefix, schemaType) { } - ReferenceListImpl(const ReferenceListImpl& src) - : AbstractXMLObject(src), AbstractDOMCachingXMLObject(src), AbstractValidatingXMLObject(src) { + ReferenceListImpl(const ReferenceListImpl& src) : AbstractXMLObject(src), AbstractDOMCachingXMLObject(src) { for (list::const_iterator i=src.m_children.begin(); i!=src.m_children.end(); i++) { if (*i) { DataReference* data=dynamic_cast(*i); @@ -527,7 +506,6 @@ namespace xmlencryption { class XMLTOOL_DLLLOCAL EncryptedTypeImpl : public virtual EncryptedType, public AbstractComplexElement, public AbstractDOMCachingXMLObject, - public AbstractValidatingXMLObject, public AbstractXMLObjectMarshaller, public AbstractXMLObjectUnmarshaller { @@ -567,8 +545,7 @@ namespace xmlencryption { init(); } - EncryptedTypeImpl(const EncryptedTypeImpl& src) - : AbstractXMLObject(src), AbstractDOMCachingXMLObject(src), AbstractValidatingXMLObject(src) { + EncryptedTypeImpl(const EncryptedTypeImpl& src) : AbstractXMLObject(src), AbstractDOMCachingXMLObject(src) { init(); setId(src.getId()); setType(src.getType()); diff --git a/xmltooling/signature/KeyInfo.h b/xmltooling/signature/KeyInfo.h index 8c6bc96..e8fc826 100644 --- a/xmltooling/signature/KeyInfo.h +++ b/xmltooling/signature/KeyInfo.h @@ -28,7 +28,6 @@ #include #include #include -#include #include #define DECL_XMLSIGOBJECTBUILDER(cname) \ diff --git a/xmltooling/signature/Signature.h b/xmltooling/signature/Signature.h index 02c4267..5afd95f 100644 --- a/xmltooling/signature/Signature.h +++ b/xmltooling/signature/Signature.h @@ -27,7 +27,6 @@ #include #include #include -#include #include #include @@ -43,7 +42,7 @@ namespace xmlsignature { * The default signature settings include Exclusive c14n w/o comments, SHA-1 digests, * and RSA-SHA1 signing. */ - class XMLTOOL_API Signature : public virtual xmltooling::ValidatingXMLObject + class XMLTOOL_API Signature : public virtual xmltooling::XMLObject { public: virtual ~Signature() {} diff --git a/xmltooling/signature/SignatureValidator.h b/xmltooling/signature/SignatureValidator.h index 4dc362a..16dd084 100644 --- a/xmltooling/signature/SignatureValidator.h +++ b/xmltooling/signature/SignatureValidator.h @@ -51,10 +51,6 @@ namespace xmlsignature { virtual void validate(const Signature* signature) const; - SignatureValidator* clone() const { - return new SignatureValidator(*this); - } - /** * Replace the current KeyResolver, if any, with a new one. * @@ -66,10 +62,6 @@ namespace xmlsignature { } protected: - SignatureValidator(const SignatureValidator& src) { - m_resolver=src.m_resolver ? src.m_resolver->clone() : NULL; - } - KeyResolver* m_resolver; }; diff --git a/xmltooling/signature/impl/KeyInfoImpl.cpp b/xmltooling/signature/impl/KeyInfoImpl.cpp index 3745cd0..9a92069 100644 --- a/xmltooling/signature/impl/KeyInfoImpl.cpp +++ b/xmltooling/signature/impl/KeyInfoImpl.cpp @@ -30,7 +30,6 @@ #include "io/AbstractXMLObjectUnmarshaller.h" #include "signature/KeyInfo.h" #include "util/XMLHelper.h" -#include "validation/AbstractValidatingXMLObject.h" #include @@ -48,7 +47,6 @@ namespace xmlsignature { class XMLTOOL_DLLLOCAL DSAKeyValueImpl : public virtual DSAKeyValue, public AbstractComplexElement, public AbstractDOMCachingXMLObject, - public AbstractValidatingXMLObject, public AbstractXMLObjectMarshaller, public AbstractXMLObjectUnmarshaller { @@ -60,8 +58,7 @@ namespace xmlsignature { init(); } - DSAKeyValueImpl(const DSAKeyValueImpl& src) - : AbstractXMLObject(src), AbstractDOMCachingXMLObject(src), AbstractValidatingXMLObject(src) { + DSAKeyValueImpl(const DSAKeyValueImpl& src) : AbstractXMLObject(src), AbstractDOMCachingXMLObject(src) { init(); if (src.getP()) setP(src.getP()->cloneP()); @@ -134,7 +131,6 @@ namespace xmlsignature { class XMLTOOL_DLLLOCAL RSAKeyValueImpl : public virtual RSAKeyValue, public AbstractComplexElement, public AbstractDOMCachingXMLObject, - public AbstractValidatingXMLObject, public AbstractXMLObjectMarshaller, public AbstractXMLObjectUnmarshaller { @@ -146,8 +142,7 @@ namespace xmlsignature { init(); } - RSAKeyValueImpl(const RSAKeyValueImpl& src) - : AbstractXMLObject(src), AbstractDOMCachingXMLObject(src), AbstractValidatingXMLObject(src) { + RSAKeyValueImpl(const RSAKeyValueImpl& src) : AbstractXMLObject(src), AbstractDOMCachingXMLObject(src) { init(); if (src.getModulus()) setModulus(src.getModulus()->cloneModulus()); @@ -181,7 +176,6 @@ namespace xmlsignature { public AbstractSimpleElement, public AbstractComplexElement, public AbstractDOMCachingXMLObject, - public AbstractValidatingXMLObject, public AbstractXMLObjectMarshaller, public AbstractXMLObjectUnmarshaller { @@ -194,8 +188,7 @@ namespace xmlsignature { } KeyValueImpl(const KeyValueImpl& src) - : AbstractXMLObject(src), AbstractSimpleElement(src), - AbstractDOMCachingXMLObject(src), AbstractValidatingXMLObject(src) { + : AbstractXMLObject(src), AbstractSimpleElement(src), AbstractDOMCachingXMLObject(src) { init(); if (src.getDSAKeyValue()) setDSAKeyValue(src.getDSAKeyValue()->cloneDSAKeyValue()); @@ -244,7 +237,6 @@ namespace xmlsignature { class XMLTOOL_DLLLOCAL TransformImpl : public virtual Transform, public AbstractDOMCachingXMLObject, public AbstractElementProxy, - public AbstractValidatingXMLObject, public AbstractXMLObjectMarshaller, public AbstractXMLObjectUnmarshaller { @@ -259,7 +251,7 @@ namespace xmlsignature { TransformImpl(const TransformImpl& src) : AbstractXMLObject(src), AbstractDOMCachingXMLObject(src), AbstractElementProxy(src), - AbstractValidatingXMLObject(src), m_Algorithm(XMLString::replicate(src.m_Algorithm)) { + m_Algorithm(XMLString::replicate(src.m_Algorithm)) { for (list::const_iterator i=src.m_children.begin(); i!=src.m_children.end(); i++) { if (*i) { XPath* x=dynamic_cast(*i); @@ -304,7 +296,6 @@ namespace xmlsignature { class XMLTOOL_DLLLOCAL TransformsImpl : public virtual Transforms, public AbstractComplexElement, public AbstractDOMCachingXMLObject, - public AbstractValidatingXMLObject, public AbstractXMLObjectMarshaller, public AbstractXMLObjectUnmarshaller { @@ -315,8 +306,7 @@ namespace xmlsignature { : AbstractXMLObject(nsURI, localName, prefix, schemaType) { } - TransformsImpl(const TransformsImpl& src) - : AbstractXMLObject(src), AbstractDOMCachingXMLObject(src), AbstractValidatingXMLObject(src) { + TransformsImpl(const TransformsImpl& src) : AbstractXMLObject(src), AbstractDOMCachingXMLObject(src) { VectorOf(Transform) v=getTransforms(); for (vector::const_iterator i=src.m_Transforms.begin(); i!=src.m_Transforms.end(); i++) { if (*i) { @@ -338,7 +328,6 @@ namespace xmlsignature { class XMLTOOL_DLLLOCAL RetrievalMethodImpl : public virtual RetrievalMethod, public AbstractComplexElement, public AbstractDOMCachingXMLObject, - public AbstractValidatingXMLObject, public AbstractXMLObjectMarshaller, public AbstractXMLObjectUnmarshaller { @@ -353,8 +342,7 @@ namespace xmlsignature { init(); } - RetrievalMethodImpl(const RetrievalMethodImpl& src) - : AbstractXMLObject(src), AbstractDOMCachingXMLObject(src), AbstractValidatingXMLObject(src) { + RetrievalMethodImpl(const RetrievalMethodImpl& src) : AbstractXMLObject(src), AbstractDOMCachingXMLObject(src) { init(); setURI(getURI()); setType(getType()); @@ -395,7 +383,6 @@ namespace xmlsignature { class XMLTOOL_DLLLOCAL X509IssuerSerialImpl : public virtual X509IssuerSerial, public AbstractComplexElement, public AbstractDOMCachingXMLObject, - public AbstractValidatingXMLObject, public AbstractXMLObjectMarshaller, public AbstractXMLObjectUnmarshaller { @@ -407,8 +394,7 @@ namespace xmlsignature { init(); } - X509IssuerSerialImpl(const X509IssuerSerialImpl& src) - : AbstractXMLObject(src), AbstractDOMCachingXMLObject(src), AbstractValidatingXMLObject(src) { + X509IssuerSerialImpl(const X509IssuerSerialImpl& src) : AbstractXMLObject(src), AbstractDOMCachingXMLObject(src) { init(); if (src.getX509IssuerName()) setX509IssuerName(src.getX509IssuerName()->cloneX509IssuerName()); @@ -441,7 +427,6 @@ namespace xmlsignature { class XMLTOOL_DLLLOCAL X509DataImpl : public virtual X509Data, public AbstractComplexElement, public AbstractDOMCachingXMLObject, - public AbstractValidatingXMLObject, public AbstractXMLObjectMarshaller, public AbstractXMLObjectUnmarshaller { @@ -452,8 +437,7 @@ namespace xmlsignature { : AbstractXMLObject(nsURI, localName, prefix, schemaType) { } - X509DataImpl(const X509DataImpl& src) - : AbstractXMLObject(src), AbstractDOMCachingXMLObject(src), AbstractValidatingXMLObject(src) { + X509DataImpl(const X509DataImpl& src) : AbstractXMLObject(src), AbstractDOMCachingXMLObject(src) { for (list::const_iterator i=src.m_children.begin(); i!=src.m_children.end(); i++) { if (*i) { X509Certificate* xcert=dynamic_cast(*i); @@ -521,7 +505,6 @@ namespace xmlsignature { class XMLTOOL_DLLLOCAL SPKIDataImpl : public virtual SPKIData, public AbstractComplexElement, public AbstractDOMCachingXMLObject, - public AbstractValidatingXMLObject, public AbstractXMLObjectMarshaller, public AbstractXMLObjectUnmarshaller { @@ -532,8 +515,7 @@ namespace xmlsignature { : AbstractXMLObject(nsURI, localName, prefix, schemaType) { } - SPKIDataImpl(const SPKIDataImpl& src) - : AbstractXMLObject(src), AbstractDOMCachingXMLObject(src), AbstractValidatingXMLObject(src) { + SPKIDataImpl(const SPKIDataImpl& src) : AbstractXMLObject(src), AbstractDOMCachingXMLObject(src) { VectorOfPairs(SPKISexp,XMLObject) v=getSPKISexps(); for (vector< pair >::const_iterator i=src.m_SPKISexps.begin(); i!=src.m_SPKISexps.end(); i++) { if (i->first) { @@ -586,7 +568,6 @@ namespace xmlsignature { class XMLTOOL_DLLLOCAL PGPDataImpl : public virtual PGPData, public AbstractComplexElement, public AbstractDOMCachingXMLObject, - public AbstractValidatingXMLObject, public AbstractXMLObjectMarshaller, public AbstractXMLObjectUnmarshaller { @@ -598,8 +579,7 @@ namespace xmlsignature { init(); } - PGPDataImpl(const PGPDataImpl& src) - : AbstractXMLObject(src), AbstractDOMCachingXMLObject(src), AbstractValidatingXMLObject(src) { + PGPDataImpl(const PGPDataImpl& src) : AbstractXMLObject(src), AbstractDOMCachingXMLObject(src) { init(); if (src.getPGPKeyID()) setPGPKeyID(src.getPGPKeyID()->clonePGPKeyID()); @@ -648,7 +628,6 @@ namespace xmlsignature { public AbstractComplexElement, public AbstractSimpleElement, public AbstractDOMCachingXMLObject, - public AbstractValidatingXMLObject, public AbstractXMLObjectMarshaller, public AbstractXMLObjectUnmarshaller { @@ -662,10 +641,7 @@ namespace xmlsignature { } KeyInfoImpl(const KeyInfoImpl& src) - : AbstractXMLObject(src), - AbstractSimpleElement(src), - AbstractDOMCachingXMLObject(src), - AbstractValidatingXMLObject(src), + : AbstractXMLObject(src), AbstractSimpleElement(src), AbstractDOMCachingXMLObject(src), m_Id(XMLString::replicate(src.m_Id)) { for (list::const_iterator i=src.m_children.begin(); i!=src.m_children.end(); i++) { diff --git a/xmltooling/signature/impl/XMLSecSignatureImpl.cpp b/xmltooling/signature/impl/XMLSecSignatureImpl.cpp index 292d771..2082939 100644 --- a/xmltooling/signature/impl/XMLSecSignatureImpl.cpp +++ b/xmltooling/signature/impl/XMLSecSignatureImpl.cpp @@ -27,7 +27,6 @@ #include "util/NDC.h" #include "util/XMLConstants.h" #include "util/XMLHelper.h" -#include "validation/ValidatingXMLObject.h" #include #include @@ -49,8 +48,7 @@ using namespace std; namespace xmlsignature { - class XMLTOOL_DLLLOCAL XMLSecSignatureImpl - : public UnknownElementImpl, public virtual Signature, public virtual ValidatingXMLObject + class XMLTOOL_DLLLOCAL XMLSecSignatureImpl : public UnknownElementImpl, public virtual Signature { public: XMLSecSignatureImpl() : UnknownElementImpl(XMLConstants::XMLSIG_NS, Signature::LOCAL_NAME, XMLConstants::XMLSIG_PREFIX), @@ -100,11 +98,6 @@ namespace xmlsignature { void sign(); - void registerValidator(Validator* validator); - void deregisterValidator(Validator* validator); - void deregisterAll(); - void validate(bool validateDescendants) const; - private: mutable DSIGSignature* m_signature; XMLCh* m_c14n; @@ -112,7 +105,6 @@ namespace xmlsignature { XSECCryptoKey* m_key; KeyInfo* m_keyInfo; ContentReference* m_reference; - vector m_validators; }; }; @@ -132,7 +124,6 @@ XMLSecSignatureImpl::~XMLSecSignatureImpl() delete m_key; delete m_keyInfo; delete m_reference; - for_each(m_validators.begin(),m_validators.end(),cleanup()); } void XMLSecSignatureImpl::releaseDOM() const @@ -165,8 +156,6 @@ Signature* XMLSecSignatureImpl::cloneSignature() const if (m_keyInfo) ret->m_keyInfo=m_keyInfo->cloneKeyInfo(); - xmltooling::clone(m_validators,ret->m_validators); - // If there's no XML locally, serialize this object into the new one, otherwise just copy it over. if (m_xml.empty()) serialize(ret->m_xml); @@ -401,49 +390,6 @@ XMLObject* XMLSecSignatureImpl::unmarshall(DOMElement* element, bool bindDocumen return this; } -void XMLSecSignatureImpl::registerValidator(Validator* validator) -{ - m_validators.push_back(validator); -} - -void XMLSecSignatureImpl::deregisterValidator(Validator* validator) -{ - for (vector::iterator i=m_validators.begin(); i!=m_validators.end(); i++) { - if ((*i)==validator) { - m_validators.erase(i); - return; - } - } -} - -void XMLSecSignatureImpl::deregisterAll() -{ - for_each(m_validators.begin(),m_validators.end(),cleanup()); - m_validators.clear(); -} - -class _validate : public binary_function { -public: - void operator()(const XMLObject* obj, bool propagate) const { - const ValidatingXMLObject* val = dynamic_cast(obj); - if (val) { - val->validate(propagate); - } - } -}; - -void XMLSecSignatureImpl::validate(bool validateDescendants) const -{ - for_each( - m_validators.begin(),m_validators.end(), - bind2nd(mem_fun(&Validator::validate),this) - ); - - if (validateDescendants && m_keyInfo) { - m_keyInfo->validate(validateDescendants); - } -} - Signature* SignatureBuilder::buildObject( const XMLCh* nsURI, const XMLCh* localName, const XMLCh* prefix, const QName* schemaType ) const diff --git a/xmltooling/validation/AbstractValidatingXMLObject.cpp b/xmltooling/validation/AbstractValidatingXMLObject.cpp deleted file mode 100644 index 5e50d3e..0000000 --- a/xmltooling/validation/AbstractValidatingXMLObject.cpp +++ /dev/null @@ -1,100 +0,0 @@ -/* - * 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 - * - * 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. - */ - -/** - * AbstractValidatingXMLObject.cpp - * - * Extension of AbstractXMLObject that implements a ValidatingXMLObject. - */ - -#include "internal.h" -#include "exceptions.h" -#include "validation/AbstractValidatingXMLObject.h" - -#include -#include - -using namespace xmltooling; -using namespace std; - -AbstractValidatingXMLObject::ValidatorWrapper::~ValidatorWrapper() -{ - for_each(v.begin(),v.end(),cleanup()); -} - -AbstractValidatingXMLObject::AbstractValidatingXMLObject(const AbstractValidatingXMLObject& src) - : AbstractXMLObject(src), m_validators(NULL) -{ - if (src.m_validators) { - m_validators=new ValidatorWrapper(); - xmltooling::clone(src.m_validators->v,m_validators->v); - } -} - -AbstractValidatingXMLObject::~AbstractValidatingXMLObject() -{ - delete m_validators; -} - -void AbstractValidatingXMLObject::registerValidator(Validator* validator) -{ - if (!m_validators) - m_validators=new ValidatorWrapper(); - m_validators->v.push_back(validator); -} - -void AbstractValidatingXMLObject::deregisterValidator(Validator* validator) -{ - if (m_validators) { - for (std::vector::iterator i=m_validators->v.begin(); i!=m_validators->v.end(); i++) { - if ((*i)==validator) { - m_validators->v.erase(i); - return; - } - } - } -} - -void AbstractValidatingXMLObject::deregisterAll() -{ - delete m_validators; - m_validators=NULL; -} - -class _validate : public binary_function { -public: - void operator()(const XMLObject* obj, bool propagate) const { - const ValidatingXMLObject* val = dynamic_cast(obj); - if (val) { - val->validate(propagate); - } - } -}; - -void AbstractValidatingXMLObject::validate(bool validateDescendants) const -{ - if (m_validators) { - for_each( - m_validators->v.begin(),m_validators->v.end(), - bind2nd(mem_fun(&Validator::validate),this) - ); - } - - if (validateDescendants && hasChildren()) { - const list& children=getOrderedChildren(); - for_each(children.begin(),children.end(),bind2nd(_validate(),validateDescendants)); - } -} diff --git a/xmltooling/validation/AbstractValidatingXMLObject.h b/xmltooling/validation/AbstractValidatingXMLObject.h deleted file mode 100644 index 5252e50..0000000 --- a/xmltooling/validation/AbstractValidatingXMLObject.h +++ /dev/null @@ -1,85 +0,0 @@ -/* - * 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 - * - * 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. - */ - -/** - * @file AbstractValidatingXMLObject.h - * - * Extension of AbstractXMLObject that implements a ValidatingXMLObject. - */ - -#if !defined(__xmltooling_abstractvalxmlobj_h__) -#define __xmltooling_abstractvalxmlobj_h__ - -#include -#include - -#if defined (_MSC_VER) - #pragma warning( push ) - #pragma warning( disable : 4250 4251 ) -#endif - -namespace xmltooling { - - /** - * Extension of AbstractXMLObject that implements a ValidatingXMLObject. - */ - class XMLTOOL_API AbstractValidatingXMLObject : public virtual AbstractXMLObject, public virtual ValidatingXMLObject - { - public: - virtual ~AbstractValidatingXMLObject(); - - /** - * @see ValidatingXMLObject::registerValidator() - */ - void registerValidator(Validator* validator); - - /** - * @see ValidatingXMLObject::deregisterValidator() - */ - void deregisterValidator(Validator* validator); - - /** - * @see ValidatingXMLObject::deregisterAll() - */ - void deregisterAll(); - - /** - * @see ValidatingXMLObject::validate() - */ - void validate(bool validateDescendants) const; - - protected: - AbstractValidatingXMLObject() : m_validators(NULL) {} - - /** Copy constructor. */ - AbstractValidatingXMLObject(const AbstractValidatingXMLObject& src); - - private: - struct XMLTOOL_DLLLOCAL ValidatorWrapper { - ~ValidatorWrapper(); - std::vector v; - }; - - mutable ValidatorWrapper* m_validators; - }; - -}; - -#if defined (_MSC_VER) - #pragma warning( pop ) -#endif - -#endif /* __xmltooling_abstractvalxmlobj_h__ */ diff --git a/xmltooling/validation/ValidatingXMLObject.h b/xmltooling/validation/ValidatingXMLObject.h deleted file mode 100644 index 0943be5..0000000 --- a/xmltooling/validation/ValidatingXMLObject.h +++ /dev/null @@ -1,85 +0,0 @@ -/* - * 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 - * - * 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. - */ - -/** - * @file ValidatingXMLObject.h - * - * An XMLObject that can evaluate per-object validation rules. - */ - -#if !defined(__xmltooling_valxmlobj_h__) -#define __xmltooling_valxmlobj_h__ - -#include -#include -#include - -#if defined (_MSC_VER) - #pragma warning( push ) - #pragma warning( disable : 4250 4251 ) -#endif - -namespace xmltooling { - - /** - * A functional interface for XMLObjects that offer the ability - * to evaluate validation rules defined per-object. - */ - class XMLTOOL_API ValidatingXMLObject : public virtual XMLObject - { - protected: - ValidatingXMLObject() {} - - public: - virtual ~ValidatingXMLObject() {} - - /** - * Registers a validator for this XMLObject. - * - * @param validator the validator - */ - virtual void registerValidator(Validator* validator)=0; - - /** - * Deregisters a validator for this XMLObject. - * - * @param validator the validator - */ - virtual void deregisterValidator(Validator* validator)=0; - - /** - * Deregisters all validators for this XMLObject. - */ - virtual void deregisterAll()=0; - - /** - * Validates this XMLObject against all registered validators. - * - * @param validateDescendants true if all the descendants of this object should - * be validated as well, false if not - * - * @throws ValidationException thrown if the object is not valid - */ - virtual void validate(bool validateDescendants) const=0; - }; - -}; - -#if defined (_MSC_VER) - #pragma warning( pop ) -#endif - -#endif /* __xmltooling_valxmlobj_h__ */ diff --git a/xmltooling/validation/Validator.h b/xmltooling/validation/Validator.h index 7c8f6d7..58256bf 100644 --- a/xmltooling/validation/Validator.h +++ b/xmltooling/validation/Validator.h @@ -46,13 +46,6 @@ namespace xmltooling { */ virtual void validate(const XMLObject* xmlObject) const=0; - /** - * Returns a copy of the validator. - * - * @return the new validator - */ - virtual Validator* clone() const=0; - protected: Validator() {} }; diff --git a/xmltooling/xmltooling.vcproj b/xmltooling/xmltooling.vcproj index 0199f6b..dd64694 100644 --- a/xmltooling/xmltooling.vcproj +++ b/xmltooling/xmltooling.vcproj @@ -281,10 +281,6 @@ Name="validation" > - - @@ -495,14 +491,6 @@ Name="validation" > - - - - diff --git a/xmltoolingtest/SignatureTest.h b/xmltoolingtest/SignatureTest.h index 458fa7e..d52c0a2 100644 --- a/xmltoolingtest/SignatureTest.h +++ b/xmltoolingtest/SignatureTest.h @@ -52,10 +52,6 @@ class TestValidator : public SignatureValidator { XMLCh* m_uri; - TestValidator(const TestValidator& src) : SignatureValidator(src) { - m_uri=XMLString::replicate(src.m_uri); - } - public: TestValidator(const XMLCh* uri, XSECCryptoKey* key) : SignatureValidator(new KeyResolver(key)) { m_uri=XMLString::replicate(uri); @@ -65,10 +61,6 @@ public: XMLString::release(&m_uri); } - TestValidator* clone() const { - return new TestValidator(*this); - } - void validate(const Signature* sigObj) const { DSIGSignature* sig=sigObj->getXMLSignature(); if (!sig) @@ -185,10 +177,10 @@ public: auto_ptr sxObject2(dynamic_cast(b->buildFromDocument(doc))); TS_ASSERT(sxObject2.get()!=NULL); TS_ASSERT(sxObject2->getSignature()!=NULL); - sxObject2->getSignature()->registerValidator(new TestValidator(&chNull,m_key->clone())); try { - sxObject2->getSignature()->validate(false); + TestValidator tv(&chNull,m_key->clone()); + tv.validate(sxObject2->getSignature()); } catch (XMLToolingException& e) { TS_TRACE(e.what()); diff --git a/xmltoolingtest/data/ComplexXMLObject.xml b/xmltoolingtest/data/ComplexXMLObject.xml index 3951644..7b97ccb 100644 --- a/xmltoolingtest/data/ComplexXMLObject.xml +++ b/xmltoolingtest/data/ComplexXMLObject.xml @@ -1,5 +1,5 @@ - + Python Perfect IDE @@ -9,7 +9,7 @@ the year 3000. Works well with 1166. - + XSLT Perfect IDE red -- 2.1.4