Set peer name criteria for use with simple resolvers.
authorScott Cantor <cantor.2@osu.edu>
Mon, 2 Apr 2007 03:12:28 +0000 (03:12 +0000)
committerScott Cantor <cantor.2@osu.edu>
Mon, 2 Apr 2007 03:12:28 +0000 (03:12 +0000)
saml/saml2/metadata/MetadataCredentialCriteria.h

index 910b6f0..0a6a430 100644 (file)
 #define __saml_metacred_h__
 
 #include <saml/base.h>
+#include <saml/saml2/metadata/Metadata.h>
 #include <xmltooling/security/CredentialCriteria.h>
 
 namespace opensaml {
     namespace saml2md {
         
-        class SAML_API RoleDescriptor;
-        
         /**
          * Metadata-based CredentialCriteria subclass.
          */
@@ -42,7 +41,13 @@ namespace opensaml {
              *
              * @param role      source of metadata-supplied credentials
              */
-            MetadataCredentialCriteria(const RoleDescriptor& role) : m_role(role) {}
+            MetadataCredentialCriteria(const RoleDescriptor& role) : m_role(role) {
+                const EntityDescriptor* entity = dynamic_cast<const EntityDescriptor*>(role.getParent());
+                if (entity) {
+                    xmltooling::auto_ptr_char name(entity->getEntityID());
+                    setPeerName(name.get());
+                }
+            }
     
             virtual ~MetadataCredentialCriteria() {}