[cpp-opensaml] branch main updated: CPPOST-121 - Deprecate and replace sensitive terms

Scott Cantor cantor.2 at osu.edu
Wed Dec 2 19:13:26 UTC 2020


This is an automated email from the git hooks/post-receive script.

scantor pushed a commit to branch main
in repository cpp-opensaml.

View the commit online:
http://git.shibboleth.net/view/?p=cpp-opensaml.git;a=commit;h=914e4450edc2f5946b471ef917c0bad9577f4430

The following commit(s) were added to refs/heads/main by this push:
       new  914e445   CPPOST-121 - Deprecate and replace sensitive terms
914e445 is described below

commit 914e4450edc2f5946b471ef917c0bad9577f4430
Author: Scott Cantor <cantor.2 at osu.edu>
AuthorDate: Wed Dec 2 14:12:43 2020 -0500

    CPPOST-121 - Deprecate and replace sensitive terms
    
    https://issues.shibboleth.net/jira/browse/CPPOST-121
---
 Projects/vc15/saml/saml.vcxproj                    |  6 +--
 Projects/vc15/saml/saml.vcxproj.filters            | 12 ++---
 saml/Makefile.am                                   |  4 +-
 saml/saml2/metadata/DiscoverableMetadataProvider.h |  2 +-
 saml/saml2/metadata/MetadataFilter.h               | 12 +++--
 .../metadata/impl/DiscoverableMetadataProvider.cpp | 21 ++++++--
 .../metadata/impl/EntityRoleMetadataFilter.cpp     |  2 +-
 ...etadataFilter.cpp => ExcludeMetadataFilter.cpp} | 32 +++++------
 ...etadataFilter.cpp => IncludeMetadataFilter.cpp} | 34 ++++++------
 saml/saml2/metadata/impl/MetadataProvider.cpp      | 62 +++++++++++++---------
 .../{XMLWithWhitelists.xml => XMLWithIncludes.xml} |  2 +-
 samltest/saml2/metadata/XMLMetadataProviderTest.h  |  4 +-
 12 files changed, 110 insertions(+), 83 deletions(-)

diff --git a/Projects/vc15/saml/saml.vcxproj b/Projects/vc15/saml/saml.vcxproj
index 38c3d2d..0d73c3f 100644
--- a/Projects/vc15/saml/saml.vcxproj
+++ b/Projects/vc15/saml/saml.vcxproj
@@ -196,7 +196,9 @@
     <ClCompile Include="..\..\..\saml\saml2\metadata\impl\DiscoverableMetadataProvider.cpp" />
     <ClCompile Include="..\..\..\saml\saml2\metadata\impl\EntityAttributesEntityMatcher.cpp" />
     <ClCompile Include="..\..\..\saml\saml2\metadata\impl\EntityAttributesMetadataFilter.cpp" />
+    <ClCompile Include="..\..\..\saml\saml2\metadata\impl\ExcludeMetadataFilter.cpp" />
     <ClCompile Include="..\..\..\saml\saml2\metadata\impl\FolderMetadataProvider.cpp" />
+    <ClCompile Include="..\..\..\saml\saml2\metadata\impl\IncludeMetadataFilter.cpp" />
     <ClCompile Include="..\..\..\saml\saml2\metadata\impl\NameEntityMatcher.cpp" />
     <ClCompile Include="..\..\..\saml\saml2\metadata\impl\RegistrationAuthorityEntityMatcher.cpp" />
     <ClCompile Include="..\..\..\saml\SAMLConfig.cpp" />
@@ -225,7 +227,6 @@
     <ClCompile Include="..\..\..\saml\saml2\core\impl\Protocols20Impl.cpp" />
     <ClCompile Include="..\..\..\saml\saml2\core\impl\Protocols20SchemaValidators.cpp" />
     <ClCompile Include="..\..\..\saml\saml2\metadata\impl\AbstractMetadataProvider.cpp" />
-    <ClCompile Include="..\..\..\saml\saml2\metadata\impl\BlacklistMetadataFilter.cpp" />
     <ClCompile Include="..\..\..\saml\saml2\metadata\impl\ChainingMetadataProvider.cpp" />
     <ClCompile Include="..\..\..\saml\saml2\metadata\impl\LocalDynamicMetadataProvider.cpp" />
     <ClCompile Include="..\..\..\saml\saml2\metadata\impl\EntityRoleMetadataFilter.cpp" />
@@ -238,7 +239,6 @@
     <ClCompile Include="..\..\..\saml\saml2\metadata\impl\ObservableMetadataProvider.cpp" />
     <ClCompile Include="..\..\..\saml\saml2\metadata\impl\RequireValidUntilMetadataFilter.cpp" />
     <ClCompile Include="..\..\..\saml\saml2\metadata\impl\SignatureMetadataFilter.cpp" />
-    <ClCompile Include="..\..\..\saml\saml2\metadata\impl\WhitelistMetadataFilter.cpp" />
     <ClCompile Include="..\..\..\saml\saml2\metadata\impl\XMLMetadataProvider.cpp" />
     <ClCompile Include="..\..\..\saml\saml2\binding\impl\SAML2Artifact.cpp">
       <ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)%(Filename)1.obj</ObjectFileName>
