1
0
mirror of https://github.com/apache/httpd.git synced 2025-04-18 22:24:07 +03:00

* Temporarily add back the query string to the URL as it might contain the

routing information for sticky sessions.

PR: 69443


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1925109 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Ruediger Pluem 2025-04-16 11:29:25 +00:00
parent 65d5f9ee6c
commit e36237899d
2 changed files with 16 additions and 1 deletions

View File

@ -0,0 +1,3 @@
*) mod_proxy_balancer: Fix a regression that caused stickysession keys no
longer be recognized if they are provided as query parameter in the URL.
PR 69443 [Ruediger Pluem]

View File

@ -274,11 +274,23 @@ static proxy_worker *find_session_route(proxy_balancer *balancer,
char **url)
{
proxy_worker *worker = NULL;
char *url_with_qs;
if (!*balancer->s->sticky)
return NULL;
/*
* The route might be contained in the query string and *url is not
* supposed to contain the query string. Hence add it temporarily if
* present.
*/
if (r->args) {
url_with_qs = apr_pstrcat(r->pool, *url, "?", r->args, NULL);
}
else {
url_with_qs = *url;
}
/* Try to find the sticky route inside url */
*route = get_path_param(r->pool, *url, balancer->s->sticky_path, balancer->s->scolonsep);
*route = get_path_param(r->pool, url_with_qs, balancer->s->sticky_path, balancer->s->scolonsep);
if (*route) {
ap_log_rerror(APLOG_MARK, APLOG_DEBUG, 0, r, APLOGNO(01159)
"Found value %s for stickysession %s",