diff --git a/esp3d/src/core/espcmd/ESP400.cpp b/esp3d/src/core/espcmd/ESP400.cpp index 059c947b..fc0d5840 100644 --- a/esp3d/src/core/espcmd/ESP400.cpp +++ b/esp3d/src/core/espcmd/ESP400.cpp @@ -191,6 +191,17 @@ bool Commands::ESP400(const char* cmd_params, level_authenticate_type auth_type, output->print ("\",\"H\":\"user pwd\",\"M\":\""); output->print (Settings_ESP3D::get_min_string_size(ESP_USER_PWD)); output->print ("\"}"); + + //session timeout + output->print (",{\"F\":\"security/security\",\"P\":\""); + output->print (ESP_SESSION_TIMEOUT); + output->print ("\",\"T\":\"B\",\"V\":\""); + output->print (Settings_ESP3D::read_byte(ESP_SESSION_TIMEOUT)); + output->print ("\",\"S\":\""); + output->print (Settings_ESP3D::get_max_byte(ESP_SESSION_TIMEOUT)); + output->print ("\",\"H\":\"session timeout\",\"M\":\""); + output->print (Settings_ESP3D::get_min_byte(ESP_SESSION_TIMEOUT)); + output->print ("\"}"); #endif //AUTHENTICATION_FEATURE #ifdef HTTP_FEATURE diff --git a/esp3d/src/core/espcmd/ESP401.cpp b/esp3d/src/core/espcmd/ESP401.cpp index 3f32d8b1..e65b8d00 100644 --- a/esp3d/src/core/espcmd/ESP401.cpp +++ b/esp3d/src/core/espcmd/ESP401.cpp @@ -76,6 +76,11 @@ bool Commands::ESP401(const char* cmd_params, level_authenticate_type auth_type, case ESP_TARGET_FW: Settings_ESP3D::GetFirmwareTarget(true); break; +#ifdef AUTHENTICATION_FEATURE + case ESP_SESSION_TIMEOUT: + AuthenticationService::setSessionTimeout(1000*60*sval.toInt()); + break; +#endif //AUTHENTICATION_FEATURE #ifdef SD_DEVICE case ESP_SD_DEVICE_TYPE: Settings_ESP3D::GetSDDevice(true); diff --git a/esp3d/src/core/espcmd/ESP420.cpp b/esp3d/src/core/espcmd/ESP420.cpp index 17b32ec1..86f176fc 100644 --- a/esp3d/src/core/espcmd/ESP420.cpp +++ b/esp3d/src/core/espcmd/ESP420.cpp @@ -1134,6 +1134,23 @@ bool Commands::ESP420(const char* cmd_params, level_authenticate_type auth_type, } else { output->printLN(""); } +#if defined (AUTHENTICATION_FEATURE) + if (!plain) { + output->print (",{\"id\":\""); + } + output->print ("authentication"); + if (!plain) { + output->print ("\",\"value\":\""); + } else { + output->print (": "); + } + output->print ("ON"); + if (!plain) { + output->print ("\"}"); + } else { + output->printLN(""); + } +#endif //AUTHENTICATION_FEATURE #if defined (NOTIFICATION_FEATURE) if (!plain) { output->print (",{\"id\":\""); diff --git a/esp3d/src/core/settings_esp3d.cpp b/esp3d/src/core/settings_esp3d.cpp index bda882a9..2c0d4f31 100644 --- a/esp3d/src/core/settings_esp3d.cpp +++ b/esp3d/src/core/settings_esp3d.cpp @@ -135,6 +135,7 @@ #define DEFAULT_BOOT_DELAY 10000L #define DEFAULT_CALIBRATION_VALUE 0 #define DEFAULT_CALIBRATION_DONE 0 +#define DEFAULT_SESSION_TIMEOUT 3 #ifdef WIFI_FEATURE //default string values @@ -235,6 +236,11 @@ uint8_t Settings_ESP3D::get_default_byte_value(int pos) case ESP_RADIO_MODE: res = DEFAULT_ESP_RADIO_MODE; break; +#ifdef AUTHENTICATION_FEATURE + case ESP_SESSION_TIMEOUT: + res = DEFAULT_SESSION_TIMEOUT; + break; +#endif //AUTHENTICATION_FEATURE #ifdef TIMESTAMP_FEATURE case ESP_INTERNET_TIME: res = DEFAULT_INTERNET_TIME; @@ -1143,6 +1149,8 @@ bool Settings_ESP3D::reset() Settings_ESP3D::write_string(ESP_ADMIN_PWD,Settings_ESP3D::get_default_string_value(ESP_ADMIN_PWD).c_str()); //User password Settings_ESP3D::write_string(ESP_USER_PWD,Settings_ESP3D::get_default_string_value(ESP_USER_PWD).c_str()); + //Session timeout + Settings_ESP3D::write_byte(ESP_SESSION_TIMEOUT,Settings_ESP3D::get_default_byte_value(ESP_SESSION_TIMEOUT)); #endif //AUTHENTICATION_FEATURE //Target FW Settings_ESP3D::write_byte(ESP_TARGET_FW,Settings_ESP3D::get_default_byte_value(ESP_TARGET_FW)); diff --git a/esp3d/src/core/settings_esp3d.h b/esp3d/src/core/settings_esp3d.h index 6ced662d..d9902b5e 100644 --- a/esp3d/src/core/settings_esp3d.h +++ b/esp3d/src/core/settings_esp3d.h @@ -77,7 +77,7 @@ #define ESP_TIME_SERVER3 722 //129 bytes 128+1 = string ; warning does not support multibyte char like chinese #define ESP_SD_DEVICE_TYPE 851 //1 bytes = flag #define ESP_SD_MOUNT 852 //1 bytes = flag -#define ESP_FREE_BYTE 853 //1 bytes = flag +#define ESP_SESSION_TIMEOUT 853 //1 bytes = flag #define ESP_DIRECT_SD_CHECK 854 //1 bytes = flag #define ESP_SD_CHECK_UPDATE_AT_BOOT 855//1 bytes = flag #define ESP_NOTIFICATION_SETTINGS 856 //129 bytes 128+1 = string ; warning does not support multibyte char like chinese diff --git a/esp3d/src/include/version.h b/esp3d/src/include/version.h index 37b33293..4fc4e3d8 100644 --- a/esp3d/src/include/version.h +++ b/esp3d/src/include/version.h @@ -22,7 +22,7 @@ #define _VERSION_ESP3D_H //version and sources location -#define FW_VERSION "3.0.0.a62" +#define FW_VERSION "3.0.0.a63" #define REPOSITORY "https://github.com/luc-github/ESP3D/tree/3.0" #endif //_VERSION_ESP3D_H diff --git a/esp3d/src/modules/authentication/authentication_service.cpp b/esp3d/src/modules/authentication/authentication_service.cpp index 086bd6a4..81b04db9 100644 --- a/esp3d/src/modules/authentication/authentication_service.cpp +++ b/esp3d/src/modules/authentication/authentication_service.cpp @@ -118,6 +118,8 @@ bool AuthenticationService::begin(Authwebserver * webserver) #if defined (HTTP_FEATURE) _webserver = webserver; #endif //HTTP_FEATURE + //value is in ms but storage is in min + _sessionTimeout = 1000 * 60 * Settings_ESP3D::read_byte(ESP_SESSION_TIMEOUT); return true; } void AuthenticationService::end()