@@ -348,4 +348,4 @@
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
   <ImportGroup Label="ExtensionTargets">
   </ImportGroup>
-</Project>
+</Project>
\ No newline at end of file
diff --git a/Projects/vc15/saml/saml.vcxproj.filters b/Projects/vc15/saml/saml.vcxproj.filters
index bc13cb4..f626cd2 100644
--- a/Projects/vc15/saml/saml.vcxproj.filters
+++ b/Projects/vc15/saml/saml.vcxproj.filters
@@ -198,9 +198,6 @@
     <ClCompile Include="..\..\..\saml\saml2\metadata\impl\AbstractMetadataProvider.cpp">
       <Filter>Source Files\saml2\metadata\impl</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\..\saml\saml2\metadata\impl\BlacklistMetadataFilter.cpp">
-      <Filter>Source Files\saml2\metadata\impl</Filter>
-    </ClCompile>
     <ClCompile Include="..\..\..\saml\saml2\metadata\impl\ChainingMetadataProvider.cpp">
       <Filter>Source Files\saml2\metadata\impl</Filter>
     </ClCompile>
@@ -234,9 +231,6 @@
     <ClCompile Include="..\..\..\saml\saml2\metadata\impl\SignatureMetadataFilter.cpp">
       <Filter>Source Files\saml2\metadata\impl</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\..\saml\saml2\metadata\impl\WhitelistMetadataFilter.cpp">
-      <Filter>Source Files\saml2\metadata\impl</Filter>
-    </ClCompile>
     <ClCompile Include="..\..\..\saml\saml2\metadata\impl\XMLMetadataProvider.cpp">
       <Filter>Source Files\saml2\metadata\impl</Filter>
     </ClCompile>
@@ -366,6 +360,12 @@
     <ClCompile Include="..\..\..\saml\saml2\binding\impl\SAML2MessageEncoder.cpp">
       <Filter>Source Files\saml2\binding\impl</Filter>
     </ClCompile>
+    <ClCompile Include="..\..\..\saml\saml2\metadata\impl\ExcludeMetadataFilter.cpp">
+      <Filter>Source Files\saml2\metadata\impl</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\saml\saml2\metadata\impl\IncludeMetadataFilter.cpp">
+      <Filter>Source Files\saml2\metadata\impl</Filter>
+    </ClCompile>
   </ItemGroup>
   <ItemGroup>
     <ClInclude Include="..\..\..\saml\Assertion.h">
diff --git a/saml/Makefile.am b/saml/Makefile.am
index d3c02d9..15949f6 100644
--- a/saml/Makefile.am
+++ b/saml/Makefile.am
@@ -133,7 +133,6 @@ libsaml_la_SOURCES = \
 	saml2/core/impl/Protocols20Impl.cpp \
 	saml2/core/impl/Protocols20SchemaValidators.cpp \
 	saml2/metadata/impl/AbstractMetadataProvider.cpp \
-	saml2/metadata/impl/BlacklistMetadataFilter.cpp \
 	saml2/metadata/impl/ChainingMetadataProvider.cpp \
 	saml2/metadata/impl/DiscoverableMetadataProvider.cpp \
 	saml2/metadata/impl/AbstractDynamicMetadataProvider.cpp \
@@ -150,10 +149,11 @@ libsaml_la_SOURCES = \
 	saml2/metadata/impl/NameEntityMatcher.cpp \
 	saml2/metadata/impl/NullMetadataProvider.cpp \
 	saml2/metadata/impl/ObservableMetadataProvider.cpp \
+	saml2/metadata/impl/ExcludeMetadataFilter.cpp \
+	saml2/metadata/impl/IncludeMetadataFilter.cpp \
 	saml2/metadata/impl/RequireValidUntilMetadataFilter.cpp \
 	saml2/metadata/impl/SignatureMetadataFilter.cpp \
 	saml2/metadata/impl/RegistrationAuthorityEntityMatcher.cpp \
-	saml2/metadata/impl/WhitelistMetadataFilter.cpp \
 	saml2/metadata/impl/XMLMetadataProvider.cpp \
 	saml2/binding/impl/SAML2Artifact.cpp \
 	saml2/binding/impl/SAML2ArtifactType0004.cpp \
