Rework Apache and logging init/term to fix native.log perms
authorScott Cantor <cantor.2@osu.edu>
Fri, 4 May 2012 20:50:52 +0000 (20:50 +0000)
committerScott Cantor <cantor.2@osu.edu>
Fri, 4 May 2012 20:50:52 +0000 (20:50 +0000)
apache/mod_shib.cpp
shibsp/SPConfig.cpp
shibsp/base.h
shibsp/impl/XMLServiceProvider.cpp
shibsp/paths.h.in

index fe351d0..88cf7bb 100644 (file)
@@ -308,10 +308,10 @@ struct shib_request_config
 // create a request record
 static shib_request_config* init_request_config(request_rec *r)
 {
+    ap_log_rerror(APLOG_MARK, APLOG_DEBUG|APLOG_NOERRNO, SH_AP_R(r), "init_request_config");
     shib_request_config* rc = (shib_request_config*)ap_pcalloc(r->pool,sizeof(shib_request_config));
     memset(rc, 0, sizeof(shib_request_config));
     ap_set_module_config(r->request_config, &mod_shib, rc);
-    ap_log_rerror(APLOG_MARK, APLOG_DEBUG|APLOG_NOERRNO, SH_AP_R(r), "shib_init_rc");
     return rc;
 }
 
@@ -695,7 +695,7 @@ extern "C" int shib_check_user(request_rec* r)
     if (((shib_dir_config*)ap_get_module_config(r->per_dir_config, &mod_shib))->bOff == 1)
         return DECLINED;
 
-    ap_log_rerror(APLOG_MARK, APLOG_DEBUG|APLOG_NOERRNO, SH_AP_R(r), "shib_check_user(%d): ENTER", (int)getpid());
+    ap_log_rerror(APLOG_MARK, APLOG_DEBUG|APLOG_NOERRNO, SH_AP_R(r), "shib_check_user entered in pid (%d)", (int)getpid());
 
     string threadid("[");
     threadid += lexical_cast<string>(getpid()) + "] shib_check_user";
@@ -722,7 +722,7 @@ extern "C" int shib_check_user(request_rec* r)
         pair<bool,long> res = psta->getServiceProvider().doAuthentication(*psta, true);
         apr_pool_userdata_setn((const void*)42,g_UserDataKey,nullptr,r->pool);
         // If directed, install a spoof key to recognize when we've already cleared headers.
