diff options
-rw-r--r-- | mod_intercept_form_submit.c | 13 | ||||
-rw-r--r-- | mod_intercept_form_submit.spec | 6 |
2 files changed, 12 insertions, 7 deletions
diff --git a/mod_intercept_form_submit.c b/mod_intercept_form_submit.c index 2eedaae..44270a4 100644 --- a/mod_intercept_form_submit.c +++ b/mod_intercept_form_submit.c @@ -379,20 +379,20 @@ static void intercept_form_submit_filter_prefetch(request_rec * r, ifs_config * } #define _INTERCEPT_CONTENT_TYPE "application/x-www-form-urlencoded" -static void intercept_form_submit_init(request_rec * r) { +static apr_status_t intercept_form_submit_init(request_rec * r) { ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, r->server, "intercept_form_submit_init invoked"); if (r->method_number != M_POST) { ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, r->server, "skipping, no POST request"); - return; + return DECLINED; } ifs_config * config = ap_get_module_config(r->per_dir_config, &intercept_form_submit_module); if (!(config && config->login_name && config->password_name && config->pam_service)) { ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, r->server, "skipping, not configured"); - return; + return DECLINED; } if (apr_table_get(r->subprocess_env, _REMOTE_USER_ENV_NAME)) { ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, r->server, "skipping, " _REMOTE_USER_ENV_NAME " already set"); - return; + return DECLINED; } const char * content_type = apr_table_get(r->headers_in, "Content-Type"); if (content_type) { @@ -406,10 +406,11 @@ static void intercept_form_submit_init(request_rec * r) { ap_filter_t * the_filter = ap_add_input_filter("intercept_form_submit_filter", NULL, r, r->connection); ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, r->server, "inserted filter intercept_form_submit_filter, starting intercept_form_submit_filter_prefetch"); intercept_form_submit_filter_prefetch(r, config, the_filter); - return; + return DECLINED; } } ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, r->server, "skipping, no " _INTERCEPT_CONTENT_TYPE); + return DECLINED; } static void * create_dir_conf(apr_pool_t * pool, char * dir) { @@ -441,7 +442,7 @@ static void * merge_dir_conf(apr_pool_t * pool, void * base_void, void * add_voi } static void register_hooks(apr_pool_t * pool) { - ap_hook_insert_filter(intercept_form_submit_init, NULL, NULL, APR_HOOK_MIDDLE); + ap_hook_fixups(intercept_form_submit_init, NULL, NULL, APR_HOOK_MIDDLE); ap_register_input_filter("intercept_form_submit_filter", intercept_form_submit_filter, NULL, AP_FTYPE_RESOURCE); ap_hook_optional_fn_retrieve(register_lookup_identity_hook_fn, NULL, NULL, APR_HOOK_MIDDLE); ap_hook_optional_fn_retrieve(register_pam_authenticate_with_login_password_fn, NULL, NULL, APR_HOOK_MIDDLE); diff --git a/mod_intercept_form_submit.spec b/mod_intercept_form_submit.spec index e9f7a59..a64a1c5 100644 --- a/mod_intercept_form_submit.spec +++ b/mod_intercept_form_submit.spec @@ -6,7 +6,7 @@ Summary: Apache module to intercept login form submission and run PAM authentication. Name: mod_intercept_form_submit -Version: 0.9.2 +Version: 0.9.3 Release: 1%{?dist} License: ASL 2.0 Group: System Environment/Daemons @@ -56,6 +56,10 @@ install -Dp -m 0644 intercept_form_submit.conf $RPM_BUILD_ROOT%{_httpd_confdir}/ %{_httpd_moddir}/*.so %changelog +* Wed Jan 15 2014 Jan Pazdziora - 0.9.3-1 +- Move the processing to the middle of the fixup phase to allow + mod_headers to process the result. + * Thu Jan 09 2014 Jan Pazdziora - 0.9.2-1 - If pam_authenticate_with_login_password is not available (mod_authnz_pam not loaded), skip calling it. |