[cpp-opensaml COMMIT] in /branches/REL_2/saml/saml2/metadata: DiscoverableMetadataProvider.h impl/ChainingMetadataPro...

noreply at shibboleth.net noreply at shibboleth.net
Wed May 9 21:34:09 BST 2012


Author: scantor
Date: Wed May  9 21:34:09 2012
New Revision: 724

URL: http://svn.shibboleth.net/view/cpp-opensaml?rev=724&view=rev
Log:
https://issues.shibboleth.net/jira/browse/CPPOST-76

Modified:
    branches/REL_2/saml/saml2/metadata/DiscoverableMetadataProvider.h
    branches/REL_2/saml/saml2/metadata/impl/ChainingMetadataProvider.cpp
    branches/REL_2/saml/saml2/metadata/impl/DiscoverableMetadataProvider.cpp
    branches/REL_2/saml/saml2/metadata/impl/XMLMetadataProvider.cpp

Modified: branches/REL_2/saml/saml2/metadata/DiscoverableMetadataProvider.h
URL: http://svn.shibboleth.net/view/cpp-opensaml/branches/REL_2/saml/saml2/metadata/DiscoverableMetadataProvider.h?rev=724&r1=723&r2=724&view=diff
==============================================================================
--- branches/REL_2/saml/saml2/metadata/DiscoverableMetadataProvider.h (original)
+++ branches/REL_2/saml/saml2/metadata/DiscoverableMetadataProvider.h Wed May  9 21:34:09 2012
@@ -29,9 +29,18 @@
 
 #include <saml/saml2/metadata/MetadataProvider.h>
 
+#include <boost/shared_ptr.hpp>
+
 namespace opensaml {
     
+    namespace saml2 {
+        class SAML_API Attribute;
+    };
+
     namespace saml2md {
+
+        class SAML_API EntityAttributes;
+        class SAML_API EntityMatcher;
         
 #if defined (_MSC_VER)
         #pragma warning( push )
@@ -52,6 +61,15 @@
              *   <dt>legacyOrgNames</dt>
              *   <dd>true iff IdPs without a UIInfo extension should
              *      be identified using &lt;md:OrganizationDisplayName&gt;</dd>
+             *   <dt>entityAttributes</dt>
+             *   <dd>true iff tags found in &lt;mdattr:EntityAttributes&gt;
+             *      extensions should be included in the feed</dd>
+             *   <dt>&lt;DiscoveryFilter type="..." matcher="..." &gt;</dt>
+             *   <dd>Zero or more filters of type "Whitelist" or "Blacklist" that
+             *      affect which entities get exposed by the feed. The actual matching
+             *      is driven by an EntityMatcher plugin identified by the matcher
+             *      attribute. Other element content will be present to configure
+             *      that plugin.</dd>
              * </dl>
              *
              * @param e DOM to supply configuration for provider
@@ -96,8 +114,11 @@
         private:
             void discoEntity(std::string& s, const EntityDescriptor* entity, bool& first) const;
             void discoGroup(std::string& s, const EntitiesDescriptor* group, bool& first) const;
+            void discoEntityAttributes(std::string& s, const EntityAttributes& ea, bool& first) const;
+            void discoAttributes(std::string& s, const std::vector<saml2::Attribute*>& attrs, bool& first) const;
 
-            bool m_legacyOrgNames;
+            bool m_legacyOrgNames, m_entityAttributes;
+            std::vector< std::pair< bool, boost::shared_ptr<EntityMatcher> > > m_discoFilters;
         };
 
 #if defined (_MSC_VER)

Modified: branches/REL_2/saml/saml2/metadata/impl/ChainingMetadataProvider.cpp
URL: http://svn.shibboleth.net/view/cpp-opensaml/branches/REL_2/saml/saml2/metadata/impl/ChainingMetadataProvider.cpp?rev=724&r1=723&r2=724&view=diff
==============================================================================
--- branches/REL_2/saml/saml2/metadata/impl/ChainingMetadataProvider.cpp (original)
+++ branches/REL_2/saml/saml2/metadata/impl/ChainingMetadataProvider.cpp Wed May  9 21:34:09 2012
@@ -195,7 +195,7 @@
                 m_providers.push_back(provider.get());
                 provider.release();
             }
-            catch (exception& ex) {
+            catch (std::exception& ex) {
                 m_log.error("error building MetadataProvider: %s", ex.what());
             }
         }
@@ -214,7 +214,7 @@
         try {
             i->init();
         }
-        catch (exception& ex) {
+        catch (std::exception& ex) {
             m_log.crit("failure initializing MetadataProvider: %s", ex.what());
         }
     }

Modified: branches/REL_2/saml/saml2/metadata/impl/DiscoverableMetadataProvider.cpp
URL: http://svn.shibboleth.net/view/cpp-opensaml/branches/REL_2/saml/saml2/metadata/impl/DiscoverableMetadataProvider.cpp?rev=724&r1=723&r2=724&view=diff
==============================================================================
--- branches/REL_2/saml/saml2/metadata/impl/DiscoverableMetadataProvider.cpp (original)
+++ branches/REL_2/saml/saml2/metadata/impl/DiscoverableMetadataProvider.cpp Wed May  9 21:34:09 2012
@@ -26,25 +26,65 @@
 
 #include "internal.h"
 #include "binding/SAMLArtifact.h"
+#include "saml2/metadata/EntityMatcher.h"
 #include "saml2/metadata/Metadata.h"
 #include "saml2/metadata/DiscoverableMetadataProvider.h"
 
 #include <fstream>
 #include <sstream>
-#include <boost/bind.hpp>
+#include <boost/lambda/bind.hpp>
+#include <boost/lambda/casts.hpp>
+#include <boost/lambda/lambda.hpp>
 #include <boost/iterator/indirect_iterator.hpp>
 #include <xmltooling/logging.h>
 #include <xmltooling/XMLToolingConfig.h>
 
+using namespace opensaml::saml2;

[... 266 lines stripped ...]


More information about the commits mailing list