return NULL;\r
}\r
\r
- vector<const SecurityPolicyRule*>& getPolicyRules(const Handler& handler) const {\r
- pair<bool,const char*> pid = handler.getString("policyId", "urn:mace:shibboleth:sp:config:2.0");\r
- if (!pid.first)\r
- pid.second = m_impl->m_policyDefault.c_str();\r
- if (m_impl->m_policyMap.count(pid.second))\r
- return m_impl->m_policyMap[pid.second];\r
- throw ConfigurationException("Security Policy ($1) not found, check <SecurityPolicies> element.", params(1,pid.second));\r
+ vector<const SecurityPolicyRule*>& getPolicyRules(const char* id=NULL) const {\r
+ if (!id)\r
+ id = m_impl->m_policyDefault.c_str();\r
+ if (m_impl->m_policyMap.count(id))\r
+ return m_impl->m_policyMap[id];\r
+ throw ConfigurationException("Security Policy ($1) not found, check <SecurityPolicies> element.", params(1,id));\r
}\r
\r
protected:\r
}\r
}\r
\r
- // Load the default application. This actually has a fixed ID of "default". ;-)\r
- child=XMLHelper::getLastChildElement(e,Applications);\r
- if (!child) {\r
- log.fatal("can't build default Application object, missing conf:Applications element?");\r
- throw ConfigurationException("can't build default Application object, missing conf:Applications element?");\r
- }\r
- XMLApplication* defapp=new XMLApplication(m_outer,child);\r
- m_appmap[defapp->getId()]=defapp;\r
- \r
- // Load any overrides.\r
- child = XMLHelper::getFirstChildElement(child,_Application);\r
- while (child) {\r
- auto_ptr<XMLApplication> iapp(new XMLApplication(m_outer,child,defapp));\r
- if (m_appmap.count(iapp->getId()))\r
- log.crit("found conf:Application element with duplicate id attribute (%s), skipping it", iapp->getId());\r
- else\r
- m_appmap[iapp->getId()]=iapp.release();\r
-\r
- child = XMLHelper::getNextSiblingElement(child,_Application);\r
- }\r
-\r
// Load security policies.\r
child = XMLHelper::getLastChildElement(e,SecurityPolicies);\r
if (child) {\r
if (!m_policyMap.count(m_policyDefault))\r
throw ConfigurationException("Default security policy ($1) not found in conf:SecurityPolicies element.", params(1,m_policyDefault.c_str()));\r
}\r
+\r
+ // Load the default application. This actually has a fixed ID of "default". ;-)\r
+ child=XMLHelper::getLastChildElement(e,Applications);\r
+ if (!child) {\r
+ log.fatal("can't build default Application object, missing conf:Applications element?");\r
+ throw ConfigurationException("can't build default Application object, missing conf:Applications element?");\r
+ }\r
+ XMLApplication* defapp=new XMLApplication(m_outer,child);\r
+ m_appmap[defapp->getId()]=defapp;\r
+ \r
+ // Load any overrides.\r
+ child = XMLHelper::getFirstChildElement(child,_Application);\r
+ while (child) {\r
+ auto_ptr<XMLApplication> iapp(new XMLApplication(m_outer,child,defapp));\r
+ if (m_appmap.count(iapp->getId()))\r
+ log.crit("found conf:Application element with duplicate id attribute (%s), skipping it", iapp->getId());\r
+ else\r
+ m_appmap[iapp->getId()]=iapp.release();\r
+\r
+ child = XMLHelper::getNextSiblingElement(child,_Application);\r
+ }\r
}\r
catch (exception&) {\r
this->~XMLConfigImpl();\r