-        if (!g_spoofKey.empty() && (((shib_dir_config*)ap_get_module_config(r->per_dir_config, &mod_shib))->bUseHeaders==1))
+        if (!g_spoofKey.empty() && (((shib_dir_config*)ap_get_module_config(r->per_dir_config, &mod_shib))->bUseHeaders == 1))
             ap_table_set(r->headers_in, "Shib-Spoof-Check", g_spoofKey.c_str());
         if (res.first) {
 #ifdef SHIB_APACHE_24
@@ -784,12 +784,12 @@ extern "C" int shib_handler(request_rec* r)
     void* data;
     apr_pool_userdata_get(&data,g_UserDataKey,r->pool);
     if (data==(const void*)42) {
-        ap_log_rerror(APLOG_MARK,APLOG_DEBUG|APLOG_NOERRNO,SH_AP_R(r),"shib_handler skipped since check_user ran");
+        ap_log_rerror(APLOG_MARK, APLOG_DEBUG|APLOG_NOERRNO, SH_AP_R(r), "shib_handler skipped since check_user ran");
         return DECLINED;
     }
 #endif
 
-    ap_log_rerror(APLOG_MARK,APLOG_DEBUG|APLOG_NOERRNO,SH_AP_R(r),"shib_handler(%d): ENTER: %s", (int)getpid(), r->handler);
+    ap_log_rerror(APLOG_MARK, APLOG_DEBUG|APLOG_NOERRNO, SH_AP_R(r), "shib_handler entered in pid (%d): %s", (int)getpid(), r->handler);
 
     try {
 #ifndef SHIB_APACHE_24
@@ -811,7 +811,7 @@ extern "C" int shib_handler(request_rec* r)
         pair<bool,long> res = psta->getServiceProvider().doHandler(*psta);
         if (res.first) return res.second;
 
-        ap_log_rerror(APLOG_MARK, APLOG_ERR|APLOG_NOERRNO, SH_AP_R(r), "doHandler() did not do anything.");
+        ap_log_rerror(APLOG_MARK, APLOG_ERR|APLOG_NOERRNO, SH_AP_R(r), "doHandler() did not handle the request");
         return SERVER_ERROR;
     }
     catch (std::exception& e) {
@@ -844,7 +844,7 @@ extern "C" int shib_auth_checker(request_rec* r)
         return DECLINED;
     }
 
-    ap_log_rerror(APLOG_MARK, APLOG_DEBUG|APLOG_NOERRNO, SH_AP_R(r), "shib_auth_checker(%d): ENTER", (int)getpid());
+    ap_log_rerror(APLOG_MARK, APLOG_DEBUG|APLOG_NOERRNO, SH_AP_R(r), "shib_auth_checker entered in pid (%d)", (int)getpid());
 
     string threadid("[");
     threadid += lexical_cast<string>(getpid()) + "] shib_auth_checker";
@@ -889,20 +889,20 @@ extern "C" int shib_auth_checker(request_rec* r)
 // Overlays environment variables on top of subprocess table.
 extern "C" int shib_fixups(request_rec* r)
 {
-  shib_dir_config *dc = (shib_dir_config*)ap_get_module_config(r->per_dir_config, &mod_shib);
-  if (dc->bOff==1 || dc->bUseEnvVars==0)
-    return DECLINED;
+    shib_dir_config *dc = (shib_dir_config*)ap_get_module_config(r->per_dir_config, &mod_shib);
+    if (dc->bOff==1 || dc->bUseEnvVars==0)
+        return DECLINED;
 
-  ap_log_rerror(APLOG_MARK,APLOG_DEBUG|APLOG_NOERRNO,SH_AP_R(r), "shib_fixup(%d): ENTER", (int)getpid());
+    ap_log_rerror(APLOG_MARK, APLOG_DEBUG|APLOG_NOERRNO, SH_AP_R(r), "shib_fixups entered in pid (%d)", (int)getpid());
 
-  shib_request_config *rc = (shib_request_config*)ap_get_module_config(r->request_config, &mod_shib);
-  if (rc==nullptr || rc->env==nullptr || ap_is_empty_table(rc->env))
+    shib_request_config *rc = (shib_request_config*)ap_get_module_config(r->request_config, &mod_shib);
+    if (rc==nullptr || rc->env==nullptr || ap_is_empty_table(rc->env))
         return DECLINED;
 
-  ap_log_rerror(APLOG_MARK,APLOG_DEBUG|APLOG_NOERRNO,SH_AP_R(r), "shib_fixup adding %d vars", ap_table_elts(rc->env)->nelts);
-  r->subprocess_env = ap_overlay_tables(r->pool, r->subprocess_env, rc->env);
+    ap_log_rerror(APLOG_MARK, APLOG_DEBUG|APLOG_NOERRNO, SH_AP_R(r), "shib_fixups adding %d vars", ap_table_elts(rc->env)->nelts);
+    r->subprocess_env = ap_overlay_tables(r->pool, r->subprocess_env, rc->env);
 
-  return OK;
+    return OK;
 }
 
 
@@ -1016,11 +1016,11 @@ static SH_AP_TABLE* groups_for_user(request_rec* r, const char* user, char* grpf
     const char *group_name, *ll, *w;
 
 #ifdef SHIB_APACHE_13
-    if (!(f=ap_pcfg_openfile(r->pool,grpfile))) {
+    if (!(f=ap_pcfg_openfile(r->pool, grpfile))) {
 #else
     if (ap_pcfg_openfile(&f,r->pool,grpfile) != APR_SUCCESS) {
 #endif
-        ap_log_rerror(APLOG_MARK,APLOG_DEBUG,SH_AP_R(r),"groups_for_user() could not open group file: %s\n",grpfile);
+        ap_log_rerror(APLOG_MARK, APLOG_DEBUG, SH_AP_R(r), "groups_for_user: could not open group file: %s\n", grpfile);
         return nullptr;
     }
 
@@ -1030,7 +1030,7 @@ static SH_AP_TABLE* groups_for_user(request_rec* r, const char* user, char* grpf
 #else
     if (apr_pool_create(&sp,r->pool) != APR_SUCCESS) {
         ap_log_rerror(APLOG_MARK,APLOG_ERR,0,r,
-            "groups_for_user() could not create a subpool");
+            "groups_for_user: could not create a subpool");
         return nullptr;
     }
 #endif
@@ -1758,11 +1758,10 @@ extern "C" const char* shib_set_acl_slot(cmd_parms* params, shib_dir_config* dc,
 extern "C" void shib_child_exit(server_rec* s, SH_AP_POOL* p)
 {
     if (g_Config) {
-        ap_log_error(APLOG_MARK,APLOG_DEBUG|APLOG_NOERRNO,SH_AP_R(s),"shib_child_exit(%d) dealing with g_Config..", (int)getpid());
         g_Config->term();
         g_Config = nullptr;
-        ap_log_error(APLOG_MARK,APLOG_DEBUG|APLOG_NOERRNO,SH_AP_R(s),"shib_child_exit() done");
     }
+    ap_log_error(APLOG_MARK, APLOG_INFO|APLOG_NOERRNO, SH_AP_R(s), "child_exit: mod_shib shutdown in pid (%d)", (int)getpid());
 }
 #else
 /*
@@ -1775,15 +1774,57 @@ extern "C" apr_status_t shib_exit(void* data)
         g_Config->term();
         g_Config = nullptr;
     }
-    ap_log_error(APLOG_MARK,APLOG_DEBUG|APLOG_NOERRNO,0,nullptr,"shib_exit() done");
+    server_rec* s = reinterpret_cast<server_rec*>(data);
+    ap_log_error(APLOG_MARK, APLOG_INFO|APLOG_NOERRNO, SH_AP_R(s), "shib_exit: mod_shib shutdown in pid (%d)", (int)getpid());
+    return OK;
+}
+
+/*
+ * shib_post_config()
+ *  We do the library init/term work here for 2.x to reduce overhead and
+ *  get default logging established before the fork happens.
+ */
+apr_status_t shib_post_config(apr_pool_t* p, apr_pool_t*, apr_pool_t*, server_rec* s)
+{
+    // Initialize runtime components.
+    ap_log_error(APLOG_MARK, APLOG_INFO|APLOG_NOERRNO, SH_AP_R(s),"post_config: mod_shib initializing in pid (%d)", (int)getpid());
+
+    if (g_Config) {
+        ap_log_error(APLOG_MARK, APLOG_ERR|APLOG_NOERRNO, SH_AP_R(s), "post_config: mod_shib already initialized");
+        return !OK;
+    }
+
+    g_Config = &SPConfig::getConfig();
+    g_Config->setFeatures(
+        SPConfig::Listener |
+        SPConfig::Caching |
+        SPConfig::RequestMapping |
+        SPConfig::InProcess |
+        SPConfig::Logging |
+        SPConfig::Handlers
+        );
+    if (!g_Config->init(g_szSchemaDir, g_szPrefix)) {
+        ap_log_error(APLOG_MARK, APLOG_CRIT|APLOG_NOERRNO, SH_AP_R(s), "post_config: mod_shib failed to initialize libraries");
+        return !OK;
+    }
+#ifndef SHIB_APACHE_24
+    g_Config->AccessControlManager.registerFactory(HT_ACCESS_CONTROL, &htAccessFactory);
+#endif
+    g_Config->RequestMapperManager.registerFactory(NATIVE_REQUEST_MAPPER, &ApacheRequestMapFactory);
+
+    // Set the cleanup handler, passing in the server_rec for logging.
+    apr_pool_cleanup_register(p, s, &shib_exit, apr_pool_cleanup_null);
+
     return OK;
 }
+
 #endif
 
 /*
- * shire_child_init()
+ * shib_child_init()
  *  Things to do when the child process is initialized.
- *  (or after the configs are read in apache-2)
+ *  We can't use post-config for all of it on 2.x because only the forking thread shows
+ *  up in the child, losing the internal threads spun up by plugins in the SP.
  */
 #ifdef SHIB_APACHE_13
 extern "C" void shib_child_init(server_rec* s, SH_AP_POOL* p)
@@ -1793,14 +1834,16 @@ extern "C" void shib_child_init(apr_pool_t* p, server_rec* s)
 {
     // Initialize runtime components.
 
-    ap_log_error(APLOG_MARK,APLOG_DEBUG|APLOG_NOERRNO,SH_AP_R(s),"shib_child_init(%d) starting", (int)getpid());
+    ap_log_error(APLOG_MARK, APLOG_INFO|APLOG_NOERRNO, SH_AP_R(s),"child_init: mod_shib initializing in pid (%d)", (int)getpid());
 
+    // 2.x versions have already initialized the libraries.
+#ifdef SHIB_APACHE_13
     if (g_Config) {
-        ap_log_error(APLOG_MARK,APLOG_ERR|APLOG_NOERRNO,SH_AP_R(s),"shib_child_init() already initialized!");
+        ap_log_error(APLOG_MARK, APLOG_ERR|APLOG_NOERRNO, SH_AP_R(s), "child_init: mod_shib already initialized, exiting");
         exit(1);
     }
 
-    g_Config=&SPConfig::getConfig();
+    g_Config = &SPConfig::getConfig();
     g_Config->setFeatures(
         SPConfig::Listener |
         SPConfig::Caching |
@@ -1810,21 +1853,21 @@ extern "C" void shib_child_init(apr_pool_t* p, server_rec* s)
         SPConfig::Handlers
         );
     if (!g_Config->init(g_szSchemaDir, g_szPrefix)) {
-        ap_log_error(APLOG_MARK,APLOG_CRIT|APLOG_NOERRNO,SH_AP_R(s),"shib_child_init() failed to initialize libraries");
+        ap_log_error(APLOG_MARK, APLOG_CRIT|APLOG_NOERRNO, SH_AP_R(s), "child_init: mod_shib failed to initialize libraries");
         exit(1);
     }
-#ifndef SHIB_APACHE_24
     g_Config->AccessControlManager.registerFactory(HT_ACCESS_CONTROL, &htAccessFactory);
-#endif
     g_Config->RequestMapperManager.registerFactory(NATIVE_REQUEST_MAPPER, &ApacheRequestMapFactory);
+#endif
 
+    // The config gets installed for all versions here due to the background thread/fork issues.
     try {
         if (!g_Config->instantiate(g_szSHIBConfig, true))
             throw runtime_error("unknown error");
     }
     catch (std::exception& ex) {
-        ap_log_error(APLOG_MARK,APLOG_CRIT|APLOG_NOERRNO,SH_AP_R(s),"%s",ex.what());
-        ap_log_error(APLOG_MARK,APLOG_CRIT|APLOG_NOERRNO,SH_AP_R(s),"shib_child_init() failed to load configuration");
+        ap_log_error(APLOG_MARK, APLOG_CRIT|APLOG_NOERRNO, SH_AP_R(s), "child_init: mod_shib failed to load configuration: %s", ex.what());
+        g_Config->term();
         exit(1);
     }
 
@@ -1846,10 +1889,10 @@ extern "C" void shib_child_init(apr_pool_t* p, server_rec* s)
         g_catchAll = flag.first && flag.second;
     }
 
-    // Set the cleanup handler
-    apr_pool_cleanup_register(p, nullptr, &shib_exit, apr_pool_cleanup_null);
+    // Set the cleanup handler, passing in the server_rec for logging.
+    apr_pool_cleanup_register(p, s, &shib_exit, apr_pool_cleanup_null);
 
-    ap_log_error(APLOG_MARK, APLOG_DEBUG|APLOG_NOERRNO, SH_AP_R(s), "shib_child_init() done");
+    ap_log_error(APLOG_MARK, APLOG_DEBUG|APLOG_NOERRNO, SH_AP_R(s), "child_init: mod_shib config initialized");
 }
 
 // Output filters
@@ -1876,7 +1919,7 @@ static apr_status_t do_output_filter(ap_filter_t *f, apr_bucket_brigade *in)
     shib_request_config *rc = (shib_request_config*) ap_get_module_config(r->request_config, &mod_shib);
 
     if (rc && rc->hdr_out) {
-        ap_log_rerror(APLOG_MARK,APLOG_DEBUG|APLOG_NOERRNO,SH_AP_R(r),"shib_out_filter: merging %d headers", apr_table_elts(rc->hdr_out)->nelts);
+        ap_log_rerror(APLOG_MARK, APLOG_DEBUG|APLOG_NOERRNO, SH_AP_R(r), "output_filter: merging %d headers", apr_table_elts(rc->hdr_out)->nelts);
         // can't use overlap call because it will collapse Set-Cookie headers
         //apr_table_overlap(r->headers_out, rc->hdr_out, APR_OVERLAP_TABLES_MERGE);
         apr_table_do(_table_add,r->headers_out, rc->hdr_out,NULL);
@@ -1895,7 +1938,7 @@ static apr_status_t do_error_filter(ap_filter_t *f, apr_bucket_brigade *in)
     shib_request_config *rc = (shib_request_config*) ap_get_module_config(r->request_config, &mod_shib);
 
     if (rc && rc->hdr_out) {
-        ap_log_rerror(APLOG_MARK,APLOG_DEBUG|APLOG_NOERRNO,SH_AP_R(r),"shib_err_filter: merging %d headers", apr_table_elts(rc->hdr_out)->nelts);
+        ap_log_rerror(APLOG_MARK, APLOG_DEBUG|APLOG_NOERRNO, SH_AP_R(r), "error_filter: merging %d headers", apr_table_elts(rc->hdr_out)->nelts);
         // can't use overlap call because it will collapse Set-Cookie headers
         //apr_table_overlap(r->err_headers_out, rc->hdr_out, APR_OVERLAP_TABLES_MERGE);
         apr_table_do(_table_add,r->err_headers_out, rc->hdr_out,NULL);
@@ -2028,6 +2071,7 @@ extern "C" void shib_register_hooks (apr_pool_t *p)
     ap_hook_insert_error_filter(set_error_filter, nullptr, nullptr, APR_HOOK_LAST);
     ap_hook_post_read_request(shib_post_read, nullptr, nullptr, APR_HOOK_MIDDLE);
 #endif
+    ap_hook_post_config(shib_post_config, nullptr, nullptr, APR_HOOK_MIDDLE);
     ap_hook_child_init(shib_child_init, nullptr, nullptr, APR_HOOK_MIDDLE);
     const char* prereq = getenv("SHIBSP_APACHE_PREREQ");
 #ifdef SHIB_APACHE_24
index c79a404..13ca623 100644 (file)
@@ -183,17 +183,23 @@ bool SPConfig::init(const char* catalog_path, const char* inst_prefix)
         ++inst_prefix;
     }
 
-    const char* loglevel=getenv("SHIBSP_LOGGING");
-    if (!loglevel)
-        loglevel = SHIBSP_LOGGING;
-    std::string ll(loglevel);
+    const char* logconf = getenv("SHIBSP_LOGGING");
+    if (!logconf || !*logconf) {
+        if (isEnabled(SPConfig::OutOfProcess) && !isEnabled(SPConfig::InProcess))
+            logconf = SHIBSP_OUTOFPROC_LOGGING;
+        else if (isEnabled(SPConfig::InProcess) && !isEnabled(SPConfig::OutOfProcess))
+            logconf = SHIBSP_INPROC_LOGGING;
+        else
+            logconf = SHIBSP_LOGGING;
+    }
     PathResolver localpr;
     localpr.setDefaultPrefix(inst_prefix2.c_str());
     inst_prefix = getenv("SHIBSP_CFGDIR");
     if (!inst_prefix || !*inst_prefix)
         inst_prefix = SHIBSP_CFGDIR;
     localpr.setCfgDir(inst_prefix);
-    XMLToolingConfig::getConfig().log_config(localpr.resolve(ll, PathResolver::XMLTOOLING_CFG_FILE, PACKAGE_NAME).c_str());
+    std::string lc(logconf);
+    XMLToolingConfig::getConfig().log_config(localpr.resolve(lc, PathResolver::XMLTOOLING_CFG_FILE, PACKAGE_NAME).c_str());
 
     Category& log=Category::getInstance(SHIBSP_LOGCAT".Config");
     log.debug("%s library initialization started", PACKAGE_STRING);
@@ -229,7 +235,7 @@ bool SPConfig::init(const char* catalog_path, const char* inst_prefix)
 #endif
     if (!catalog_path)
         catalog_path = getenv("SHIBSP_SCHEMAS");
-    if (!catalog_path)
+    if (!catalog_path || !*catalog_path)
         catalog_path = SHIBSP_SCHEMAS;
     if (!XMLToolingConfig::getConfig().getValidatingParser().loadCatalogs(catalog_path)) {
         log.warn("failed to load schema catalogs into validating parser");
index 702ddf2..4c3d53c 100644 (file)
   #define SHIBSP_EXCEPTIONAPI(api)
 #endif
 
-#ifdef WIN32
-
-/** Default catalog path on Windows. */
-# define SHIBSP_SCHEMAS "c:/opt/shibboleth-sp/share/xml/xmltooling/catalog.xml;c:/opt/shibboleth-sp/share/xml/opensaml/saml20-catalog.xml;c:/opt/shibboleth-sp/share/xml/opensaml/saml11-catalog.xml;c:/opt/shibboleth-sp/share/xml/shibboleth/catalog.xml"
-
-/** Default name of configuration file on Windows. */
-# define SHIBSP_CONFIG  "shibboleth2.xml"
-
 /**
  * Controls default logging level of console tools and other situations
  * where fully-configured logging isn't used.
  */
 #define SHIBSP_LOGGING  "console.logger"
 
+/** Default name of SP in-process logging config file. */
+#define SHIBSP_INPROC_LOGGING "native.logger"
+
+/** Default name of SP out-of-process logging config file. */
+#define SHIBSP_OUTOFPROC_LOGGING "shibd.logger"
+
+/** Logging category for Service Provider functions. */
+#define SHIBSP_LOGCAT "Shibboleth"
+
+/** Logging category for Service Provider auditing. */
+#define SHIBSP_TX_LOGCAT "Shibboleth-TRANSACTION"
+
+/** Default name of configuration file. */
+# define SHIBSP_CONFIG  "shibboleth2.xml"
+
+#ifdef WIN32
+
+/** Default catalog path on Windows. */
+# define SHIBSP_SCHEMAS "c:/opt/shibboleth-sp/share/xml/xmltooling/catalog.xml;c:/opt/shibboleth-sp/share/xml/opensaml/saml20-catalog.xml;c:/opt/shibboleth-sp/share/xml/opensaml/saml11-catalog.xml;c:/opt/shibboleth-sp/share/xml/shibboleth/catalog.xml"
+
 /** Default prefix for installation (used to resolve relative paths). */
 #define SHIBSP_PREFIX   "c:/opt/shibboleth-sp"
 
 # include <shibsp/paths.h>
 #endif
 
-/** Logging category for Service Provider functions. */
-#define SHIBSP_LOGCAT "Shibboleth"
-
-/** Logging category for Service Provider auditing. */
-#define SHIBSP_TX_LOGCAT "Shibboleth-TRANSACTION"
-
 #endif /* __shibsp_base_h__ */
index d485abd..648dbd6 100644 (file)
@@ -1922,6 +1922,8 @@ XMLConfigImpl::XMLConfigImpl(const DOMElement* e, bool first, XMLConfig* outer,
     const DOMElement* SHIRE=XMLHelper::getFirstChildElement(e, InProcess);
 
     // Initialize logging manually in order to redirect log messages as soon as possible.
+    // If no explicit config is supplied, we now assume the caller has done this, so that
+    // setuid processes can potentially do this as root.
     if (conf.isEnabled(SPConfig::Logging)) {
         string logconf;
         if (conf.isEnabled(SPConfig::OutOfProcess))
@@ -1930,15 +1932,6 @@ XMLConfigImpl::XMLConfigImpl(const DOMElement* e, bool first, XMLConfig* outer,
             logconf = XMLHelper::getAttrString(SHIRE, nullptr, logger);
         if (logconf.empty())
             logconf = XMLHelper::getAttrString(e, nullptr, logger);
-        if (logconf.empty() && !getenv("SHIBSP_LOGGING")) {
-            // No properties found, so default them.
-            if (conf.isEnabled(SPConfig::OutOfProcess) && !conf.isEnabled(SPConfig::InProcess))
-                logconf = "shibd.logger";
-            else if (!conf.isEnabled(SPConfig::OutOfProcess) && conf.isEnabled(SPConfig::InProcess))
-                logconf = "native.logger";
-            else
-                logconf = "shibboleth.logger";
-        }
         if (!logconf.empty()) {
             log.debug("loading new logging configuration from (%s), check log destination for status of configuration", logconf.c_str());
             if (!XMLToolingConfig::getConfig().log_config(logconf.c_str()))
index f9070ac..b72cdbd 100644 (file)
 /** Default schema catalogs. */
 #define SHIBSP_SCHEMAS  "@-XMLTOOLINGXMLDIR-@/catalog.xml:@-OPENSAMLXMLDIR-@/saml20-catalog.xml:@-OPENSAMLXMLDIR-@/saml11-catalog.xml:@-PKGXMLDIR-@/catalog.xml"
 
-/** Default name of SP configuration file. */
-#define SHIBSP_CONFIG   "shibboleth2.xml"
-
-/** Default name of SP console tool logging file. */
-#define SHIBSP_LOGGING  "console.logger"
-
 /** Default prefix for installation (used to resolve relative paths). */
 #define SHIBSP_PREFIX   "@-PREFIX-@"