From 6d4e78164a523903b2ea0af030e47a086eaf5c65 Mon Sep 17 00:00:00 2001 From: Scott Cantor Date: Tue, 27 Jan 2009 01:54:08 +0000 Subject: [PATCH 1/1] https://issues.shibboleth.net/jira/browse/CPPOST-23 --- .../saml2/metadata/impl/DynamicMetadataProvider.cpp | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/saml/saml2/metadata/impl/DynamicMetadataProvider.cpp b/saml/saml2/metadata/impl/DynamicMetadataProvider.cpp index b7b53f1..1f2104e 100644 --- a/saml/saml2/metadata/impl/DynamicMetadataProvider.cpp +++ b/saml/saml2/metadata/impl/DynamicMetadataProvider.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2001-2007 Internet2 + * Copyright 2001-2009 Internet2 * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -86,8 +86,9 @@ pair DynamicMetadataProvider::get auto_ptr_char temp(criteria.entityID_unicode); name = temp.get(); } - else if (criteria.artifact) + else if (criteria.artifact) { name = criteria.artifact->getSource(); + } else return entity; @@ -100,13 +101,13 @@ pair DynamicMetadataProvider::get // Verify the entityID. if (criteria.entityID_unicode && !XMLString::equals(criteria.entityID_unicode, entity2->getEntityID())) { - Category::getInstance(SAML_LOGCAT".MetadataProvider.Dynamic").error("metadata instance did not match expected entityID"); + log.error("metadata instance did not match expected entityID"); return entity; } else { auto_ptr_XMLCh temp2(name.c_str()); if (!XMLString::equals(temp2.get(), entity2->getEntityID())) { - Category::getInstance(SAML_LOGCAT".MetadataProvider.Dynamic").error("metadata instance did not match expected entityID"); + log.error("metadata instance did not match expected entityID"); return entity; } } @@ -140,9 +141,7 @@ pair DynamicMetadataProvider::get m_lock->rdlock(); } catch (exception& e) { - Category::getInstance(SAML_LOGCAT".MetadataProvider.Dynamic").error( - "error while resolving entityID (%s): %s", name.c_str(), e.what() - ); + log.error("error while resolving entityID (%s): %s", name.c_str(), e.what()); return entity; } @@ -153,14 +152,16 @@ pair DynamicMetadataProvider::get EntityDescriptor* DynamicMetadataProvider::resolve(const Criteria& criteria) const { string name; - if (criteria.entityID_ascii) + if (criteria.entityID_ascii) { name = criteria.entityID_ascii; + } else if (criteria.entityID_unicode) { auto_ptr_char temp(criteria.entityID_unicode); name = temp.get(); } - else if (criteria.artifact) - name = criteria.artifact->getSource(); + else if (criteria.artifact) { + throw MetadataException("Unable to resolve metadata dynamically from an artifact."); + } try { DOMDocument* doc=NULL; -- 2.1.4