summaryrefslogtreecommitdiff
path: root/0004-Fix-incorrect-header-used-for-detecting-AJAX-request.patch
diff options
context:
space:
mode:
Diffstat (limited to '0004-Fix-incorrect-header-used-for-detecting-AJAX-request.patch')
-rw-r--r--0004-Fix-incorrect-header-used-for-detecting-AJAX-request.patch49
1 files changed, 49 insertions, 0 deletions
diff --git a/0004-Fix-incorrect-header-used-for-detecting-AJAX-request.patch b/0004-Fix-incorrect-header-used-for-detecting-AJAX-request.patch
new file mode 100644
index 0000000..7f5971a
--- /dev/null
+++ b/0004-Fix-incorrect-header-used-for-detecting-AJAX-request.patch
@@ -0,0 +1,49 @@
+From 6358a5169762ef7b89d8b6d0f1a99b006f0fdd2f Mon Sep 17 00:00:00 2001
+From: Olav Morken <olav.morken@uninett.no>
+Date: Wed, 25 Jul 2018 12:19:39 +0200
+Subject: [PATCH] Fix incorrect header used for detecting AJAX requests
+
+The code was looking for "X-Request-With", but the header is actually
+"X-Requested-With". As far as I can tell, it has always been the
+latter, at least in the jQuery source code.
+
+Fixes issue #174.
+---
+ README.md | 2 +-
+ auth_mellon_handler.c | 4 ++--
+ 2 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/README.md b/README.md
+index 0a91dc5..8d85b43 100644
+--- a/README.md
++++ b/README.md
+@@ -180,7 +180,7 @@ MellonDiagnosticsEnable Off
+ # then we will redirect him to the login page of the IdP.
+ #
+ # There is a special handling of AJAX requests, that are
+- # identified by the "X-Request-With: XMLHttpRequest" HTTP
++ # identified by the "X-Requested-With: XMLHttpRequest" HTTP
+ # header. Since no user interaction can happen there,
+ # we always fail unauthenticated (not logged in) requests
+ # with a 403 Forbidden error without redirecting to the IdP.
+diff --git a/auth_mellon_handler.c b/auth_mellon_handler.c
+index b16dc45..e33e6e9 100644
+--- a/auth_mellon_handler.c
++++ b/auth_mellon_handler.c
+@@ -3658,11 +3658,11 @@ int am_auth_mellon_user(request_rec *r)
+ * If this is an AJAX request, we cannot proceed to the IdP,
+ * Just fail early to save our resources
+ */
+- ajax_header = apr_table_get(r->headers_in, "X-Request-With");
++ ajax_header = apr_table_get(r->headers_in, "X-Requested-With");
+ if (ajax_header != NULL &&
+ strcmp(ajax_header, "XMLHttpRequest") == 0) {
+ AM_LOG_RERROR(APLOG_MARK, APLOG_INFO, 0, r,
+- "Deny unauthenticated X-Request-With XMLHttpRequest "
++ "Deny unauthenticated X-Requested-With XMLHttpRequest "
+ "(AJAX) request");
+ return HTTP_FORBIDDEN;
+ }
+--
+2.20.1
+