mirror of
https://github.com/owasp-modsecurity/ModSecurity.git
synced 2025-11-16 09:31:53 +03:00
Improves rules dump for better testing
This commit is contained in:
@@ -44,6 +44,15 @@ class RuleMarker : public Rule {
|
||||
: Rule(std::move(fileName), lineNumber),
|
||||
m_name(std::make_shared<std::string>(name)) { }
|
||||
|
||||
RuleMarker(RuleMarker &&r) :
|
||||
Rule(r),
|
||||
m_name(std::move(r.m_name))
|
||||
{ };
|
||||
|
||||
RuleMarker(const RuleMarker &r) :
|
||||
Rule(r),
|
||||
m_name(std::move(r.m_name))
|
||||
{ };
|
||||
|
||||
virtual bool evaluate(Transaction *transaction) override {
|
||||
if (transaction->isInsideAMarker()) {
|
||||
@@ -62,6 +71,11 @@ class RuleMarker : public Rule {
|
||||
return m_name;
|
||||
}
|
||||
|
||||
virtual void dump(std::stringstream &out) override {
|
||||
Rule::dump(out);
|
||||
out << "SecMarker \"" << *getName() << "\"" << std::endl;
|
||||
}
|
||||
|
||||
private:
|
||||
std::shared_ptr<std::string> m_name;
|
||||
};
|
||||
|
||||
@@ -454,6 +454,11 @@ class RuleWithActions : public Rule {
|
||||
return dst;
|
||||
}
|
||||
|
||||
|
||||
virtual void dump(std::stringstream &out) override {
|
||||
out << "RuleWithActions" << std::endl;
|
||||
}
|
||||
|
||||
private:
|
||||
RuleId m_ruleId;
|
||||
|
||||
|
||||
@@ -30,6 +30,8 @@
|
||||
#include "modsecurity/variable_value.h"
|
||||
#include "modsecurity/rule.h"
|
||||
#include "src/rule_with_actions.h"
|
||||
#include "src/variables/variable.h"
|
||||
#include "src/operators/operator.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
||||
@@ -80,6 +82,15 @@ class RuleWithOperator : public RuleWithActions {
|
||||
return std::to_string(getId());
|
||||
}
|
||||
|
||||
virtual void dump(std::stringstream &out) override {
|
||||
Rule::dump(out);
|
||||
out << "# RuleWithOperator" << std::endl;
|
||||
out << "SecRule ";
|
||||
out << m_variables->getVariableNames() << " ";
|
||||
out << "\"" << "@" << m_operator->m_op << " " << m_operator->m_param << "\"";
|
||||
out << std::endl;
|
||||
}
|
||||
|
||||
private:
|
||||
std::shared_ptr<modsecurity::variables::Variables> m_variables;
|
||||
std::shared_ptr<operators::Operator> m_operator;
|
||||
|
||||
@@ -57,13 +57,11 @@ std::shared_ptr<Rule> Rules::at(int index) const {
|
||||
}
|
||||
|
||||
|
||||
void Rules::dump() {
|
||||
for (int j = 0; j < m_rules.size(); j++) {
|
||||
std::cout << " Rule ID: " << m_rules.at(j)->getReference();
|
||||
std::cout << "--" << m_rules.at(j) << std::endl;
|
||||
void Rules::dump(std::stringstream &out) {
|
||||
for (auto &r : m_rules) {
|
||||
r->dump(out);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
} // namespace modsecurity
|
||||
|
||||
|
||||
Reference in New Issue
Block a user