[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