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;
}
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()
{
@ -191,11 +204,10 @@ namespace ServerConfig {
g_php_serverPath = cfg.getString("phpServer.url", "");
replaceZeroIPWithLocalhostIP(g_php_serverPath);
g_php_serverHost = cfg.getString("phpServer.host", "");
//replaceZeroIPWithLocalhostIP(g_php_serverHost);
/*std::string testIp = "http://0.0.0.0/account";
replaceZeroIPWithLocalhostIP(testIp);
printf("testIp: %s\n", testIp.data());*/
//g_FakeLoginSleepTime = cfg.getInt("crypto.fake_login_sleep_time", g_FakeLoginSleepTime);
//g_ServerSetupType
auto serverSetupTypeString = cfg.getString("ServerSetupType", "");
g_ServerSetupType = getServerSetupTypeFromString(serverSetupTypeString);
return true;
}

View File

@ -31,6 +31,13 @@ namespace ServerConfig {
int port;
};
enum ServerSetupType {
SERVER_TYPE_TEST,
SERVER_TYPE_STAGING,
SERVER_TYPE_PRODUCTION
};
extern Mnemonic g_Mnemonic_WordLists[MNEMONIC_MAX];
extern ObfusArray* g_ServerCryptoKey;
@ -50,6 +57,7 @@ namespace ServerConfig {
extern int g_FakeLoginSleepTime;
extern std::string g_versionString;
extern bool g_disableEmail;
extern ServerSetupType g_ServerSetupType;
bool loadMnemonicWordLists();
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
keks.setHttpOnly();
keks.setPath("/");
// send cookie only via https
// send cookie only via https, on linux, except in test builds
#ifndef WIN32
keks.setSecure(true);
if (SERVER_TYPE_PRODUCTION == ServerConfig::g_ServerSetupType ||
SERVER_TYPE_STAGING == ServerConfig::g_ServerSetupType) {
keks.setSecure(true);
}
#endif
return keks;