diff --git a/include/common/uri_auth.h b/include/common/uri_auth.h index a73c1adbae..bffd694d65 100644 --- a/include/common/uri_auth.h +++ b/include/common/uri_auth.h @@ -30,6 +30,7 @@ struct stat_scope { #define ST_SHNODE 0x00000002 /* show node name */ #define ST_SHDESC 0x00000004 /* show description */ #define ST_SHLGNDS 0x00000008 /* show legends */ +#define ST_CONVDONE 0x00000010 /* req_acl conversion done */ /* later we may link them to support multiple URI matching */ struct uri_auth { diff --git a/src/cfgparse.c b/src/cfgparse.c index 90cc9b03bb..b5437a6a1a 100644 --- a/src/cfgparse.c +++ b/src/cfgparse.c @@ -4803,7 +4803,8 @@ int check_config_validity() } } - if (curproxy->uri_auth && !LIST_ISEMPTY(&curproxy->uri_auth->req_acl) && + if (curproxy->uri_auth && !(curproxy->uri_auth->flags & ST_CONVDONE) && + !LIST_ISEMPTY(&curproxy->uri_auth->req_acl) && (curproxy->uri_auth->userlist || curproxy->uri_auth->auth_realm )) { Alert("%s '%s': stats 'auth'/'realm' and 'http-request' can't be used at the same time.\n", "proxy", curproxy->id); @@ -4811,7 +4812,7 @@ int check_config_validity() goto out_uri_auth_compat; } - if (curproxy->uri_auth && curproxy->uri_auth->userlist) { + if (curproxy->uri_auth && curproxy->uri_auth->userlist && !(curproxy->uri_auth->flags & ST_CONVDONE)) { const char *uri_auth_compat_req[10]; struct req_acl_rule *req_acl; int i = 0; @@ -4842,6 +4843,8 @@ int check_config_validity() free(curproxy->uri_auth->auth_realm); curproxy->uri_auth->auth_realm = NULL; } + + curproxy->uri_auth->flags |= ST_CONVDONE; } out_uri_auth_compat: