#include "XMLToolingConfig.h"
#include "encryption/Encryption.h"
#include "impl/UnknownElement.h"
+#include "security/TrustEngine.h"
+#include "security/OpenSSLCryptoX509CRL.h"
#include "signature/CredentialResolver.h"
-#include "signature/KeyResolver.h"
-#include "signature/Signature.h"
+#include "soap/SOAP.h"
#include "util/NDC.h"
+#include "util/StorageService.h"
#include "util/XMLConstants.h"
#include "validation/Validator.h"
#include <openssl/err.h>
#endif
+using namespace soap11;
using namespace xmlencryption;
using namespace xmlsignature;
using namespace xmltooling;
DECL_EXCEPTION_FACTORY(UnknownAttributeException,xmltooling);
DECL_EXCEPTION_FACTORY(UnknownExtensionException,xmltooling);
DECL_EXCEPTION_FACTORY(ValidationException,xmltooling);
+DECL_EXCEPTION_FACTORY(XMLSecurityException,xmltooling);
+DECL_EXCEPTION_FACTORY(IOException,xmltooling);
#ifndef XMLTOOLING_NO_XMLSEC
DECL_EXCEPTION_FACTORY(SignatureException,xmlsignature);
m_parserPool=new ParserPool();
m_validatingPool=new ParserPool(true,true);
m_lock=xercesc::XMLPlatformUtils::makeMutex();
+
+ // Load catalogs from path.
+ if (!catalog_path.empty()) {
+ char* catpath=strdup(catalog_path.c_str());
+ char* sep=NULL;
+ char* start=catpath;
+ while (start && *start) {
+ sep=strchr(start,PATH_SEPARATOR_CHAR);
+ if (sep)
+ *sep=0;
+ auto_ptr_XMLCh temp(start);
+ m_validatingPool->loadCatalog(temp.get());
+ start = sep ? sep + 1 : NULL;
+ }
+ free(catpath);
+ }
// default registrations
XMLObjectBuilder::registerDefaultBuilder(new UnknownElementBuilder());
registerKeyInfoClasses();
registerEncryptionClasses();
+ registerSOAPClasses();
REGISTER_EXCEPTION_FACTORY(XMLParserException,xmltooling);
REGISTER_EXCEPTION_FACTORY(XMLObjectException,xmltooling);
REGISTER_EXCEPTION_FACTORY(UnknownElementException,xmltooling);
REGISTER_EXCEPTION_FACTORY(UnknownAttributeException,xmltooling);
REGISTER_EXCEPTION_FACTORY(ValidationException,xmltooling);
+ REGISTER_EXCEPTION_FACTORY(XMLSecurityException,xmltooling);
+ REGISTER_EXCEPTION_FACTORY(IOException,xmltooling);
#ifndef XMLTOOLING_NO_XMLSEC
XMLObjectBuilder::registerBuilder(QName(XMLConstants::XMLSIG_NS,Signature::LOCAL_NAME),new SignatureBuilder());
REGISTER_EXCEPTION_FACTORY(SignatureException,xmlsignature);
registerKeyResolvers();
registerCredentialResolvers();
+ registerTrustEngines();
#endif
+ registerStorageServices();
+
+ // Register xml:id as an ID attribute.
+ static const XMLCh xmlid[] = UNICODE_LITERAL_2(i,d);
+ AttributeExtensibleXMLObject::registerIDAttribute(QName(XMLConstants::XML_NS, xmlid));
}
catch (const xercesc::XMLException&) {
log.fatal("caught exception while initializing Xerces");
KeyInfoSchemaValidators.destroyValidators();
EncryptionSchemaValidators.destroyValidators();
XMLToolingException::deregisterFactories();
+ AttributeExtensibleXMLObject::deregisterIDAttributes();
#ifndef XMLTOOLING_NO_XMLSEC
+ TrustEngineManager.deregisterFactories();
CredentialResolverManager.deregisterFactories();
KeyResolverManager.deregisterFactories();
#endif
code=ERR_get_error_line_data(&file,&line,&data,&flags);
}
}
+
+XSECCryptoX509CRL* XMLToolingInternalConfig::X509CRL() const
+{
+ return new OpenSSLCryptoX509CRL();
+}
#endif