summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--mod_intercept_form_submit.c13
-rw-r--r--mod_intercept_form_submit.spec6
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.