Adds new method for rule merge

IMPORTANT: SecDefaultAction specified on a child configuration will
overwrite the ones specified on the parent; Previously it was
concatenating.
This commit is contained in:
Felipe Zimmerle
2020-04-14 11:33:17 -03:00
parent 6c874721cf
commit b079faee97
121 changed files with 5250 additions and 5192 deletions

View File

@@ -45,10 +45,14 @@ class RuleWithOperator : public RuleWithActions {
std::unique_ptr<std::string> fileName,
int lineNumber);
RuleWithOperator(const RuleWithOperator &op)
: RuleWithActions(op),
m_variables(op.m_variables),
m_operator(op.m_operator) { };
virtual ~RuleWithOperator();
bool evaluate(Transaction *transaction,
std::shared_ptr<RuleMessage> rm) override;
bool evaluate(Transaction *transaction) override;
void getVariablesExceptions(Transaction *t,
variables::Variables *exclusion, variables::Variables *addition);
@@ -56,7 +60,7 @@ class RuleWithOperator : public RuleWithActions {
variables::Variables *eclusion, Transaction *trans);
bool executeOperatorAt(Transaction *trasn, const std::string &key,
std::string value, std::shared_ptr<RuleMessage> rm);
std::string value);
static void updateMatchedVars(Transaction *trasn, const std::string &key,
const std::string &value);
@@ -70,8 +74,8 @@ class RuleWithOperator : public RuleWithActions {
}
private:
modsecurity::variables::Variables *m_variables;
operators::Operator *m_operator;
std::shared_ptr<modsecurity::variables::Variables> m_variables;
std::shared_ptr<operators::Operator> m_operator;
};