@@ -53,6 +53,7 @@ class Driver;
5353#include " variables/env.h"
5454#include " variables/highest_severity.h"
5555#include " variables/modsec_build.h"
56+ #include " variables/remote_user.h"
5657#include " variables/time_day.h"
5758#include " variables/time_epoch.h"
5859#include " variables/time.h"
@@ -96,6 +97,7 @@ using modsecurity::Variables::Duration;
9697using modsecurity::Variables::Env;
9798using modsecurity::Variables::HighestSeverity;
9899using modsecurity::Variables::ModsecBuild;
100+ using modsecurity::Variables::RemoteUser;
99101using modsecurity::Variables::Time;
100102using modsecurity::Variables::TimeDay;
101103using modsecurity::Variables::TimeEpoch;
@@ -227,6 +229,8 @@ using modsecurity::Variables::XML;
227229%token <std::string> RUN_TIME_VAR_BLD
228230%token <std::string> RUN_TIME_VAR_HSV
229231
232+ %token <std::string> RUN_TIME_VAR_REMOTE_USER
233+
230234%token <std::string> RUN_TIME_VAR_TIME
231235%token <std::string> RUN_TIME_VAR_TIME_DAY
232236%token <std::string> RUN_TIME_VAR_TIME_EPOCH
@@ -752,6 +756,15 @@ var:
752756 if (!var) { var = new HighestSeverity (name); }
753757 $$ = var;
754758 }
759+ | RUN_TIME_VAR_REMOTE_USER
760+ {
761+ std::string name ($1 );
762+ CHECK_VARIATION_DECL
763+ CHECK_VARIATION (&) { var = new Count (new RemoteUser (name)); }
764+ CHECK_VARIATION (!) { var = new Exclusion (new RemoteUser (name)); }
765+ if (!var) { var = new RemoteUser (name); }
766+ $$ = var;
767+ }
755768 | RUN_TIME_VAR_TIME
756769 {
757770 std::string name ($1 );
0 commit comments