#include <saml/SAMLConfig.h>
#include <saml/saml2/core/Assertions.h>
#include <saml/saml2/metadata/Metadata.h>
+#include <saml/saml2/metadata/MetadataCredentialCriteria.h>
#include <saml/saml2/metadata/MetadataProvider.h>
-#include <xmltooling/security/TrustEngine.h>
+#include <xmltooling/security/SignatureTrustEngine.h>
using namespace opensaml::saml2;
using namespace opensaml::saml2md;
janitor2.release();
Locker locker(metadataProvider.get());
- const EntityDescriptor* descriptor = metadataProvider->getEntityDescriptor("https://idp.example.org");
+ const EntityDescriptor* descriptor = metadataProvider->getEntityDescriptor(MetadataProvider::Criteria("https://idp.example.org")).first;
TSM_ASSERT("Retrieved entity descriptor was null", descriptor!=NULL);
RoleDescriptor* role=descriptor->getIDPSSODescriptors().front();
Signature* sig=assertion->getSignature();
TSM_ASSERT("Signature not present", sig!=NULL);
- TSM_ASSERT("Signature failed to validate.", trustEngine->validate(*sig, *role, metadataProvider->getKeyResolver()));
- descriptor = metadataProvider->getEntityDescriptor("https://idp2.example.org");
+ MetadataCredentialCriteria cc(*role);
+ cc.setPeerName("https://idp.example.org");
+ TSM_ASSERT("Signature failed to validate.", dynamic_cast<SignatureTrustEngine*>(trustEngine.get())->validate(*sig, *metadataProvider, &cc));
+
+ descriptor = metadataProvider->getEntityDescriptor(MetadataProvider::Criteria("https://idp2.example.org")).first;
TSM_ASSERT("Retrieved entity descriptor was null", descriptor!=NULL);
role=descriptor->getIDPSSODescriptors().front();
TSM_ASSERT("Role not present", role!=NULL);
- TSM_ASSERT("Signature validated.", !trustEngine->validate(*sig, *role, metadataProvider->getKeyResolver()));
+ MetadataCredentialCriteria cc2(*role);
+ cc2.setPeerName("https://idp2.example.org");
+ TSM_ASSERT("Signature validated.", !dynamic_cast<SignatureTrustEngine*>(trustEngine.get())->validate(*sig, *metadataProvider, &cc2));
}
};