[cpp-sp] 02/02: Implement parent/child between global and site configs.

Scott Cantor cantor.2 at osu.edu
Tue Jan 14 18:09:58 UTC 2025


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

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

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

commit d5eed489933190659e434b539cedcacd50316979
Author: Scott Cantor <cantor.2 at osu.edu>
AuthorDate: Tue Jan 14 13:09:50 2025 -0500

    Implement parent/child between global and site configs.
---
 shibsp/platform/iis/ModuleConfig.cpp     | 1 +
 shibsp/util/BoostPropertySet.h           | 1 -
 tests/data/platform/iis/iis.ini          | 4 ++++
 tests/data/platform/iis/iis.xml          | 2 +-
 tests/platform/iis/ModuleConfigTests.cpp | 2 ++
 5 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/shibsp/platform/iis/ModuleConfig.cpp b/shibsp/platform/iis/ModuleConfig.cpp
index ed54cefb..e519081e 100644
--- a/shibsp/platform/iis/ModuleConfig.cpp
+++ b/shibsp/platform/iis/ModuleConfig.cpp
@@ -122,6 +122,7 @@ void ModuleConfigImpl::doSites(ptree& parent)
         if (child.first == "Site") {
             unique_ptr<BoostPropertySet> propset(new BoostPropertySet());
             propset->load(child.second);
+            propset->setParent(this);
 
             const char* id = propset->getString("id");
 
diff --git a/shibsp/util/BoostPropertySet.h b/shibsp/util/BoostPropertySet.h
index e8ff851b..e958b14d 100644
--- a/shibsp/util/BoostPropertySet.h
+++ b/shibsp/util/BoostPropertySet.h
@@ -66,7 +66,6 @@ namespace shibsp {
         /** XML-based property trees contain a sub-tree of attributes under this child node. */
         static const char XMLATTR_NODE_NAME[];
 
-    protected:
         /**
          * Returns the parent PropertySet.
          * 
diff --git a/tests/data/platform/iis/iis.ini b/tests/data/platform/iis/iis.ini
index dea68adf..2c8156eb 100644
--- a/tests/data/platform/iis/iis.ini
+++ b/tests/data/platform/iis/iis.ini
@@ -1,9 +1,13 @@
+[global]
+useHeaders = true
+
 [bad]
 ; no name property
 foo = bar
 
 [1]
 name = sp.example.org
+useHeaders = false
 
 [2]
 name = sp2.example.org
diff --git a/tests/data/platform/iis/iis.xml b/tests/data/platform/iis/iis.xml
index 027b4eb1..fcad64de 100644
--- a/tests/data/platform/iis/iis.xml
+++ b/tests/data/platform/iis/iis.xml
@@ -2,7 +2,7 @@
 
     <Site id="bad" />
 
-    <Site id="1" name="sp.example.org" />
+    <Site id="1" name="sp.example.org" useHeaders="false" />
 
     <Site id="2" name="sp2.example.org" scheme="https" port="443" />
 
diff --git a/tests/platform/iis/ModuleConfigTests.cpp b/tests/platform/iis/ModuleConfigTests.cpp
index f0beed26..3e301dd2 100644
--- a/tests/platform/iis/ModuleConfigTests.cpp
+++ b/tests/platform/iis/ModuleConfigTests.cpp
@@ -85,6 +85,7 @@ void validateSites(const ModuleConfig* config)
     BOOST_CHECK_EQUAL(one->getString(ModuleConfig::SITE_SCHEME_PROP_NAME), nullptr);
     BOOST_CHECK_EQUAL(one->getUnsignedInt(ModuleConfig::SITE_PORT_PROP_NAME, 0), 0);
     BOOST_CHECK_EQUAL(one->getString(ModuleConfig::SITE_ALIASES_PROP_NAME), nullptr);
+    BOOST_CHECK(!one->getBool(ModuleConfig::USE_HEADERS_PROP_NAME, true));
 
     const PropertySet* two = config->getSiteConfig("2");
     BOOST_CHECK(two);
@@ -106,6 +107,7 @@ BOOST_FIXTURE_TEST_CASE(ModuleConfigTest_ini, ModuleConfigFixture)
     unique_ptr<ModuleConfig> config(ModuleConfig::newModuleConfig(string(data_path + "iis.ini").c_str()));
     
     BOOST_CHECK(config->getBool(ModuleConfig::USE_VARIABLES_PROP_NAME, true));
+    BOOST_CHECK(config->getBool(ModuleConfig::USE_HEADERS_PROP_NAME, false));
     
     validateSites(config.get());
 }

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


More information about the commits mailing list