+static int _rm_get_all_table_walk(void *v, const char *key, const char *value)
+{
+ reinterpret_cast<map<string,const char*>*>(v)->insert(pair<string,const char*>(key, value));
+ return 1;
+}
+
+void ApacheRequestMapper::getAll(map<string,const char*>& properties) const
+{
+ const ShibTargetApache* sta=reinterpret_cast<const ShibTargetApache*>(m_staKey->getData());
+ const PropertySet* s=reinterpret_cast<const PropertySet*>(m_propsKey->getData());
+
+ if (s)
+ s->getAll(properties);
+ if (!sta)
+ return;
+
+ const char* auth_type=ap_auth_type(sta->m_req);
+ if (auth_type) {
+ // Check for Basic Hijack
+ if (!strcasecmp(auth_type, "basic") && sta->m_dc->bBasicHijack == 1)
+ auth_type = "shibboleth";
+ properties["authType"] = auth_type;
+ }
+
+ if (sta->m_dc->szApplicationId)
+ properties["applicationId"] = sta->m_dc->szApplicationId;
+ if (sta->m_dc->szRequireWith)
+ properties["requireSessionWith"] = sta->m_dc->szRequireWith;
+ if (sta->m_dc->szRedirectToSSL)
+ properties["redirectToSSL"] = sta->m_dc->szRedirectToSSL;
+ if (sta->m_dc->bRequireSession != 0)
+ properties["requireSession"] = (sta->m_dc->bRequireSession==1) ? "true" : "false";
+ if (sta->m_dc->bExportAssertion != 0)
+ properties["exportAssertion"] = (sta->m_dc->bExportAssertion==1) ? "true" : "false";
+
+ if (sta->m_dc->tSettings)
+ ap_table_do(_rm_get_all_table_walk, &properties, sta->m_dc->tSettings, nullptr);
+}
+