diff --git a/saml/saml2/metadata/DiscoverableMetadataProvider.h b/saml/saml2/metadata/DiscoverableMetadataProvider.h
index 0723daf..16bb832 100644
--- a/saml/saml2/metadata/DiscoverableMetadataProvider.h
+++ b/saml/saml2/metadata/DiscoverableMetadataProvider.h
@@ -65,7 +65,7 @@ namespace opensaml {
              *   <dd>true iff tags found in <mdattr:EntityAttributes>
              *      extensions should be included in the feed</dd>
              *   <dt><DiscoveryFilter type="..." matcher="..." ></dt>
-             *   <dd>Zero or more filters of type "Whitelist" or "Blacklist" that
+             *   <dd>Zero or more filters of type "Include" or "Exclude" 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
diff --git a/saml/saml2/metadata/MetadataFilter.h b/saml/saml2/metadata/MetadataFilter.h
index 10c47c0..e923dc8 100644
--- a/saml/saml2/metadata/MetadataFilter.h
+++ b/saml/saml2/metadata/MetadataFilter.h
@@ -114,12 +114,18 @@ namespace opensaml {
          */
         void SAML_API registerMetadataFilters();
 
-        /** MetadataFilter that deletes blacklisted entities. */
+        /** MetadataFilter that deletes blacklisted entities. @deprecated */
         #define BLACKLIST_METADATA_FILTER           "Blacklist"
 
-        /** MetadataFilter that deletes all but whitelisted entities. */
+        /** MetadataFilter that deletes all but whitelisted entities. @deprecated */
         #define WHITELIST_METADATA_FILTER           "Whitelist"
 
+        /** MetadataFilter that deletes entities. */
+        #define EXCLUDE_METADATA_FILTER             "Exclude"
+
+        /** MetadataFilter that deletes all but included entities. */
+        #define INCLUDE_METADATA_FILTER             "Include"
+
         /** MetadataFilter that verifies signatures and filters out any that don't pass. */
         #define SIGNATURE_METADATA_FILTER           "Signature"
 
@@ -127,7 +133,7 @@ namespace opensaml {
         #define REQUIREVALIDUNTIL_METADATA_FILTER   "RequireValidUntil"
 
         /** MetadataFilter that removes non-retained roles. */
-        #define ENTITYROLE_METADATA_FILTER          "EntityRoleWhiteList"
+        #define ENTITYROLE_METADATA_FILTER          "EntityRole"
 
         /** MetadataFilter that adds EntityAttributes extension. */
         #define ENTITYATTR_METADATA_FILTER          "EntityAttributes"
diff --git a/saml/saml2/metadata/impl/DiscoverableMetadataProvider.cpp b/saml/saml2/metadata/impl/DiscoverableMetadataProvider.cpp
index 58c121f..b16b2ab 100644
--- a/saml/saml2/metadata/impl/DiscoverableMetadataProvider.cpp
+++ b/saml/saml2/metadata/impl/DiscoverableMetadataProvider.cpp
@@ -62,21 +62,32 @@ DiscoverableMetadataProvider::DiscoverableMetadataProvider(const DOMElement* e,
     e = e ? XMLHelper::getFirstChildElement(e, DiscoveryFilter) : nullptr;
     while (e) {
         string t(XMLHelper::getAttrString(e, nullptr, _type));
-        if (t == "Whitelist" || t == "Blacklist") {
+        if (t == "Include" || t == "Exclude" || t == "Whitelist" || t == "Blacklist") {
             string m(XMLHelper::getAttrString(e, nullptr, matcher));
             if (!m.empty()) {
+                
+                if (t == "Whitelist") {
+                    Category::getInstance(SAML_LOGCAT ".MetadataProvider.Discoverable").warn(
+                        "DEPRECATED: DiscoveryFilter type=\"Whitelist\" replaced by type=\"Include\"");
+                }
+                else if (t == "Blacklist") {
+                    Category::getInstance(SAML_LOGCAT ".MetadataProvider.Discoverable").warn(
+                        "DEPRECATED: DiscoveryFilter type=\"Blacklist\" replaced by type=\"Exclude\"");
+                }
+
                 try {
                     boost::shared_ptr<EntityMatcher> temp(SAMLConfig::getConfig().EntityMatcherManager.newPlugin(m, e, deprecationSupport));
-                    m_discoFilters.push_back(make_pair(t == "Whitelist", temp));
+                    m_discoFilters.push_back(make_pair(t == "Include" || t == "Whitelist", temp));
                 }
-                catch (std::exception& ex) {
+                catch (const std::exception& ex) {
                     Category::getInstance(SAML_LOGCAT ".MetadataProvider.Discoverable").error(
                         "exception creating <DiscoveryFilter> EntityMatcher: %s", ex.what()
                         );
                 }
             }
             else {
-                Category::getInstance(SAML_LOGCAT ".MetadataProvider.Discoverable").error("<DiscoveryFilter> requires matcher attribute");
+                Category::getInstance(SAML_LOGCAT ".MetadataProvider.Discoverable").error(
+                    "<DiscoveryFilter> requires matcher attribute");
             }
         }
         else {
@@ -164,7 +175,7 @@ void DiscoverableMetadataProvider::discoEntity(string& s, const EntityDescriptor
 
         // Check filter(s).
         for (vector< pair < bool, boost::shared_ptr<EntityMatcher> > >::const_iterator f = m_discoFilters.begin(); f != m_discoFilters.end(); ++f) {
-            // The flag is true for a whitelist and false for a blacklist,
+            // The flag is true for an include and false for an exclude,
             // so we omit the entity if the match outcome is the inverse.
             if (f->first != f->second->matches(*entity))
                 return;
diff --git a/saml/saml2/metadata/impl/EntityRoleMetadataFilter.cpp b/saml/saml2/metadata/impl/EntityRoleMetadataFilter.cpp
index a341276..aff30cc 100644
--- a/saml/saml2/metadata/impl/EntityRoleMetadataFilter.cpp
+++ b/saml/saml2/metadata/impl/EntityRoleMetadataFilter.cpp
@@ -21,7 +21,7 @@
 /**
  * EntityRoleMetadataFilter.cpp
  *
- * Removes non-whitelisted roles from a metadata instance.
+ * Removes non-included roles from a metadata instance.
  */
 
 #include "internal.h"
diff --git a/saml/saml2/metadata/impl/BlacklistMetadataFilter.cpp b/saml/saml2/metadata/impl/ExcludeMetadataFilter.cpp
similarity index 74%
rename from saml/saml2/metadata/impl/BlacklistMetadataFilter.cpp
rename to saml/saml2/metadata/impl/ExcludeMetadataFilter.cpp
index fcad287..50e82f9 100644
--- a/saml/saml2/metadata/impl/BlacklistMetadataFilter.cpp
+++ b/saml/saml2/metadata/impl/ExcludeMetadataFilter.cpp
@@ -19,9 +19,9 @@
  */
 
 /**
- * BlacklistMetadataFilter.cpp
+ * ExcludeMetadataFilter.cpp
  * 
- * Removes blacklisted entities from a metadata instance
+ * Removes excluded entities from a metadata instance
  */
 
 #include "internal.h"
@@ -41,13 +41,13 @@ using namespace std;
 
 namespace opensaml {
     namespace saml2md {
-        class SAML_DLLLOCAL BlacklistMetadataFilter : public MetadataFilter
+        class SAML_DLLLOCAL ExcludeMetadataFilter : public MetadataFilter
         {
         public:
-            BlacklistMetadataFilter(const DOMElement* e, bool deprecationSupport=true);
-            ~BlacklistMetadataFilter() {}
+            ExcludeMetadataFilter(const DOMElement* e, bool deprecationSupport=true);
+            ~ExcludeMetadataFilter() {}
             
-            const char* getId() const { return BLACKLIST_METADATA_FILTER; }
+            const char* getId() const { return EXCLUDE_METADATA_FILTER; }
             void doFilter(const MetadataFilterContext* ctx, XMLObject& xmlObject) const;
 
         private:
@@ -58,9 +58,9 @@ namespace opensaml {
             scoped_ptr<EntityMatcher> m_matcher;
         }; 
 
-        MetadataFilter* SAML_DLLLOCAL BlacklistMetadataFilterFactory(const DOMElement* const & e, bool deprecationSupport)
+        MetadataFilter* SAML_DLLLOCAL ExcludeMetadataFilterFactory(const DOMElement* const & e, bool deprecationSupport)
         {
-            return new BlacklistMetadataFilter(e);
+            return new ExcludeMetadataFilter(e);
         }
 
         static const XMLCh Exclude[] = UNICODE_LITERAL_7(E,x,c,l,u,d,e);
@@ -69,7 +69,7 @@ namespace opensaml {
 };
 
 
-BlacklistMetadataFilter::BlacklistMetadataFilter(const DOMElement* e, bool deprecationSupport)
+ExcludeMetadataFilter::ExcludeMetadataFilter(const DOMElement* e, bool deprecationSupport)
 {
     string matcher(XMLHelper::getAttrString(e, nullptr, _matcher));
     if (!matcher.empty())
@@ -86,29 +86,29 @@ BlacklistMetadataFilter::BlacklistMetadataFilter(const DOMElement* e, bool depre
     }
 }
 
-void BlacklistMetadataFilter::doFilter(const MetadataFilterContext* ctx, XMLObject& xmlObject) const
+void ExcludeMetadataFilter::doFilter(const MetadataFilterContext* ctx, XMLObject& xmlObject) const
 {
     EntitiesDescriptor* group = dynamic_cast<EntitiesDescriptor*>(&xmlObject);
     if (group) {
         if (group->getName() && !m_entities.empty() && m_entities.count(group->getName()) > 0)
-            throw MetadataFilterException(BLACKLIST_METADATA_FILTER " MetadataFilter instructed to filter the root group in the metadata.");
+            throw MetadataFilterException(EXCLUDE_METADATA_FILTER " MetadataFilter instructed to filter the root group in the metadata.");
         filterGroup(group);
     }
     else {
         EntityDescriptor* entity = dynamic_cast<EntityDescriptor*>(&xmlObject);
         if (entity) {
             if (included(*entity))
-                throw MetadataFilterException(BLACKLIST_METADATA_FILTER " MetadataFilter instructed to filter the root/only entity in the metadata.");
+                throw MetadataFilterException(EXCLUDE_METADATA_FILTER " MetadataFilter instructed to filter the root/only entity in the metadata.");
         }
         else {
-            throw MetadataFilterException(BLACKLIST_METADATA_FILTER " MetadataFilter was given an improper metadata instance to filter.");
+            throw MetadataFilterException(EXCLUDE_METADATA_FILTER " MetadataFilter was given an improper metadata instance to filter.");
         }
     }
 }
 
-void BlacklistMetadataFilter::filterGroup(EntitiesDescriptor* entities) const
+void ExcludeMetadataFilter::filterGroup(EntitiesDescriptor* entities) const
 {
-    Category& log = Category::getInstance(SAML_LOGCAT ".MetadataFilter." WHITELIST_METADATA_FILTER);
+    Category& log = Category::getInstance(SAML_LOGCAT ".MetadataFilter." EXCLUDE_METADATA_FILTER);
 
     VectorOf(EntityDescriptor) v = entities->getEntityDescriptors();
     for (VectorOf(EntityDescriptor)::size_type i = 0; i < v.size(); ) {
@@ -137,7 +137,7 @@ void BlacklistMetadataFilter::filterGroup(EntitiesDescriptor* entities) const
     }
 }
 
-bool BlacklistMetadataFilter::included(const EntityDescriptor& entity) const
+bool ExcludeMetadataFilter::included(const EntityDescriptor& entity) const
 {
     // Check for entityID.
     if (entity.getEntityID() && !m_entities.empty() && m_entities.count(entity.getEntityID()) > 0)
diff --git a/saml/saml2/metadata/impl/WhitelistMetadataFilter.cpp b/saml/saml2/metadata/impl/IncludeMetadataFilter.cpp
similarity index 71%
rename from saml/saml2/metadata/impl/WhitelistMetadataFilter.cpp
rename to saml/saml2/metadata/impl/IncludeMetadataFilter.cpp
index 436e0b0..3e553d0 100644
--- a/saml/saml2/metadata/impl/WhitelistMetadataFilter.cpp
+++ b/saml/saml2/metadata/impl/IncludeMetadataFilter.cpp
@@ -19,9 +19,9 @@
  */
 
 /**
- * WhitelistMetadataFilter.cpp
+ * IncludeMetadataFilter.cpp
  *
- * Removes non-whitelisted entities from a metadata instance
+ * Removes non-included entities from a metadata instance
  */
 
 #include "internal.h"
@@ -43,13 +43,13 @@ using namespace std;
 
 namespace opensaml {
     namespace saml2md {
-        class SAML_DLLLOCAL WhitelistMetadataFilter : public MetadataFilter
+        class SAML_DLLLOCAL IncludeMetadataFilter : public MetadataFilter
         {
         public:
-            WhitelistMetadataFilter(const DOMElement* e, bool deprecationSupport=true);
-            ~WhitelistMetadataFilter() {}
+            IncludeMetadataFilter(const DOMElement* e, bool deprecationSupport=true);
+            ~IncludeMetadataFilter() {}
 
-            const char* getId() const { return WHITELIST_METADATA_FILTER; }
+            const char* getId() const { return INCLUDE_METADATA_FILTER; }
             void doFilter(const MetadataFilterContext* ctx, XMLObject& xmlObject) const;
 
         private:
@@ -60,9 +60,9 @@ namespace opensaml {
             scoped_ptr<EntityMatcher> m_matcher;
         };
 
-        MetadataFilter* SAML_DLLLOCAL WhitelistMetadataFilterFactory(const DOMElement* const & e, bool deprecationSupport)
+        MetadataFilter* SAML_DLLLOCAL IncludeMetadataFilterFactory(const DOMElement* const & e, bool deprecationSupport)
         {
-            return new WhitelistMetadataFilter(e);
+            return new IncludeMetadataFilter(e);
         }
 
         static const XMLCh Include[] = UNICODE_LITERAL_7(I,n,c,l,u,d,e);
@@ -71,7 +71,7 @@ namespace opensaml {
 };
 
 
-WhitelistMetadataFilter::WhitelistMetadataFilter(const DOMElement* e, bool deprecationSupport)
+IncludeMetadataFilter::IncludeMetadataFilter(const DOMElement* e, bool deprecationSupport)
 {
     string matcher(XMLHelper::getAttrString(e, nullptr, _matcher));
     if (!matcher.empty())
@@ -88,7 +88,7 @@ WhitelistMetadataFilter::WhitelistMetadataFilter(const DOMElement* e, bool depre
     }
 }
 
-void WhitelistMetadataFilter::doFilter(const MetadataFilterContext* ctx, XMLObject& xmlObject) const
+void IncludeMetadataFilter::doFilter(const MetadataFilterContext* ctx, XMLObject& xmlObject) const
 {
     EntitiesDescriptor* group = dynamic_cast<EntitiesDescriptor*>(&xmlObject);
     if (group) {
@@ -98,23 +98,23 @@ void WhitelistMetadataFilter::doFilter(const MetadataFilterContext* ctx, XMLObje
         EntityDescriptor* entity = dynamic_cast<EntityDescriptor*>(&xmlObject);
         if (entity) {
             if (!included(*entity))
-                throw MetadataFilterException(WHITELIST_METADATA_FILTER " MetadataFilter instructed to filter the root/only entity in the metadata.");
+                throw MetadataFilterException(INCLUDE_METADATA_FILTER " MetadataFilter instructed to filter the root/only entity in the metadata.");
         }
         else {
-            throw MetadataFilterException(WHITELIST_METADATA_FILTER " MetadataFilter was given an improper metadata instance to filter.");
+            throw MetadataFilterException(INCLUDE_METADATA_FILTER " MetadataFilter was given an improper metadata instance to filter.");
         }
     }
 }
 
-void WhitelistMetadataFilter::filterGroup(EntitiesDescriptor* entities) const
+void IncludeMetadataFilter::filterGroup(EntitiesDescriptor* entities) const
 {
-    Category& log = Category::getInstance(SAML_LOGCAT ".MetadataFilter." WHITELIST_METADATA_FILTER);
+    Category& log = Category::getInstance(SAML_LOGCAT ".MetadataFilter." INCLUDE_METADATA_FILTER);
 
     VectorOf(EntityDescriptor) v = entities->getEntityDescriptors();
     for (VectorOf(EntityDescriptor)::size_type i = 0; i < v.size(); ) {
         if (!included(*v[i])) {
             auto_ptr_char id(v[i]->getEntityID());
-            log.info("filtering out non-whitelisted entity (%s)", id.get());
+            log.info("filtering out non-included entity (%s)", id.get());
             v.erase(v.begin() + i);
         }
         else {
@@ -123,10 +123,10 @@ void WhitelistMetadataFilter::filterGroup(EntitiesDescriptor* entities) const
     }
 
     const vector<EntitiesDescriptor*>& groups = const_cast<const EntitiesDescriptor*>(entities)->getEntitiesDescriptors();
-    for_each(groups.begin(), groups.end(), boost::bind(&WhitelistMetadataFilter::filterGroup, this, _1));
+    for_each(groups.begin(), groups.end(), boost::bind(&IncludeMetadataFilter::filterGroup, this, _1));
 }
 
-bool WhitelistMetadataFilter::included(const EntityDescriptor& entity) const
+bool IncludeMetadataFilter::included(const EntityDescriptor& entity) const
 {
     // Check for entityID.
     if (entity.getEntityID() && !m_entities.empty() && m_entities.count(entity.getEntityID()) > 0)
diff --git a/saml/saml2/metadata/impl/MetadataProvider.cpp b/saml/saml2/metadata/impl/MetadataProvider.cpp
index a65e720..01ef9ef 100644
--- a/saml/saml2/metadata/impl/MetadataProvider.cpp
+++ b/saml/saml2/metadata/impl/MetadataProvider.cpp
@@ -52,8 +52,8 @@ namespace opensaml {
         SAML_DLLLOCAL PluginManager<MetadataProvider,string,const DOMElement*>::Factory ChainingMetadataProviderFactory;
         SAML_DLLLOCAL PluginManager<MetadataProvider,string,const DOMElement*>::Factory FolderMetadataProviderFactory;
         SAML_DLLLOCAL PluginManager<MetadataProvider,string,const DOMElement*>::Factory NullMetadataProviderFactory;
-        SAML_DLLLOCAL PluginManager<MetadataFilter,string,const DOMElement*>::Factory BlacklistMetadataFilterFactory;
-        SAML_DLLLOCAL PluginManager<MetadataFilter,string,const DOMElement*>::Factory WhitelistMetadataFilterFactory;
+        SAML_DLLLOCAL PluginManager<MetadataFilter,string,const DOMElement*>::Factory ExcludeMetadataFilterFactory;
+        SAML_DLLLOCAL PluginManager<MetadataFilter,string,const DOMElement*>::Factory IncludeMetadataFilterFactory;
         SAML_DLLLOCAL PluginManager<MetadataFilter,string,const DOMElement*>::Factory SignatureMetadataFilterFactory;
         SAML_DLLLOCAL PluginManager<MetadataFilter,string,const DOMElement*>::Factory RequireValidUntilMetadataFilterFactory;
         SAML_DLLLOCAL PluginManager<MetadataFilter,string,const DOMElement*>::Factory EntityRoleMetadataFilterFactory;
@@ -73,24 +73,29 @@ void SAML_API opensaml::saml2md::registerMetadataProviders()
 
 void SAML_API opensaml::saml2md::registerMetadataFilters()
 {
-    SAMLConfig::getConfig().MetadataFilterManager.registerFactory(BLACKLIST_METADATA_FILTER, BlacklistMetadataFilterFactory);
-    SAMLConfig::getConfig().MetadataFilterManager.registerFactory(WHITELIST_METADATA_FILTER, WhitelistMetadataFilterFactory);
+    SAMLConfig::getConfig().MetadataFilterManager.registerFactory(EXCLUDE_METADATA_FILTER, ExcludeMetadataFilterFactory);
+    SAMLConfig::getConfig().MetadataFilterManager.registerFactory(INCLUDE_METADATA_FILTER, IncludeMetadataFilterFactory);
     SAMLConfig::getConfig().MetadataFilterManager.registerFactory(SIGNATURE_METADATA_FILTER, SignatureMetadataFilterFactory);
     SAMLConfig::getConfig().MetadataFilterManager.registerFactory(REQUIREVALIDUNTIL_METADATA_FILTER, RequireValidUntilMetadataFilterFactory);
     // additional name matching Java code
     SAMLConfig::getConfig().MetadataFilterManager.registerFactory("RequiredValidUntil", RequireValidUntilMetadataFilterFactory);
     SAMLConfig::getConfig().MetadataFilterManager.registerFactory(ENTITYROLE_METADATA_FILTER, EntityRoleMetadataFilterFactory);
     SAMLConfig::getConfig().MetadataFilterManager.registerFactory(ENTITYATTR_METADATA_FILTER, EntityAttributesMetadataFilterFactory);
-
+    
+    // Deprecated names.
+    SAMLConfig::getConfig().MetadataFilterManager.registerFactory(BLACKLIST_METADATA_FILTER, ExcludeMetadataFilterFactory);
+    SAMLConfig::getConfig().MetadataFilterManager.registerFactory(WHITELIST_METADATA_FILTER, IncludeMetadataFilterFactory);
+    SAMLConfig::getConfig().MetadataFilterManager.registerFactory("EntityRoleWhitelist", EntityRoleMetadataFilterFactory);
 }
 
-static const XMLCh _MetadataFilter[] =  UNICODE_LITERAL_14(M,e,t,a,d,a,t,a,F,i,l,t,e,r);
-static const XMLCh Blacklist[] =        UNICODE_LITERAL_23(B,l,a,c,k,l,i,s,t,M,e,t,a,d,a,t,a,F,i,l,t,e,r);
-static const XMLCh Whitelist[] =        UNICODE_LITERAL_23(W,h,i,t,e,l,i,s,t,M,e,t,a,d,a,t,a,F,i,l,t,e,r);
-static const XMLCh SigFilter[] =        UNICODE_LITERAL_23(S,i,g,n,a,t,u,r,e,M,e,t,a,d,a,t,a,F,i,l,t,e,r);
-static const XMLCh Exclude[] =          UNICODE_LITERAL_7(E,x,c,l,u,d,e);
-static const XMLCh Include[] =          UNICODE_LITERAL_7(I,n,c,l,u,d,e);
-static const XMLCh _type[] =            UNICODE_LITERAL_4(t,y,p,e);
+static const XMLCh _MetadataFilter[] =      UNICODE_LITERAL_14(M,e,t,a,d,a,t,a,F,i,l,t,e,r);
+static const XMLCh BlacklistMF[] =          UNICODE_LITERAL_23(B,l,a,c,k,l,i,s,t,M,e,t,a,d,a,t,a,F,i,l,t,e,r);
+static const XMLCh WhitelistMF[] =          UNICODE_LITERAL_23(W,h,i,t,e,l,i,s,t,M,e,t,a,d,a,t,a,F,i,l,t,e,r);
+static const XMLCh SigFilter[] =            UNICODE_LITERAL_23(S,i,g,n,a,t,u,r,e,M,e,t,a,d,a,t,a,F,i,l,t,e,r);
+static const XMLCh EntityRoleWhitelist[] =  UNICODE_LITERAL_19(E,n,t,i,t,y,R,o,l,e,W,h,i,t,e,L,i,s,t);
+static const XMLCh Exclude[] =              UNICODE_LITERAL_7(E,x,c,l,u,d,e);
+static const XMLCh Include[] =              UNICODE_LITERAL_7(I,n,c,l,u,d,e);
+static const XMLCh _type[] =                UNICODE_LITERAL_4(t,y,p,e);
 
 MetadataProvider::MetadataProvider() { throw MetadataException("Illegal constructor call"); }
 
@@ -117,30 +122,35 @@ MetadataProvider::MetadataProvider(const DOMElement* e, bool deprecationSupport)
                 log.error("MetadataFilter element missing type attribute");
             }
         }
+        else if (deprecationSupport && XMLString::equals(child->getLocalName(), EntityRoleWhitelist)) {
+            log.warn("DEPRECATED: type=\"EntityRoleWhiteList\" replaced by type=\"%s\"", ENTITYROLE_METADATA_FILTER);
+            log.info("building MetadataFilter of type %s", ENTITYROLE_METADATA_FILTER);
+            m_filters.push_back(conf.MetadataFilterManager.newPlugin(ENTITYROLE_METADATA_FILTER, child, deprecationSupport));
+        }
         else if (deprecationSupport && XMLString::equals(child->getLocalName(), SigFilter)) {
             log.warn("DEPRECATED: <SignatureMetadataFilter> replaced by type=\"%s\"", SIGNATURE_METADATA_FILTER);
             log.info("building MetadataFilter of type %s", SIGNATURE_METADATA_FILTER);
             m_filters.push_back(conf.MetadataFilterManager.newPlugin(SIGNATURE_METADATA_FILTER, child, deprecationSupport));
         }
-        else if (deprecationSupport && XMLString::equals(child->getLocalName(), Whitelist)) {
-            log.warn("DEPRECATED: <WhitelistMetadataFilter> replaced by type=\"%s\"", WHITELIST_METADATA_FILTER);
-            log.info("building MetadataFilter of type %s", WHITELIST_METADATA_FILTER);
-            m_filters.push_back(conf.MetadataFilterManager.newPlugin(WHITELIST_METADATA_FILTER, child, deprecationSupport));
+        else if (deprecationSupport && XMLString::equals(child->getLocalName(), WhitelistMF)) {
+            log.warn("DEPRECATED: <WhitelistMetadataFilter> replaced by type=\"%s\"", INCLUDE_METADATA_FILTER);
+            log.info("building MetadataFilter of type %s", INCLUDE_METADATA_FILTER);
+            m_filters.push_back(conf.MetadataFilterManager.newPlugin(INCLUDE_METADATA_FILTER, child, deprecationSupport));
         }
-        else if (deprecationSupport && XMLString::equals(child->getLocalName(), Blacklist)) {
-            log.warn("DEPRECATED: <BlacklistMetadataFilter> replaced by type=\"%s\"", BLACKLIST_METADATA_FILTER);
-            log.info("building MetadataFilter of type %s", BLACKLIST_METADATA_FILTER);
-            m_filters.push_back(conf.MetadataFilterManager.newPlugin(BLACKLIST_METADATA_FILTER, child, deprecationSupport));
+        else if (deprecationSupport && XMLString::equals(child->getLocalName(), BlacklistMF)) {
+            log.warn("DEPRECATED: <BlacklistMetadataFilter> replaced by type=\"%s\"", EXCLUDE_METADATA_FILTER);
+            log.info("building MetadataFilter of type %s", EXCLUDE_METADATA_FILTER);
+            m_filters.push_back(conf.MetadataFilterManager.newPlugin(EXCLUDE_METADATA_FILTER, child, deprecationSupport));
         }
         else if (deprecationSupport && XMLString::equals(child->getLocalName(), Include)) {
-            log.warn("DEPRECATED: <Include> replaced by type=\"%s\"", WHITELIST_METADATA_FILTER);
-            log.info("building MetadataFilter of type %s", WHITELIST_METADATA_FILTER);
-            m_filters.push_back(conf.MetadataFilterManager.newPlugin(WHITELIST_METADATA_FILTER, e, deprecationSupport));
+            log.warn("DEPRECATED: <Include> replaced by type=\"%s\"", INCLUDE_METADATA_FILTER);
+            log.info("building MetadataFilter of type %s", INCLUDE_METADATA_FILTER);
+            m_filters.push_back(conf.MetadataFilterManager.newPlugin(INCLUDE_METADATA_FILTER, e, deprecationSupport));
         }
         else if (deprecationSupport && XMLString::equals(child->getLocalName(), Exclude)) {
-            log.warn("DEPRECATED: replaced by type=\"%s\"", BLACKLIST_METADATA_FILTER);
-            log.info("building MetadataFilter of type %s", BLACKLIST_METADATA_FILTER);
-            m_filters.push_back(conf.MetadataFilterManager.newPlugin(BLACKLIST_METADATA_FILTER, e, deprecationSupport));
+            log.warn("DEPRECATED: <Exclude> replaced by type=\"%s\"", EXCLUDE_METADATA_FILTER);
+            log.info("building MetadataFilter of type %s", EXCLUDE_METADATA_FILTER);
+            m_filters.push_back(conf.MetadataFilterManager.newPlugin(EXCLUDE_METADATA_FILTER, e, deprecationSupport));
         }
         else if (!deprecationSupport && XMLString::endsWith(child->getLocalName(), _MetadataFilter)) {
             throw UnknownExtensionException("Unsupported metadata filter syntax detected.");
diff --git a/samltest/data/saml2/metadata/XMLWithWhitelists.xml b/samltest/data/saml2/metadata/XMLWithIncludes.xml
similarity index 89%
rename from samltest/data/saml2/metadata/XMLWithWhitelists.xml
rename to samltest/data/saml2/metadata/XMLWithIncludes.xml
index 87ad6bb..f3a92a2 100644
--- a/samltest/data/saml2/metadata/XMLWithWhitelists.xml
+++ b/samltest/data/saml2/metadata/XMLWithIncludes.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
  <FilesystemMetadataProvider path="../samltest/data/saml2/metadata/InCommon-metadata.xml.bck" validate="0">
-    <MetadataFilter type="Whitelist">
+    <MetadataFilter type="Include">
         <Include>urn:mace:incommon:washington.edu</Include>
         <Include>urn:mace:incommon:osu.edu</Include>
     </MetadataFilter>
diff --git a/samltest/saml2/metadata/XMLMetadataProviderTest.h b/samltest/saml2/metadata/XMLMetadataProviderTest.h
index 325045b..881168d 100644
--- a/samltest/saml2/metadata/XMLMetadataProviderTest.h
+++ b/samltest/saml2/metadata/XMLMetadataProviderTest.h
@@ -197,9 +197,9 @@ public:
         assertEquals("Entity's ID does not match requested ID", entityID2, descriptor->getEntityID());
     }
 
-    void testXMLWithWhitelists() {
+    void testXMLWithIncludes() {
         skipNetworked();
-        string config = data_path + "saml2/metadata/XMLWithWhitelists.xml";
+        string config = data_path + "saml2/metadata/XMLWithIncludes.xml";
         ifstream in(config.c_str());
         DOMDocument* doc=XMLToolingConfig::getConfig().getParser().parse(in);
         XercesJanitor<DOMDocument> janitor(doc);

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the commits mailing list