diff --git a/src/headers/csrfHeader.hpp b/src/headers/csrfHeader.hpp new file mode 100644 index 0000000..88f6e73 --- /dev/null +++ b/src/headers/csrfHeader.hpp @@ -0,0 +1,24 @@ +#include +#include + +class XCSRFTokenHeader : public Pistache::Http::Header::Header { + public: + NAME("X-Csrf-Token"); + + XCSRFTokenHeader() = default; + + void parse(const std::string& str) override { + m_data = str; + } + + void write(std::ostream& os) const override { + os << m_data; + } + + std::string ip() const { + return m_data; + } + + private: + std::string m_data = ""; +}; \ No newline at end of file diff --git a/src/main.cpp b/src/main.cpp index 9cfaf95..adaf9c8 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -16,6 +16,7 @@ #include "headers/acceptLanguageHeader.hpp" #include "headers/setCookieHeader.hpp" #include "headers/xrealip.hpp" +#include "headers/csrfHeader.hpp" #include "debug/log.hpp" #include "helpers/FsUtils.hpp" @@ -88,6 +89,7 @@ int main(int argc, char** argv, char** envp) { Pistache::Http::Header::Registry::instance().registerHeader(); Pistache::Http::Header::Registry::instance().registerHeader(); Pistache::Http::Header::Registry::instance().registerHeader(); + Pistache::Http::Header::Registry::instance().registerHeader(); g_pCrypto = std::make_unique(); g_pTrafficLogger = std::make_unique();