mirror of
https://github.com/owasp-modsecurity/ModSecurity.git
synced 2025-08-14 13:56:01 +03:00
Refactoring: Having RuleMarker in a separated file
This commit is contained in:
parent
bdedfd2463
commit
8274be066a
@ -29,7 +29,6 @@
|
|||||||
#include "modsecurity/modsecurity.h"
|
#include "modsecurity/modsecurity.h"
|
||||||
#include "modsecurity/variable_value.h"
|
#include "modsecurity/variable_value.h"
|
||||||
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
|
|
||||||
namespace modsecurity {
|
namespace modsecurity {
|
||||||
@ -103,42 +102,6 @@ class Rule {
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
class RuleMarker : public Rule {
|
|
||||||
public:
|
|
||||||
RuleMarker(
|
|
||||||
const std::string &name,
|
|
||||||
std::unique_ptr<std::string> fileName,
|
|
||||||
int lineNumber)
|
|
||||||
: Rule(std::move(fileName), lineNumber),
|
|
||||||
m_name(std::make_shared<std::string>(name)) { }
|
|
||||||
|
|
||||||
|
|
||||||
virtual bool evaluate(Transaction *transaction,
|
|
||||||
std::shared_ptr<RuleMessage> rm) override {
|
|
||||||
|
|
||||||
if (transaction->isInsideAMarker()) {
|
|
||||||
if (*transaction->getCurrentMarker() == *m_name) {
|
|
||||||
transaction->removeMarker();
|
|
||||||
// FIXME: Move this to .cc
|
|
||||||
// ms_dbg_a(transaction, 4, "Out of a SecMarker " + *m_name);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
std::shared_ptr<std::string> getName() const {
|
|
||||||
return m_name;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool isMarker() override { return true; }
|
|
||||||
|
|
||||||
private:
|
|
||||||
std::shared_ptr<std::string> m_name;
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
class RuleWithActions : public Rule {
|
class RuleWithActions : public Rule {
|
||||||
public:
|
public:
|
||||||
RuleWithActions(
|
RuleWithActions(
|
||||||
|
78
headers/modsecurity/rule_marker.h
Normal file
78
headers/modsecurity/rule_marker.h
Normal file
@ -0,0 +1,78 @@
|
|||||||
|
/*
|
||||||
|
* ModSecurity, http://www.modsecurity.org/
|
||||||
|
* Copyright (c) 2015 Trustwave Holdings, Inc. (http://www.trustwave.com/)
|
||||||
|
*
|
||||||
|
* You may not use this file except in compliance with
|
||||||
|
* the License. You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* If any of the files related to licensing are missing or if you have any
|
||||||
|
* other questions related to licensing please contact Trustwave Holdings, Inc.
|
||||||
|
* directly using the email address security@modsecurity.org.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
#include <stack>
|
||||||
|
#include <vector>
|
||||||
|
#include <string>
|
||||||
|
#include <list>
|
||||||
|
#include <memory>
|
||||||
|
#include <utility>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef HEADERS_MODSECURITY_RULE_MARKER_H_
|
||||||
|
#define HEADERS_MODSECURITY_RULE_MARKER_H_
|
||||||
|
|
||||||
|
#include "modsecurity/transaction.h"
|
||||||
|
#include "modsecurity/modsecurity.h"
|
||||||
|
#include "modsecurity/variable_value.h"
|
||||||
|
#include "modsecurity/rule.h"
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
|
||||||
|
namespace modsecurity {
|
||||||
|
|
||||||
|
|
||||||
|
class RuleMarker : public Rule {
|
||||||
|
public:
|
||||||
|
RuleMarker(
|
||||||
|
const std::string &name,
|
||||||
|
std::unique_ptr<std::string> fileName,
|
||||||
|
int lineNumber)
|
||||||
|
: Rule(std::move(fileName), lineNumber),
|
||||||
|
m_name(std::make_shared<std::string>(name)) { }
|
||||||
|
|
||||||
|
|
||||||
|
virtual bool evaluate(Transaction *transaction,
|
||||||
|
std::shared_ptr<RuleMessage> rm) override {
|
||||||
|
|
||||||
|
if (transaction->isInsideAMarker()) {
|
||||||
|
if (*transaction->getCurrentMarker() == *m_name) {
|
||||||
|
transaction->removeMarker();
|
||||||
|
// FIXME: Move this to .cc
|
||||||
|
// ms_dbg_a(transaction, 4, "Out of a SecMarker " + *m_name);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
std::shared_ptr<std::string> getName() {
|
||||||
|
return m_name;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool isMarker() override { return true; }
|
||||||
|
|
||||||
|
private:
|
||||||
|
std::shared_ptr<std::string> m_name;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
} // namespace modsecurity
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif // HEADERS_MODSECURITY_RULE_MARKER_H_
|
@ -42,6 +42,7 @@ pkginclude_HEADERS = \
|
|||||||
../headers/modsecurity/intervention.h \
|
../headers/modsecurity/intervention.h \
|
||||||
../headers/modsecurity/modsecurity.h \
|
../headers/modsecurity/modsecurity.h \
|
||||||
../headers/modsecurity/rule.h \
|
../headers/modsecurity/rule.h \
|
||||||
|
../headers/modsecurity/rule_marker.h \
|
||||||
../headers/modsecurity/rules.h \
|
../headers/modsecurity/rules.h \
|
||||||
../headers/modsecurity/rule_message.h \
|
../headers/modsecurity/rule_message.h \
|
||||||
../headers/modsecurity/rules_set.h \
|
../headers/modsecurity/rules_set.h \
|
||||||
|
@ -18,6 +18,7 @@
|
|||||||
#include "modsecurity/rules_set_properties.h"
|
#include "modsecurity/rules_set_properties.h"
|
||||||
#include "src/parser/seclang-parser.hh"
|
#include "src/parser/seclang-parser.hh"
|
||||||
#include "modsecurity/audit_log.h"
|
#include "modsecurity/audit_log.h"
|
||||||
|
#include "modsecurity/rule_marker.h"
|
||||||
|
|
||||||
using modsecurity::audit_log::AuditLog;
|
using modsecurity::audit_log::AuditLog;
|
||||||
using modsecurity::RuleWithOperator;
|
using modsecurity::RuleWithOperator;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user