adding server config variable to config if server is test (without ssl), staging or production, disable ssl force by login cookie in test server builds

This commit is contained in:
Dario 2020-05-12 10:48:13 +02:00
parent 40daddabbe
commit 9eee922a16
3 changed files with 30 additions and 7 deletions

View File

@ -127,6 +127,19 @@ namespace ServerConfig {
return true; return true;
} }
ServerSetupType getServerSetupTypeFromString(const std::string& serverSetupTypeString) {
if ("test" == serverSetupTypeString) {
return SERVER_TYPE_TEST;
}
if ("staging" == serverSetupTypeString) {
return SERVER_TYPE_STAGING;
}
if ("production" == serverSetupTypeString) {
return SERVER_TYPE_PRODUCTION;
}
return SERVER_TYPE_PRODUCTION;
}
bool loadMnemonicWordLists() bool loadMnemonicWordLists()
{ {
@ -191,11 +204,10 @@ namespace ServerConfig {
g_php_serverPath = cfg.getString("phpServer.url", ""); g_php_serverPath = cfg.getString("phpServer.url", "");
replaceZeroIPWithLocalhostIP(g_php_serverPath); replaceZeroIPWithLocalhostIP(g_php_serverPath);
g_php_serverHost = cfg.getString("phpServer.host", ""); g_php_serverHost = cfg.getString("phpServer.host", "");
//replaceZeroIPWithLocalhostIP(g_php_serverHost); //g_ServerSetupType
/*std::string testIp = "http://0.0.0.0/account"; auto serverSetupTypeString = cfg.getString("ServerSetupType", "");
replaceZeroIPWithLocalhostIP(testIp); g_ServerSetupType = getServerSetupTypeFromString(serverSetupTypeString);
printf("testIp: %s\n", testIp.data());*/
//g_FakeLoginSleepTime = cfg.getInt("crypto.fake_login_sleep_time", g_FakeLoginSleepTime);
return true; return true;
} }

View File

@ -31,6 +31,13 @@ namespace ServerConfig {
int port; int port;
}; };
enum ServerSetupType {
SERVER_TYPE_TEST,
SERVER_TYPE_STAGING,
SERVER_TYPE_PRODUCTION
};
extern Mnemonic g_Mnemonic_WordLists[MNEMONIC_MAX]; extern Mnemonic g_Mnemonic_WordLists[MNEMONIC_MAX];
extern ObfusArray* g_ServerCryptoKey; extern ObfusArray* g_ServerCryptoKey;
@ -50,6 +57,7 @@ namespace ServerConfig {
extern int g_FakeLoginSleepTime; extern int g_FakeLoginSleepTime;
extern std::string g_versionString; extern std::string g_versionString;
extern bool g_disableEmail; extern bool g_disableEmail;
extern ServerSetupType g_ServerSetupType;
bool loadMnemonicWordLists(); bool loadMnemonicWordLists();
bool initServerCrypto(const Poco::Util::LayeredConfiguration& cfg); bool initServerCrypto(const Poco::Util::LayeredConfiguration& cfg);

View File

@ -860,9 +860,12 @@ Poco::Net::HTTPCookie Session::getLoginCookie()
// prevent reading or changing cookie with js // prevent reading or changing cookie with js
keks.setHttpOnly(); keks.setHttpOnly();
keks.setPath("/"); keks.setPath("/");
// send cookie only via https // send cookie only via https, on linux, except in test builds
#ifndef WIN32 #ifndef WIN32
if (SERVER_TYPE_PRODUCTION == ServerConfig::g_ServerSetupType ||
SERVER_TYPE_STAGING == ServerConfig::g_ServerSetupType) {
keks.setSecure(true); keks.setSecure(true);
}
#endif #endif
return keks; return keks;