- sub = e ? XMLHelper::getFirstChildElement(e, _TrustEngine) : nullptr;
- auto_ptr_char t2(sub ? sub->getAttributeNS(nullptr,type) : nullptr);
- if (t2.get()) {
- TrustEngine* trust = XMLToolingConfig::getConfig().TrustEngineManager.newPlugin(t2.get(),sub);
- if (!(m_trust = dynamic_cast<SignatureTrustEngine*>(trust))) {
- delete trust;
- throw MetadataFilterException("TrustEngine-based SignatureMetadataFilter requires a SignatureTrustEngine plugin.");
+ sub = XMLHelper::getFirstChildElement(e, _TrustEngine);
+ if (sub) {
+ string t = XMLHelper::getAttrString(sub, nullptr, type);
+ if (!t.empty()) {
+ TrustEngine* trust = XMLToolingConfig::getConfig().TrustEngineManager.newPlugin(t.c_str(), sub);
+ SignatureTrustEngine* sigTrust = dynamic_cast<SignatureTrustEngine*>(trust);
+ if (!sigTrust) {
+ delete trust;
+ throw MetadataFilterException("TrustEngine-based SignatureMetadataFilter requires a SignatureTrustEngine plugin.");
+ }
+ m_trust.reset(sigTrust);
+ m_dummyResolver.reset(XMLToolingConfig::getConfig().CredentialResolverManager.newPlugin(DUMMY_CREDENTIAL_RESOLVER, nullptr));
+ if (!m_dummyResolver.get())
+ throw MetadataFilterException("Error creating dummy CredentialResolver.");
+ return;