From 43044f2c2880c7e6f20b35c7876d9a50d9fa5373 Mon Sep 17 00:00:00 2001 From: Dario Date: Fri, 18 Oct 2019 12:18:34 +0200 Subject: [PATCH] update logging --- src/cpp/Crypto/KeyPair.cpp | 4 ++-- src/cpp/Gradido_LoginServer.cpp | 9 ++++++- .../PageRequestHandlerFactory.cpp | 24 +++++++++++++------ .../HTTPInterface/PageRequestHandlerFactory.h | 2 ++ src/cpp/model/Session.cpp | 2 +- src/cpp/tasks/PrepareEmailTask.cpp | 2 +- src/cpp/tasks/SendEmailTask.cpp | 2 +- src/cpsp/saveKeys.cpsp | 4 ++-- 8 files changed, 34 insertions(+), 15 deletions(-) diff --git a/src/cpp/Crypto/KeyPair.cpp b/src/cpp/Crypto/KeyPair.cpp index 51599780f..e150dd29c 100644 --- a/src/cpp/Crypto/KeyPair.cpp +++ b/src/cpp/Crypto/KeyPair.cpp @@ -23,7 +23,7 @@ KeyPair::KeyPair() KeyPair::~KeyPair() { - printf("[KeyPair::~KeyPair] privkey: %d, soduium privkey: %d \n", mPrivateKey, mSodiumSecret); + //printf("[KeyPair::~KeyPair] privkey: %d, soduium privkey: %d \n", mPrivateKey, mSodiumSecret); if (mPrivateKey) { delete mPrivateKey; mPrivateKey = nullptr; @@ -106,7 +106,7 @@ bool KeyPair::generateFromPassphrase(const char* passphrase, Mnemonic* word_sour printf("Sodium Private: \t%s\n", getHex(*mSodiumSecret, mSodiumSecret->size()).data()); printf("// ********* Keys End ************ //\n"); */ - printf("[KeyPair::generateFromPassphrase] finished!\n"); + //printf("[KeyPair::generateFromPassphrase] finished!\n"); // using return true; } diff --git a/src/cpp/Gradido_LoginServer.cpp b/src/cpp/Gradido_LoginServer.cpp index b1fab6777..aec67f8d6 100644 --- a/src/cpp/Gradido_LoginServer.cpp +++ b/src/cpp/Gradido_LoginServer.cpp @@ -16,7 +16,7 @@ #include "Poco/Logger.h" #include "Poco/AsyncChannel.h" #include "Poco/SimpleFileChannel.h" - +#include "Poco/ConsoleChannel.h" #include "MySQL/Poco/Connector.h" @@ -136,6 +136,13 @@ int Gradido_LoginServer::main(const std::vector& args) return Application::EXIT_CONFIG; } + // logging for request handling + Poco::AutoPtr requestLogConsoleChannel(new Poco::ConsoleChannel); + Poco::AutoPtr requestLogAsyncChannel(new Poco::AsyncChannel(requestLogConsoleChannel)); + Poco::Logger& requestLog = Poco::Logger::get("requestLog"); + requestLog.setChannel(requestLogAsyncChannel); + requestLog.setLevel("information"); + // set-up a server socket Poco::Net::ServerSocket svs(port); // set-up a HTTPServer instance diff --git a/src/cpp/HTTPInterface/PageRequestHandlerFactory.cpp b/src/cpp/HTTPInterface/PageRequestHandlerFactory.cpp index a94fe248f..3d4cb703f 100644 --- a/src/cpp/HTTPInterface/PageRequestHandlerFactory.cpp +++ b/src/cpp/HTTPInterface/PageRequestHandlerFactory.cpp @@ -21,7 +21,7 @@ #include "../model/Profiler.h" PageRequestHandlerFactory::PageRequestHandlerFactory() - : mRemoveGETParameters("^/([a-zA-Z0-9_-]*)") + : mRemoveGETParameters("^/([a-zA-Z0-9_-]*)"), mLogging(Poco::Logger::get("requestLog")) { } @@ -35,15 +35,15 @@ Poco::Net::HTTPRequestHandler* PageRequestHandlerFactory::createRequestHandler(c mRemoveGETParameters.extract(uri, url_first_part); if (uri != "/favicon.ico") { - printf("[PageRequestHandlerFactory] uri: %s, first part: %s\n", uri.data(), url_first_part.data()); - auto referer = request.find("Referer"); + //printf("[PageRequestHandlerFactory] uri: %s, first part: %s\n", uri.data(), url_first_part.data()); + /*auto referer = request.find("Referer"); if (referer != request.end()) { printf("referer: %s\n", referer->second.data()); - } + }*/ } if (url_first_part == "/elopage_webhook_261") { - //printf("choose elopage\n"); + printf("call from elopage\n"); return new ElopageWebhook; } @@ -59,6 +59,16 @@ Poco::Net::HTTPRequestHandler* PageRequestHandlerFactory::createRequestHandler(c auto sm = SessionManager::getInstance(); auto s = sm->getSession(session_id); + // for debugging + std::stringstream logStream; + auto referer = request.find("Referer"); + logStream << "call " << uri; + if (s) {logStream << ", with session: " << std::to_string(s->getHandle()); } + if (referer != request.end()) { logStream << ", from: " << referer->second;} + logStream << std::endl; + mLogging.information(logStream.str()); + // end debugging + // TODO: count invalid session requests from IP and block IP for some time to prevent brute force session hijacking // or use log file and configure fail2ban for this to do @@ -79,7 +89,7 @@ Poco::Net::HTTPRequestHandler* PageRequestHandlerFactory::createRequestHandler(c sm->releaseSession(s); // remove cookie - printf("session released\n"); + //printf("session released\n"); return new LoginPage; } if(url_first_part == "/user_delete") { @@ -101,7 +111,7 @@ Poco::Net::HTTPRequestHandler* PageRequestHandlerFactory::createRequestHandler(c return new SaveKeysPage(s); } if (s && !s->getUser().isNull()) { - printf("[PageRequestHandlerFactory] go to dashboard page with user\n"); + //printf("[PageRequestHandlerFactory] go to dashboard page with user\n"); return new DashboardPage(s); } } else { diff --git a/src/cpp/HTTPInterface/PageRequestHandlerFactory.h b/src/cpp/HTTPInterface/PageRequestHandlerFactory.h index bf172496d..d3654a01d 100644 --- a/src/cpp/HTTPInterface/PageRequestHandlerFactory.h +++ b/src/cpp/HTTPInterface/PageRequestHandlerFactory.h @@ -3,6 +3,7 @@ #include "Poco/Net/HTTPRequestHandlerFactory.h" #include "Poco/RegularExpression.h" +#include "Poco/Logger.h" #include "../model/Session.h" #define HTTP_PAGES_COUNT 1 @@ -17,6 +18,7 @@ protected: Poco::Net::HTTPRequestHandler* handleCheckEmail(Session* session, const std::string uri, const Poco::Net::HTTPServerRequest& request); Poco::RegularExpression mRemoveGETParameters; + Poco::Logger& mLogging; }; #endif // __DR_PAGE_REQUEST_HANDLER_FACTORY_H \ No newline at end of file diff --git a/src/cpp/model/Session.cpp b/src/cpp/model/Session.cpp index 7666a9ba4..ab2c43003 100644 --- a/src/cpp/model/Session.cpp +++ b/src/cpp/model/Session.cpp @@ -443,7 +443,7 @@ bool Session::loadFromEmailVerificationCode(Poco::UInt64 emailVerificationCode) mEmailVerificationCode = emailVerificationCode; updateState(SESSION_STATE_EMAIL_VERIFICATION_WRITTEN); - printf("[Session::loadFromEmailVerificationCode] time: %s\n", usedTime.string().data()); + //printf("[Session::loadFromEmailVerificationCode] time: %s\n", usedTime.string().data()); return true; } catch (const Poco::Exception& ex) { diff --git a/src/cpp/tasks/PrepareEmailTask.cpp b/src/cpp/tasks/PrepareEmailTask.cpp index 712a6377a..c0d032c39 100644 --- a/src/cpp/tasks/PrepareEmailTask.cpp +++ b/src/cpp/tasks/PrepareEmailTask.cpp @@ -31,7 +31,7 @@ int PrepareEmailTask::run() return -1; } - printf("[PrepareEmailTask] time: %s\n", timeUsed.string().data()); + //printf("[PrepareEmailTask] time: %s\n", timeUsed.string().data()); /* session.login(); session.startTLS(pContext); diff --git a/src/cpp/tasks/SendEmailTask.cpp b/src/cpp/tasks/SendEmailTask.cpp index 6142a4f5a..1de239853 100644 --- a/src/cpp/tasks/SendEmailTask.cpp +++ b/src/cpp/tasks/SendEmailTask.cpp @@ -33,6 +33,6 @@ int SendEmailTask::run() if (prepare->send(mMailMessage)) { return -1; } - printf("[SendEmailTask] time: %s\n", timeUsed.string().data()); + //printf("[SendEmailTask] time: %s\n", timeUsed.string().data()); return 0; } \ No newline at end of file diff --git a/src/cpsp/saveKeys.cpsp b/src/cpsp/saveKeys.cpsp index cd0a8dc61..3c86924af 100644 --- a/src/cpsp/saveKeys.cpsp +++ b/src/cpsp/saveKeys.cpsp @@ -61,8 +61,8 @@ enum PageState state = PAGE_ERROR; } } - printf("SaveKeysPage: hasErrors: %d, session state: %d, target state: %d\n", - hasErrors, mSession->getSessionState(), SESSION_STATE_KEY_PAIR_GENERATED); + //printf("SaveKeysPage: hasErrors: %d, session state: %d, target state: %d\n", + //hasErrors, mSession->getSessionState(), SESSION_STATE_KEY_PAIR_GENERATED); } getErrors(mSession); %>