]> granicus.if.org Git - apache/commitdiff
Merge r1531672 from trunk:
authorJim Jagielski <jim@apache.org>
Thu, 17 Apr 2014 13:39:01 +0000 (13:39 +0000)
committerJim Jagielski <jim@apache.org>
Thu, 17 Apr 2014 13:39:01 +0000 (13:39 +0000)
mod_auth_form: Make sure the optional functions are loaded even when
the AuthFormProvider isn't specified.

Submitted by: minfrin
Reviewed/backported by: jim

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@1588247 13f79535-47bb-0310-9956-ffa450edef68

CHANGES
STATUS
modules/aaa/mod_auth_form.c

diff --git a/CHANGES b/CHANGES
index cd033b689f92c22d5d5a26722018aa66b0c0730f..a8e9a82555ef2ae640e1cfd71cf87868b6442666 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -2,6 +2,9 @@
 
 Changes with Apache 2.4.10
 
+  *) mod_auth_form: Make sure the optional functions are loaded even when
+     the AuthFormProvider isn't specified. [Graham Leggett]
+
   *) mod_ssl: avoid processing bogus SSLCertificateKeyFile values
      (and logging garbled file names). PR 56306. [Kaspar Brand]
 
diff --git a/STATUS b/STATUS
index d1529b51e4291fce97acf27d47e80f5d224ee9e3..8b9b544ed8f091764d30718330397130bd18c665 100644 (file)
--- a/STATUS
+++ b/STATUS
@@ -100,11 +100,6 @@ RELEASE SHOWSTOPPERS:
 PATCHES ACCEPTED TO BACKPORT FROM TRUNK:
   [ start all new proposals below, under PATCHES PROPOSED. ]
 
-   * mod_auth_form: Make sure the optional functions are loaded even when
-    the AuthFormProvider isn't specified. PR 56351.
-    trunk patch: https://svn.apache.org/r1531672
-    2.4.x patch: trunk patch works, modulo CHANGES
-    +1: minfrin, jim, ylavic
 
 PATCHES PROPOSED TO BACKPORT FROM TRUNK:
   [ New proposals should be added at the end of the list ]
index 474a9de235d9d55e01b8a555c33b9ec7829584eb..13d9243e5bee9ef500726ebbaa5274a5cf3de29e 100644 (file)
@@ -173,25 +173,6 @@ static const char *add_authn_provider(cmd_parms * cmd, void *config,
                             "Form Authentication", newp->provider_name);
     }
 
-    if (!ap_session_load_fn || !ap_session_get_fn || !ap_session_set_fn) {
-        ap_session_load_fn = APR_RETRIEVE_OPTIONAL_FN(ap_session_load);
-        ap_session_get_fn = APR_RETRIEVE_OPTIONAL_FN(ap_session_get);
-        ap_session_set_fn = APR_RETRIEVE_OPTIONAL_FN(ap_session_set);
-        if (!ap_session_load_fn || !ap_session_get_fn || !ap_session_set_fn) {
-            return "You must load mod_session to enable the mod_auth_form "
-                   "functions";
-        }
-    }
-
-    if (!ap_request_insert_filter_fn || !ap_request_remove_filter_fn) {
-        ap_request_insert_filter_fn = APR_RETRIEVE_OPTIONAL_FN(ap_request_insert_filter);
-        ap_request_remove_filter_fn = APR_RETRIEVE_OPTIONAL_FN(ap_request_remove_filter);
-        if (!ap_request_insert_filter_fn || !ap_request_remove_filter_fn) {
-            return "You must load mod_request to enable the mod_auth_form "
-                   "functions";
-        }
-    }
-
     /* Add it to the list now. */
     if (!conf->providers) {
         conf->providers = newp;
@@ -567,6 +548,7 @@ static apr_status_t get_session_auth(request_rec * r,
 {
     const char *authname = ap_auth_name(r);
     session_rec *z = NULL;
+
     ap_session_load_fn(r, &z);
 
     if (user) {
@@ -1271,8 +1253,40 @@ static int authenticate_form_redirect_handler(request_rec * r)
 
 }
 
+static int authenticate_form_post_config(apr_pool_t *pconf, apr_pool_t *plog,
+        apr_pool_t *ptemp, server_rec *s)
+{
+
+    if (!ap_session_load_fn || !ap_session_get_fn || !ap_session_set_fn) {
+        ap_session_load_fn = APR_RETRIEVE_OPTIONAL_FN(ap_session_load);
+        ap_session_get_fn = APR_RETRIEVE_OPTIONAL_FN(ap_session_get);
+        ap_session_set_fn = APR_RETRIEVE_OPTIONAL_FN(ap_session_set);
+        if (!ap_session_load_fn || !ap_session_get_fn || !ap_session_set_fn) {
+            ap_log_error(APLOG_MARK, APLOG_CRIT, 0, NULL, APLOGNO()
+                    "You must load mod_session to enable the mod_auth_form "
+                                       "functions");
+            return !OK;
+        }
+    }
+
+    if (!ap_request_insert_filter_fn || !ap_request_remove_filter_fn) {
+        ap_request_insert_filter_fn = APR_RETRIEVE_OPTIONAL_FN(ap_request_insert_filter);
+        ap_request_remove_filter_fn = APR_RETRIEVE_OPTIONAL_FN(ap_request_remove_filter);
+        if (!ap_request_insert_filter_fn || !ap_request_remove_filter_fn) {
+            ap_log_error(APLOG_MARK, APLOG_CRIT, 0, NULL, APLOGNO()
+                    "You must load mod_request to enable the mod_auth_form "
+                                       "functions");
+            return !OK;
+        }
+    }
+
+    return OK;
+}
+
 static void register_hooks(apr_pool_t * p)
 {
+    ap_hook_post_config(authenticate_form_post_config,NULL,NULL,APR_HOOK_MIDDLE);
+
 #if AP_MODULE_MAGIC_AT_LEAST(20080403,1)
     ap_hook_check_authn(authenticate_form_authn, NULL, NULL, APR_HOOK_MIDDLE,
                         AP_AUTH_INTERNAL_PER_CONF);