diff --git a/example/config.jsonc b/example/config.jsonc index 2cdc484..97218c8 100644 --- a/example/config.jsonc +++ b/example/config.jsonc @@ -83,6 +83,6 @@ "traffic_log_file": "./traffic.csv" }, - // how long the token (solved challenge) should be valid for before showing a new challenge, in minutes - "token_valid_for": 60 // 1 hour + // how long the token (solved challenge) should be valid for before showing a new challenge, in seconds + "token_valid_for": 3600 // 1 hour } \ No newline at end of file diff --git a/src/config/Config.hpp b/src/config/Config.hpp index 4b6e4e5..ccb8e43 100644 --- a/src/config/Config.hpp +++ b/src/config/Config.hpp @@ -35,7 +35,7 @@ class CConfig { bool trace_logging = false; std::vector rules = {}; int default_challenge_difficulty = 4; - int token_valid_for = 60; + int token_valid_for = 3600; bool async_proxy = true; std::vector proxy_rules; diff --git a/src/core/Handler.cpp b/src/core/Handler.cpp index 928c5ec..196e7d9 100644 --- a/src/core/Handler.cpp +++ b/src/core/Handler.cpp @@ -215,13 +215,13 @@ void CServerHandler::onRequest(const Pistache::Http::Request& req, Pistache::Htt if (TOKEN.valid()) { const auto AGE = std::chrono::duration_cast(std::chrono::system_clock::now().time_since_epoch()).count() - std::chrono::duration_cast(TOKEN.issued().time_since_epoch()).count(); - if (AGE <= g_pConfig->m_config.token_valid_for && TOKEN.fingerprint() == NRequestUtils::fingerprintForRequest(req)) { + if (AGE <= g_pConfig->m_config.token_valid_for * 1000 && TOKEN.fingerprint() == NRequestUtils::fingerprintForRequest(req)) { Debug::log(LOG, " | Action: PASS (token)"); g_pTrafficLogger->logTraffic(req, "PASS (token)"); proxyPass(req, response); return; } else { // token has been used from a different IP or is expired. Nuke it. - if (AGE > g_pConfig->m_config.token_valid_for) + if (AGE > g_pConfig->m_config.token_valid_for * 1000) Debug::log(LOG, " | Action: CHALLENGE (token expired)"); else Debug::log(LOG, " | Action: CHALLENGE (token fingerprint mismatch)");