diff --git a/CMakeLists.txt b/CMakeLists.txt index ffc2a19b3..2b42ede19 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -13,6 +13,8 @@ include_directories( "import/mariadb/include" ) + + FILE(GLOB TINF "dependencies/tinf/src/*.c" "dependencies/tinf/src/*.h") FILE(GLOB HTTPInterface "src/cpp/HTTPInterface/*.h" "src/cpp/HTTPInterface/*.cpp") FILE(GLOB TASKS "src/cpp/tasks/*.cpp" "src/cpp/tasks/*.h") @@ -54,9 +56,17 @@ find_library(IROHA_ED25519 ed25519 PATHS "dependencies/iroha-ed25519/build/Debug set(MYSQL_INCLUDE_DIR "import/mariadb/include") else(WIN32) - +find_library(IROHA_ED25519 ed25519 PATHS "dependencies/iroha-ed25519/build" REQUIRED) +# set vars for mariadb cmake files +set(INSTALL_BINDIR "bin") +set(INSTALL_PLUGINDIR "bin") add_subdirectory("dependencies/mariadb-connector-c") +include_directories( + "dependencies/mariadb-connector-c/include" + "build/dependencies/mariadb-connector-c/include" +) + endif(WIN32) @@ -65,4 +75,5 @@ if(WIN32) TARGET_LINK_LIBRARIES(Gradido_LoginServer optimized ${MYSQL_LIBRARIES} Shlwapi) TARGET_LINK_LIBRARIES(Gradido_LoginServer debug ${MARIADB_CLIENT_DEBUG} Shlwapi) else(WIN32) +target_link_libraries(Gradido_LoginServer libmariadb PocoNet PocoUtil PocoFoundation PocoData PocoNetSSL -lpthread) endif(WIN32) \ No newline at end of file diff --git a/conanfile.txt b/conanfile.txt index 9378c4a10..9592ef121 100644 --- a/conanfile.txt +++ b/conanfile.txt @@ -1,5 +1,5 @@ [requires] -Poco/1.9.4@pocoproject/stable +#Poco/1.9.4@pocoproject/stable libsodium/1.0.18@bincrafters/stable protobuf/3.9.1@bincrafters/stable diff --git a/dependencies/iroha-ed25519 b/dependencies/iroha-ed25519 index eb4c0fce9..a0977c22d 160000 --- a/dependencies/iroha-ed25519 +++ b/dependencies/iroha-ed25519 @@ -1 +1 @@ -Subproject commit eb4c0fce900e2468b94bb9e9498af626bb66c039 +Subproject commit a0977c22d23f7e8cb596f1d9d812de74115f407b diff --git a/src/cpp/Crypto/KeyPair.cpp b/src/cpp/Crypto/KeyPair.cpp index 35e659a51..f09665054 100644 --- a/src/cpp/Crypto/KeyPair.cpp +++ b/src/cpp/Crypto/KeyPair.cpp @@ -96,13 +96,13 @@ bool KeyPair::generateFromPassphrase(const char* passphrase, Mnemonic* word_sour mSodiumSecret = new ObfusArray(crypto_sign_SECRETKEYBYTES, sodium_secret); // print hex for all keys for debugging - printf("//********** Keys *************//\n"); +/* printf("// ********** Keys ************* //\n"); printf("Public: \t%s\n", getHex(mPublicKey, ed25519_pubkey_SIZE).data()); printf("Private: \t%s\n", getHex(*mPrivateKey, mPrivateKey->size()).data()); printf("Sodium Public: \t%s\n", getHex(mSodiumPublic, crypto_sign_PUBLICKEYBYTES).data()); printf("Sodium Private: \t%s\n", getHex(*mSodiumSecret, mSodiumSecret->size()).data()); - printf("//********* Keys End ************//\n"); - + printf("// ********* Keys End ************ //\n"); +*/ // using return true; } diff --git a/src/cpp/Gradido_LoginServer.cpp b/src/cpp/Gradido_LoginServer.cpp index da9481cca..b58c6e7a9 100644 --- a/src/cpp/Gradido_LoginServer.cpp +++ b/src/cpp/Gradido_LoginServer.cpp @@ -2,6 +2,7 @@ #include "ServerConfig.h" #include "HTTPInterface/PageRequestHandlerFactory.h" +#include "model/Profiler.h" #include "SingletonManager/ConnectionManager.h" #include "SingletonManager/SessionManager.h" @@ -66,6 +67,7 @@ void Gradido_LoginServer::displayHelp() int Gradido_LoginServer::main(const std::vector& args) { + Profiler usedTime; if (_helpRequested) { displayHelp(); @@ -99,7 +101,9 @@ int Gradido_LoginServer::main(const std::vector& args) //Poco::Data::MySQL::Connector::KEY; auto conn = ConnectionManager::getInstance(); //conn->setConnection() + //printf("try connect login server mysql db\n"); conn->setConnectionsFromConfig(config(), CONNECTION_MYSQL_LOGIN_SERVER); + //printf("try connect php server mysql \n"); conn->setConnectionsFromConfig(config(), CONNECTION_MYSQL_PHP_SERVER); SessionManager::getInstance()->init(); @@ -107,7 +111,10 @@ int Gradido_LoginServer::main(const std::vector& args) //srand(); Poco::Net::initializeSSL(); - ServerConfig::initSSLClientContext(); + if(!ServerConfig::initSSLClientContext()) { + printf("[Gradido_LoginServer::%s] error init server SSL Client\n", __FUNCTION__); + return Application::EXIT_CONFIG; + } // set-up a server socket Poco::Net::ServerSocket svs(port); @@ -115,6 +122,7 @@ int Gradido_LoginServer::main(const std::vector& args) Poco::Net::HTTPServer srv(new PageRequestHandlerFactory, svs, new Poco::Net::HTTPServerParams); // start the HTTPServer srv.start(); + printf("[Gradido_LoginServer::main] started in %s\n", usedTime.string().data()); // wait for CTRL-C or kill waitForTerminationRequest(); diff --git a/src/cpp/HTTPInterface/CheckEmailPage.cpp b/src/cpp/HTTPInterface/CheckEmailPage.cpp index dd9b062dc..0c3bc285a 100644 --- a/src/cpp/HTTPInterface/CheckEmailPage.cpp +++ b/src/cpp/HTTPInterface/CheckEmailPage.cpp @@ -5,7 +5,7 @@ #include "Poco/DeflatingStream.h" -#line 7 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\checkEmail.cpsp" +#line 7 "/home/rock/code/gradido_login_server/src/cpsp/checkEmail.cpsp" @@ -24,7 +24,7 @@ void CheckEmailPage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco:: if (_compressResponse) response.set("Content-Encoding", "gzip"); Poco::Net::HTMLForm form(request, request.stream()); -#line 10 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\checkEmail.cpsp" +#line 10 "/home/rock/code/gradido_login_server/src/cpsp/checkEmail.cpsp" bool hasErrors = false; if(mSession) { @@ -64,25 +64,25 @@ void CheckEmailPage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco:: responseStream << "\n"; responseStream << "
\n"; responseStream << "\t"; -#line 45 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\checkEmail.cpsp" +#line 45 "/home/rock/code/gradido_login_server/src/cpsp/checkEmail.cpsp" if(mSession && hasErrors) { responseStream << "\n"; responseStream << "\t\t"; -#line 46 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\checkEmail.cpsp" +#line 46 "/home/rock/code/gradido_login_server/src/cpsp/checkEmail.cpsp" responseStream << ( mSession->getErrorsHtml() ); responseStream << "\n"; responseStream << "\t"; -#line 47 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\checkEmail.cpsp" +#line 47 "/home/rock/code/gradido_login_server/src/cpsp/checkEmail.cpsp" } responseStream << "\n"; responseStream << "\t

Einen neuen Account anlegen

\n"; responseStream << "\t"; -#line 49 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\checkEmail.cpsp" +#line 49 "/home/rock/code/gradido_login_server/src/cpsp/checkEmail.cpsp" if(mSession && mSession->getSessionState() < SESSION_STATE_EMAIL_VERIFICATION_SEND) { responseStream << "\n"; responseStream << "\t\t
\n"; responseStream << "\t\t\t

Die E-Mail wurde noch nicht verschickt, bitte habe noch etwas Geduld.

\n"; responseStream << "\t\t\t

Versuche es einfach in 1-2 Minuten erneut.

\n"; responseStream << "\t\t
\n"; responseStream << "\t"; -#line 54 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\checkEmail.cpsp" +#line 54 "/home/rock/code/gradido_login_server/src/cpsp/checkEmail.cpsp" } else { responseStream << "\n"; responseStream << "\t
\n"; responseStream << "\t\t

Bitte gebe deinen E-Mail Verification Code ein.

\n"; @@ -90,7 +90,7 @@ void CheckEmailPage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco:: responseStream << "\t\t\n"; responseStream << "\t
\n"; responseStream << "\t"; -#line 60 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\checkEmail.cpsp" +#line 60 "/home/rock/code/gradido_login_server/src/cpsp/checkEmail.cpsp" } responseStream << "\n"; responseStream << "
\n"; responseStream << "\n"; diff --git a/src/cpp/HTTPInterface/ConfigPage.cpp b/src/cpp/HTTPInterface/ConfigPage.cpp index 8eb2cfd96..3994b696b 100644 --- a/src/cpp/HTTPInterface/ConfigPage.cpp +++ b/src/cpp/HTTPInterface/ConfigPage.cpp @@ -5,7 +5,7 @@ #include "Poco/DeflatingStream.h" -#line 4 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\config.cpsp" +#line 4 "/home/rock/code/gradido_login_server/src/cpsp/config.cpsp" diff --git a/src/cpp/HTTPInterface/DashboardPage.cpp b/src/cpp/HTTPInterface/DashboardPage.cpp index 9ec36c889..5533158dd 100644 --- a/src/cpp/HTTPInterface/DashboardPage.cpp +++ b/src/cpp/HTTPInterface/DashboardPage.cpp @@ -5,7 +5,7 @@ #include "Poco/DeflatingStream.h" -#line 7 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\dashboard.cpsp" +#line 7 "/home/rock/code/gradido_login_server/src/cpsp/dashboard.cpsp" #include "../SingletonManager/SessionManager.h" @@ -28,7 +28,7 @@ void DashboardPage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::N Poco::DeflatingOutputStream _gzipStream(_responseStream, Poco::DeflatingStreamBuf::STREAM_GZIP, 1); std::ostream& responseStream = _compressResponse ? _gzipStream : _responseStream; responseStream << "\n"; -#line 10 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\dashboard.cpsp" +#line 10 "/home/rock/code/gradido_login_server/src/cpsp/dashboard.cpsp" //Poco::Net::NameValueCollection cookies; //request.getCookies(cookies); @@ -48,26 +48,26 @@ void DashboardPage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::N responseStream << "\n"; responseStream << "
\n"; responseStream << "\t

Willkommen "; -#line 28 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\dashboard.cpsp" +#line 28 "/home/rock/code/gradido_login_server/src/cpsp/dashboard.cpsp" responseStream << ( mSession->getUser()->getName() ); responseStream << "

\n"; responseStream << "\t

Status

\n"; responseStream << "\t

"; -#line 30 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\dashboard.cpsp" +#line 30 "/home/rock/code/gradido_login_server/src/cpsp/dashboard.cpsp" responseStream << ( mSession->getSessionStateString() ); responseStream << "

\n"; responseStream << "\t"; -#line 31 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\dashboard.cpsp" +#line 31 "/home/rock/code/gradido_login_server/src/cpsp/dashboard.cpsp" if(mSession->getSessionState() == SESSION_STATE_EMAIL_VERIFICATION_SEND) { responseStream << "\n"; responseStream << "\t

Verification Code E-Mail wurde erfolgreich an dich verschickt, bitte schaue auch in dein Spam-Verzeichnis nach wenn du sie nicht findest und klicke auf den Link den du dort findest oder kopiere den Code hier her:

\n"; - responseStream << "\t
\n"; + responseStream << "\t\n"; responseStream << "\t\t\n"; responseStream << "\t\t\n"; responseStream << "\t
\n"; responseStream << "\t"; -#line 37 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\dashboard.cpsp" +#line 37 "/home/rock/code/gradido_login_server/src/cpsp/dashboard.cpsp" } responseStream << "\n"; - responseStream << "\tAbmelden\n"; + responseStream << "\tAbmelden\n"; responseStream << "
\n"; responseStream << "\n"; responseStream << "\n"; diff --git a/src/cpp/HTTPInterface/LoginPage.cpp b/src/cpp/HTTPInterface/LoginPage.cpp index da6457b8a..359f8ef55 100644 --- a/src/cpp/HTTPInterface/LoginPage.cpp +++ b/src/cpp/HTTPInterface/LoginPage.cpp @@ -5,7 +5,7 @@ #include "Poco/DeflatingStream.h" -#line 4 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\login.cpsp" +#line 4 "/home/rock/code/gradido_login_server/src/cpsp/login.cpsp" #include "../SingletonManager/SessionManager.h" #include "Poco/Net/HTTPCookie.h" @@ -21,7 +21,7 @@ void LoginPage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Net:: if (_compressResponse) response.set("Content-Encoding", "gzip"); Poco::Net::HTMLForm form(request, request.stream()); -#line 10 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\login.cpsp" +#line 10 "/home/rock/code/gradido_login_server/src/cpsp/login.cpsp" auto session = SessionManager::getInstance()->getNewSession(); @@ -78,7 +78,7 @@ void LoginPage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Net:: responseStream << "\t
\n"; responseStream << "\t\t

Login

\n"; responseStream << "\t\t"; -#line 62 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\login.cpsp" +#line 62 "/home/rock/code/gradido_login_server/src/cpsp/login.cpsp" responseStream << ( session->getErrorsHtml() ); responseStream << "\n"; responseStream << "\t\t
\n"; @@ -96,7 +96,7 @@ void LoginPage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Net:: responseStream << "\t\t
\n"; responseStream << "\t\t\n"; responseStream << "\t\t

Du hast noch keinen Account? Dann folge dem Link um dir einen anzulegen

\n"; - responseStream << "\t\tNeuen Account anlegen\n"; + responseStream << "\t\tNeuen Account anlegen\n"; responseStream << "\t
\n"; responseStream << "\n"; responseStream << "\n"; diff --git a/src/cpp/HTTPInterface/PageRequestHandlerFactory.cpp b/src/cpp/HTTPInterface/PageRequestHandlerFactory.cpp index 67af9dcc5..b5f83d5ac 100644 --- a/src/cpp/HTTPInterface/PageRequestHandlerFactory.cpp +++ b/src/cpp/HTTPInterface/PageRequestHandlerFactory.cpp @@ -81,13 +81,13 @@ Poco::Net::HTTPRequestHandler* PageRequestHandlerFactory::createRequestHandler(c } } else { - if (uri == "/config") { + if (url_first_part == "/config") { return new ConfigPage; } - else if (uri == "/login") { + else if (url_first_part == "/login") { return new LoginPage; } - else if (uri == "/register") { + else if (url_first_part == "/register") { return new RegisterPage; } } diff --git a/src/cpp/HTTPInterface/PassphrasePage.cpp b/src/cpp/HTTPInterface/PassphrasePage.cpp index 4b34f5bbd..ed6d46693 100644 --- a/src/cpp/HTTPInterface/PassphrasePage.cpp +++ b/src/cpp/HTTPInterface/PassphrasePage.cpp @@ -5,7 +5,7 @@ #include "Poco/DeflatingStream.h" -#line 7 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\passphrase.cpsp" +#line 7 "/home/rock/code/gradido_login_server/src/cpsp/passphrase.cpsp" enum PageState @@ -29,7 +29,7 @@ void PassphrasePage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco:: if (_compressResponse) response.set("Content-Encoding", "gzip"); Poco::Net::HTMLForm form(request, request.stream()); -#line 15 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\passphrase.cpsp" +#line 15 "/home/rock/code/gradido_login_server/src/cpsp/passphrase.cpsp" PageState state = PAGE_ASK_PASSPHRASE; bool hasErrors = mSession->errorCount() > 0; @@ -94,18 +94,18 @@ void PassphrasePage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco:: responseStream << "\n"; responseStream << "
\n"; responseStream << "\t"; -#line 75 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\passphrase.cpsp" +#line 75 "/home/rock/code/gradido_login_server/src/cpsp/passphrase.cpsp" if(mSession && hasErrors) { responseStream << "\n"; responseStream << "\t\t"; -#line 76 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\passphrase.cpsp" +#line 76 "/home/rock/code/gradido_login_server/src/cpsp/passphrase.cpsp" responseStream << ( mSession->getErrorsHtml() ); responseStream << "\n"; responseStream << "\t"; -#line 77 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\passphrase.cpsp" +#line 77 "/home/rock/code/gradido_login_server/src/cpsp/passphrase.cpsp" } responseStream << "\n"; responseStream << "\t

Einen neuen Account anlegen

\n"; responseStream << "\t"; -#line 79 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\passphrase.cpsp" +#line 79 "/home/rock/code/gradido_login_server/src/cpsp/passphrase.cpsp" if(state == PAGE_SHOW_PASSPHRASE) { responseStream << "\n"; responseStream << "\t\t
\n"; responseStream << "\t\t\t
\n"; @@ -113,16 +113,17 @@ void PassphrasePage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco:: responseStream << "\t\t\t
\n"; responseStream << "\t\t\t
\n"; responseStream << "\t\t\t\t"; -#line 85 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\passphrase.cpsp" +#line 85 "/home/rock/code/gradido_login_server/src/cpsp/passphrase.cpsp" responseStream << ( mSession->getPassphrase() ); responseStream << "\n"; responseStream << "\t\t\t
\n"; - responseStream << "\t\t\tWeiter\n"; + responseStream << "\t\t\tWeiter\n"; responseStream << "\t\t
\n"; responseStream << "\t"; -#line 89 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\passphrase.cpsp" +#line 89 "/home/rock/code/gradido_login_server/src/cpsp/passphrase.cpsp" } else if(state == PAGE_ASK_PASSPHRASE) { responseStream << "\n"; - responseStream << "\t
\n"; + responseStream << "\t

Deine E-Mail Adresse wurde erfolgreich bestätigt.

\n"; + responseStream << "\t\n"; responseStream << "\t\t
\n"; responseStream << "\t\t\tNeue Gradido Adresse anlegen / wiederherstellen\n"; responseStream << "\t\t\t

Hast du schonmal ein Gradido Konto besessen?

\n"; @@ -135,7 +136,7 @@ void PassphrasePage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco:: responseStream << "\t\t\t\t\n"; responseStream << "\t\t\t

\n"; responseStream << "\t\t\t\n"; responseStream << "\t\t
\n"; @@ -143,13 +144,13 @@ void PassphrasePage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco:: responseStream << "\t\t\n"; responseStream << "\t
\n"; responseStream << "\t"; -#line 107 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\passphrase.cpsp" +#line 108 "/home/rock/code/gradido_login_server/src/cpsp/passphrase.cpsp" } else { responseStream << "\n"; responseStream << "\t\t
\n"; responseStream << "\t\t\tUngültige Seite, wenn du das siehst stimmt hier etwas nicht. Bitte wende dich an den Server-Admin. \n"; responseStream << "\t\t
\n"; responseStream << "\t"; -#line 111 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\passphrase.cpsp" +#line 112 "/home/rock/code/gradido_login_server/src/cpsp/passphrase.cpsp" } responseStream << "\n"; responseStream << "
\n"; responseStream << "\n"; diff --git a/src/cpp/HTTPInterface/RegisterPage.cpp b/src/cpp/HTTPInterface/RegisterPage.cpp index a09419150..66ca2eb8e 100644 --- a/src/cpp/HTTPInterface/RegisterPage.cpp +++ b/src/cpp/HTTPInterface/RegisterPage.cpp @@ -5,7 +5,7 @@ #include "Poco/DeflatingStream.h" -#line 4 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\register.cpsp" +#line 4 "/home/rock/code/gradido_login_server/src/cpsp/register.cpsp" #include "../SingletonManager/SessionManager.h" #include "Poco/Net/HTTPCookie.h" @@ -19,7 +19,7 @@ void RegisterPage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Ne if (_compressResponse) response.set("Content-Encoding", "gzip"); Poco::Net::HTMLForm form(request, request.stream()); -#line 8 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\register.cpsp" +#line 8 "/home/rock/code/gradido_login_server/src/cpsp/register.cpsp" auto session = SessionManager::getInstance()->getNewSession(); bool userReturned = false; @@ -73,7 +73,7 @@ void RegisterPage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Ne responseStream << "
\n"; responseStream << "\t

Einen neuen Account anlegen

\n"; responseStream << "\t"; -#line 57 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\register.cpsp" +#line 57 "/home/rock/code/gradido_login_server/src/cpsp/register.cpsp" if(!form.empty() && userReturned) { responseStream << "\n"; responseStream << "\t\t\n"; responseStream << "\t\t
\n"; @@ -83,19 +83,19 @@ void RegisterPage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Ne responseStream << "\t\t\t
\n"; responseStream << "\t\t
\n"; responseStream << "\t"; -#line 65 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\register.cpsp" +#line 65 "/home/rock/code/gradido_login_server/src/cpsp/register.cpsp" } else { responseStream << "\n"; responseStream << "\t
\n"; responseStream << "\t\n"; responseStream << "\t\t"; -#line 68 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\register.cpsp" +#line 68 "/home/rock/code/gradido_login_server/src/cpsp/register.cpsp" if(!form.empty() && !userReturned) { responseStream << "\n"; responseStream << "\t\t\t"; -#line 69 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\register.cpsp" +#line 69 "/home/rock/code/gradido_login_server/src/cpsp/register.cpsp" responseStream << ( session->getErrorsHtml() ); responseStream << "\n"; responseStream << "\t\t"; -#line 70 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\register.cpsp" +#line 70 "/home/rock/code/gradido_login_server/src/cpsp/register.cpsp" } responseStream << "\n"; responseStream << "\t\t
\n"; responseStream << "\t\t\tAccount anlegen\n"; @@ -103,14 +103,14 @@ void RegisterPage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Ne responseStream << "\t\t\t

\n"; responseStream << "\t\t\t\t\n"; responseStream << "\t\t\t\t\n"; responseStream << "\t\t\t

\n"; responseStream << "\t\t\t

\n"; responseStream << "\t\t\t\t\n"; responseStream << "\t\t\t\t\n"; responseStream << "\t\t\t

\n"; @@ -127,7 +127,7 @@ void RegisterPage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Ne responseStream << "\t\t\n"; responseStream << "\t\n"; responseStream << "\t"; -#line 94 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\register.cpsp" +#line 94 "/home/rock/code/gradido_login_server/src/cpsp/register.cpsp" } responseStream << "\n"; responseStream << "\n"; responseStream << "\n"; diff --git a/src/cpp/HTTPInterface/SaveKeysPage.cpp b/src/cpp/HTTPInterface/SaveKeysPage.cpp index 68c0beade..00acf3527 100644 --- a/src/cpp/HTTPInterface/SaveKeysPage.cpp +++ b/src/cpp/HTTPInterface/SaveKeysPage.cpp @@ -5,7 +5,7 @@ #include "Poco/DeflatingStream.h" -#line 7 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\saveKeys.cpsp" +#line 7 "/home/rock/code/gradido_login_server/src/cpsp/saveKeys.cpsp" #include "Poco/Net/HTTPServerParams.h" @@ -32,7 +32,7 @@ void SaveKeysPage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Ne if (_compressResponse) response.set("Content-Encoding", "gzip"); Poco::Net::HTMLForm form(request, request.stream()); -#line 18 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\saveKeys.cpsp" +#line 18 "/home/rock/code/gradido_login_server/src/cpsp/saveKeys.cpsp" bool hasErrors = mSession->errorCount() > 0; @@ -109,18 +109,18 @@ void SaveKeysPage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Ne responseStream << "\n"; responseStream << "
\n"; responseStream << "\t"; -#line 90 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\saveKeys.cpsp" +#line 90 "/home/rock/code/gradido_login_server/src/cpsp/saveKeys.cpsp" if(hasErrors) { responseStream << "\n"; responseStream << "\t\t"; -#line 91 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\saveKeys.cpsp" +#line 91 "/home/rock/code/gradido_login_server/src/cpsp/saveKeys.cpsp" responseStream << ( mSession->getErrorsHtml() ); responseStream << "\n"; responseStream << "\t"; -#line 92 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\saveKeys.cpsp" +#line 92 "/home/rock/code/gradido_login_server/src/cpsp/saveKeys.cpsp" } responseStream << "\n"; responseStream << "\t

Daten speichern

\n"; responseStream << "\t"; -#line 94 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\saveKeys.cpsp" +#line 94 "/home/rock/code/gradido_login_server/src/cpsp/saveKeys.cpsp" if(state == PAGE_ASK) { responseStream << "\n"; responseStream << "\t
\n"; responseStream << "\t\t
\n"; @@ -135,7 +135,7 @@ void SaveKeysPage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Ne responseStream << "\t\t\t\t\n"; responseStream << "\t\t\t

\n"; responseStream << "\t\t\t"; -#line 107 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\saveKeys.cpsp" +#line 107 "/home/rock/code/gradido_login_server/src/cpsp/saveKeys.cpsp" if(!hasPassword) { responseStream << "\n"; responseStream << "\t\t\t\t

Ich brauche nochmal dein Passwort wenn du dich für ja entscheidest.

\n"; responseStream << "\t\t\t\t

\n"; @@ -143,7 +143,7 @@ void SaveKeysPage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Ne responseStream << "\t\t\t\t\t\n"; responseStream << "\t\t\t\t

\n"; responseStream << "\t\t\t"; -#line 113 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\saveKeys.cpsp" +#line 113 "/home/rock/code/gradido_login_server/src/cpsp/saveKeys.cpsp" } responseStream << "\n"; responseStream << "\t\t\t

\n"; responseStream << "\t\t\t\t\n"; @@ -168,31 +168,31 @@ void SaveKeysPage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Ne responseStream << "\t\t\n"; responseStream << "\t

\n"; responseStream << "\t"; -#line 136 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\saveKeys.cpsp" +#line 136 "/home/rock/code/gradido_login_server/src/cpsp/saveKeys.cpsp" } else if(state == PAGE_SHOW_PUBKEY) { responseStream << "\n"; responseStream << "\t\t
\n"; responseStream << "\t\t\t

Je nach Auswahl werden deine Daten nun verschlüsselt und gespeichert.

\n"; responseStream << "\t\t\t

Deine Gradido Adresse (Hex):

\n"; responseStream << "\t\t\t

\n"; responseStream << "\t\t\t\t"; -#line 141 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\saveKeys.cpsp" +#line 141 "/home/rock/code/gradido_login_server/src/cpsp/saveKeys.cpsp" responseStream << ( mSession->getUser()->getPublicKeyHex() ); responseStream << "\n"; responseStream << "\t\t\t

\n"; responseStream << "\t\t\tZurück zur Startseite\n"; responseStream << "\t\t
\n"; responseStream << "\t"; -#line 145 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\saveKeys.cpsp" +#line 145 "/home/rock/code/gradido_login_server/src/cpsp/saveKeys.cpsp" } else if(state == PAGE_ERROR) { responseStream << "\n"; responseStream << "\t\t
\n"; responseStream << "\t\t\t

Ein Fehler trat auf, bitte versuche es erneut oder wende dich an den Server-Admin

\n"; responseStream << "\t\t\t"; -#line 148 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\saveKeys.cpsp" +#line 148 "/home/rock/code/gradido_login_server/src/cpsp/saveKeys.cpsp" responseStream << ( mSession->getSessionStateString() ); responseStream << "\n"; responseStream << "\t\t
\n"; responseStream << "\t"; -#line 150 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\saveKeys.cpsp" +#line 150 "/home/rock/code/gradido_login_server/src/cpsp/saveKeys.cpsp" } responseStream << "\n"; responseStream << "
\n"; responseStream << "\n"; diff --git a/src/cpp/MySQL/MysqlTable.cpp b/src/cpp/MySQL/MysqlTable.cpp index 4fd9290d6..1dee2e32c 100644 --- a/src/cpp/MySQL/MysqlTable.cpp +++ b/src/cpp/MySQL/MysqlTable.cpp @@ -76,16 +76,17 @@ int MysqlTable::connectToStatement(Poco::Data::Statement* stmt, int rowIndex/* = for (auto itRow = mRows.begin(); itRow != mRows.end(); itRow++) { if (0 == rowIndex) { for (auto itCell = (*itRow)->begin(); itCell != (*itRow)->end(); itCell++) { + MysqlTableCell* cell = (*itCell); switch ((*itCell)->getType()) { case MYSQL_ROW_STRING: - strCopy = (const char*)(*itCell); + strCopy = (const char*)(*cell); stmt->bind(strCopy); break; - case MYSQL_ROW_INT: stmt->bind((long)(*itCell)); break; - case MYSQL_ROW_LONG: stmt->bind((long long)(*itCell)); break; + case MYSQL_ROW_INT: stmt->bind((Poco::Int32)(*cell)); break; + case MYSQL_ROW_LONG: stmt->bind((Poco::Int64)(*cell)); break; case MYSQL_ROW_BINARY: // Poco::Data::BLOB data(std::vector({ '0', '0', '0', '0', '0', '0', '0', '0', '0', '0' })); - Poco::Data::BLOB data((unsigned char*)(*itCell), (*itCell)->size()); + Poco::Data::BLOB data((unsigned char*)(*cell), cell->size()); stmt->bind(data); break; } diff --git a/src/cpp/MySQL/MysqlTable.h b/src/cpp/MySQL/MysqlTable.h index 5f0af54c6..5bd335814 100644 --- a/src/cpp/MySQL/MysqlTable.h +++ b/src/cpp/MySQL/MysqlTable.h @@ -55,8 +55,8 @@ public: inline MysqlRowType getType() const { return mType; } virtual operator const char*() const { return ""; } - virtual operator long() const { return 0; } - virtual operator long long() const { return 0; } + virtual operator Poco::Int32() const { return 0; } + virtual operator Poco::Int64() const { return 0; } virtual operator unsigned char*() const { return nullptr; } virtual size_t size() { return 0; } @@ -80,22 +80,22 @@ protected: class MysqlTableCellInt : public MysqlTableCell { public: - MysqlTableCellInt(long value) : MysqlTableCell(MYSQL_ROW_INT), mContent(value) {} + MysqlTableCellInt(Poco::Int32 value) : MysqlTableCell(MYSQL_ROW_INT), mContent(value) {} - virtual operator long() const { return mContent; } + virtual operator Poco::Int32() const { return mContent; } protected: - long mContent; + Poco::Int32 mContent; }; class MysqlTableCellLong : public MysqlTableCell { public: - MysqlTableCellLong(const long long& value) : MysqlTableCell(MYSQL_ROW_LONG), mContent(value) {} + MysqlTableCellLong(const Poco::Int64& value) : MysqlTableCell(MYSQL_ROW_LONG), mContent(value) {} - virtual operator long long() const { return mContent; } + virtual operator Poco::Int64() const { return mContent; } protected: - long long mContent; + Poco::Int64 mContent; }; class MysqlTableCellTimestamp : public MysqlTableCell @@ -167,8 +167,8 @@ public: addError(new ParamError(__FUNCTION__, "invalid field index:", index)); return nullptr; } - inline bool addCellToCurrentRow(long value) { return addCellToCurrentRow(new MysqlTableCellInt(value)); } - inline bool addCellToCurrentRow(const long long& value) { return addCellToCurrentRow(new MysqlTableCellLong(value)); } + inline bool addCellToCurrentRow(Poco::Int32 value) { return addCellToCurrentRow(new MysqlTableCellInt(value)); } + inline bool addCellToCurrentRow(const Poco::Int64& value) { return addCellToCurrentRow(new MysqlTableCellLong(value)); } inline bool addCellToCurrentRow(const char* string) { return addCellToCurrentRow(new MysqlTableCellString(string)); } inline bool addCellToCurrentRow(const double& value) { return addCellToCurrentRow(new MysqlTableCellDecimal(value)); } inline bool addCellToCurrentRow(const unsigned char* bytes, size_t size) { return addCellToCurrentRow(new MysqlTableCellBinary(bytes, size)); } diff --git a/src/cpp/ServerConfig.cpp b/src/cpp/ServerConfig.cpp index e3fd2a189..02c310019 100644 --- a/src/cpp/ServerConfig.cpp +++ b/src/cpp/ServerConfig.cpp @@ -5,7 +5,7 @@ #include "Poco/Net/SSLManager.h" #include "Poco/Net/KeyConsoleHandler.h" -#include "Poco/Net/ConsoleCertificateHandler.h" +#include "Poco/Net/RejectCertificateHandler.h" #include "Poco/SharedPtr.h" using Poco::Net::SSLManager; @@ -13,7 +13,7 @@ using Poco::Net::Context; using Poco::Net::KeyConsoleHandler; using Poco::Net::PrivateKeyPassphraseHandler; using Poco::Net::InvalidCertificateHandler; -using Poco::Net::ConsoleCertificateHandler; +using Poco::Net::RejectCertificateHandler; using Poco::SharedPtr; namespace ServerConfig { @@ -88,7 +88,7 @@ namespace ServerConfig { bool initSSLClientContext() { - SharedPtr pCert = new ConsoleCertificateHandler(false); // ask the user via console + SharedPtr pCert = new RejectCertificateHandler(false); // reject invalid certificates /* Context(Usage usage, const std::string& certificateNameOrPath, @@ -96,7 +96,13 @@ namespace ServerConfig { int options = OPT_DEFAULTS, const std::string& certificateStoreName = CERT_STORE_MY); */ - g_SSL_CLient_Context = new Context(Context::CLIENT_USE, "", "", "", Context::VERIFY_RELAXED, 9, true, "ALL:!ADH:!LOW:!EXP:!MD5:@STRENGTH"); + try { + g_SSL_CLient_Context = new Context(Context::CLIENT_USE, "", "", "cacert.pem", Context::VERIFY_RELAXED, 9, true, "ALL:!ADH:!LOW:!EXP:!MD5:@STRENGTH"); + } catch(Poco::Exception& ex) { + printf("[ServerConfig::initSSLClientContext] error init ssl context, maybe no cacert.pem found?\nPlease make sure you have cacert.pem (CA/root certificates) next to binary from https://curl.haxx.se/docs/caextract.html\n"); + return false; + } + //g_SSL_CLient_Context = new Context(Context::CLIENT_USE, "", "", "", Context::VERIFY_RELAXED, 9, true, "ALL:!ADH:!LOW:!EXP:!MD5:@STRENGTH"); // another poco version? //g_SSL_CLient_Context = new Context(Context::CLIENT_USE, "", Context::VERIFY_RELAXED, Context::OPT_DEFAULTS); SSLManager::instance().initializeClient(0, pCert, g_SSL_CLient_Context); diff --git a/src/cpp/model/Session.cpp b/src/cpp/model/Session.cpp index e1bee67cf..7b2f96faa 100644 --- a/src/cpp/model/Session.cpp +++ b/src/cpp/model/Session.cpp @@ -194,7 +194,7 @@ bool Session::createUser(const std::string& name, const std::string& email, cons std::stringstream ss; ss << "Hallo " << name << "," << std::endl << std::endl; ss << "Du oder jemand anderes hat sich soeben mit dieser E-Mail Adresse bei Gradido registriert. " << std::endl; - ss << "Wenn du es warst, klicke bitte auf den Link: https://gradido2.dario-rekowski.de/accounts/checkEmail/" << mEmailVerificationCode << std::endl; + ss << "Wenn du es warst, klicke bitte auf den Link: https://gradido2.dario-rekowski.de/account/checkEmail/" << mEmailVerificationCode << std::endl; ss << "oder kopiere den Code: " << mEmailVerificationCode << " selbst dort hinein." << std::endl << std::endl; ss << "Mit freundlichen Grüße" << std::endl; ss << "Dario, Gradido Server Admin" << std::endl; diff --git a/src/cpp/tasks/CPUSheduler.cpp b/src/cpp/tasks/CPUSheduler.cpp index 3620dd3b8..b17a94086 100644 --- a/src/cpp/tasks/CPUSheduler.cpp +++ b/src/cpp/tasks/CPUSheduler.cpp @@ -1,6 +1,7 @@ #include "CPUSheduler.h" #include "CPUShedulerThread.h" #include "CPUTask.h" +#include namespace UniLib { namespace controller { @@ -9,7 +10,9 @@ namespace UniLib { : mThreads(new CPUShedulerThread*[threadCount]), mThreadCount(threadCount), mName(name) { char nameBuffer[10]; memset(nameBuffer, 0, 10); - uint8_t len = min(strlen(name), 7); + //uint8_t len = std:: min(strlen(name), 7); + uint8_t len = strlen(name); + if(len > 7) len = 7; memcpy(nameBuffer, name, len); for(int i = 0; i < threadCount; i++) { sprintf(&nameBuffer[len], "%.2d", i); diff --git a/src/cpp/tasks/PrepareEmailTask.cpp b/src/cpp/tasks/PrepareEmailTask.cpp index 6439c24b9..712a6377a 100644 --- a/src/cpp/tasks/PrepareEmailTask.cpp +++ b/src/cpp/tasks/PrepareEmailTask.cpp @@ -3,6 +3,8 @@ #include "../ServerConfig.h" #include "../SingletonManager/ErrorManager.h" +#include "Poco/Net/SSLException.h" + PrepareEmailTask::PrepareEmailTask(UniLib::controller::CPUSheduler* cpuScheduler) : UniLib::controller::CPUTask(cpuScheduler), mMailClientSession(nullptr) { @@ -21,10 +23,13 @@ int PrepareEmailTask::run() Profiler timeUsed; mMailClientSession = new Poco::Net::SecureSMTPClientSession(ServerConfig::g_EmailAccount.url, ServerConfig::g_EmailAccount.port); mMailClientSession->login(); - mMailClientSession->startTLS(ServerConfig::g_SSL_CLient_Context); - - - mMailClientSession->login(Poco::Net::SMTPClientSession::AUTH_LOGIN, ServerConfig::g_EmailAccount.username, ServerConfig::g_EmailAccount.password); + try { + mMailClientSession->startTLS(ServerConfig::g_SSL_CLient_Context); + mMailClientSession->login(Poco::Net::SMTPClientSession::AUTH_LOGIN, ServerConfig::g_EmailAccount.username, ServerConfig::g_EmailAccount.password); + } catch(Poco::Net::SSLException& ex) { + printf("[PrepareEmailTask] ssl certificate error: %s\nPlease make sure you have cacert.pem (CA/root certificates) next to binary from https://curl.haxx.se/docs/caextract.html\n", ex.displayText().data()); + return -1; + } printf("[PrepareEmailTask] time: %s\n", timeUsed.string().data()); /* diff --git a/src/cpsp/dashboard.cpsp b/src/cpsp/dashboard.cpsp index a339e8c39..5374b95e0 100644 --- a/src/cpsp/dashboard.cpsp +++ b/src/cpsp/dashboard.cpsp @@ -30,12 +30,12 @@

<%= mSession->getSessionStateString() %>

<% if(mSession->getSessionState() == SESSION_STATE_EMAIL_VERIFICATION_SEND) { %>

Verification Code E-Mail wurde erfolgreich an dich verschickt, bitte schaue auch in dein Spam-Verzeichnis nach wenn du sie nicht findest und klicke auf den Link den du dort findest oder kopiere den Code hier her:

-
+
<% } %> - Abmelden + Abmelden diff --git a/src/cpsp/login.cpsp b/src/cpsp/login.cpsp index 287ebcb2f..ed6257a0c 100644 --- a/src/cpsp/login.cpsp +++ b/src/cpsp/login.cpsp @@ -75,7 +75,7 @@ label:not(.grd_radio_label) {

Du hast noch keinen Account? Dann folge dem Link um dir einen anzulegen

- Neuen Account anlegen + Neuen Account anlegen diff --git a/src/cpsp/passphrase.cpsp b/src/cpsp/passphrase.cpsp index 1d956c930..f70371f13 100644 --- a/src/cpsp/passphrase.cpsp +++ b/src/cpsp/passphrase.cpsp @@ -84,10 +84,11 @@ label:not(.grd_radio_label) {
<%= mSession->getPassphrase() %>
- Weiter + Weiter <% } else if(state == PAGE_ASK_PASSPHRASE) { %> -
+

Deine E-Mail Adresse wurde erfolgreich bestätigt.

+
Neue Gradido Adresse anlegen / wiederherstellen

Hast du schonmal ein Gradido Konto besessen?