From 416e736ea991b3fca213fd670f95ff45daf97a9a Mon Sep 17 00:00:00 2001 From: Rick Watson Date: Tue, 30 Apr 2019 00:30:43 +0100 Subject: [PATCH 01/62] Start work on security manager --- data/config/securitySettings.json | 15 +++++++ src/SecurityManager.cpp | 51 +++++++++++++++++++++ src/SecurityManager.h | 74 +++++++++++++++++++++++++++++++ 3 files changed, 140 insertions(+) create mode 100644 data/config/securitySettings.json create mode 100644 src/SecurityManager.cpp create mode 100644 src/SecurityManager.h diff --git a/data/config/securitySettings.json b/data/config/securitySettings.json new file mode 100644 index 0000000..4b7a9d2 --- /dev/null +++ b/data/config/securitySettings.json @@ -0,0 +1,15 @@ +{ + "jwt_secret":"esp8266-react", + "users": [ + { + "username": "admin", + "password": "admin", + "role": "admin" + }, + { + "username": "guest", + "password": "guest", + "role": "guest" + } + ] +} \ No newline at end of file diff --git a/src/SecurityManager.cpp b/src/SecurityManager.cpp new file mode 100644 index 0000000..01909e4 --- /dev/null +++ b/src/SecurityManager.cpp @@ -0,0 +1,51 @@ +#include + +SecurityManager::SecurityManager(AsyncWebServer* server, FS* fs) : SettingsPersistence(fs, SECURITY_SETTINGS_FILE) { +} + +SecurityManager::~SecurityManager() {} + +void SecurityManager::readFromJsonObject(JsonObject& root) { + _jwtSecret = root["jwt_secret"] | DEFAULT_JWT_SECRET; + + while (_numUsers > 0){ + delete _users[--_numUsers]; + } + + if (root["users"].is()) { + JsonArray users = root["users"]; + _numUsers = 0; + // TODO - complete defence against bad data + for (int i =0; i < min(SECURITY_MANAGER_MAX_USERS, (int) users.size()); i++){ + JsonObject user = users[i]; + String username = user["username"];; + String password = user["password"]; + String role = user["role"]; + _users[_numUsers++] = new User(username, password, role); + } + } +} + +void SecurityManager::writeToJsonObject(JsonObject& root) { + // TODO +} + +void SecurityManager::begin() { + // TODO +} + +User SecurityManager::verifyUser(String jwt) { + // TODO + return NOT_AUTHENTICATED; +} +User authenticate(String username, String password) { + // TODO + return NOT_AUTHENTICATED; +} + +String generateJWT(User user) { + // TODO + return ""; +} + + diff --git a/src/SecurityManager.h b/src/SecurityManager.h new file mode 100644 index 0000000..8f419a4 --- /dev/null +++ b/src/SecurityManager.h @@ -0,0 +1,74 @@ +#ifndef APSettingsConfig_h +#define APSettingsConfig_h + +#include +#include +#include + +#define DEFAULT_JWT_SECRET "esp8266-react" + +#define SECURITY_SETTINGS_FILE "/config/securitySettings.json" +#define AUTHENTICATE_PATH "/rest/authenticate" + +#define SECURITY_MANAGER_MAX_USERS 5 + +#define UNAUTHENTICATED_USERNAME "" +#define UNAUTHENTICATED_PASSWORD "" +#define UNAUTHENTICATED_ROLE "" + +#define ROLE_ADMIN "admin" +#define ROLE_GUEST "guest" + +class User { + private: + String _username; + String _password; + String _role; + public: + User(String username, String password, String role): _username(username), _password(password), _role(role) {} + String getUsername() { + return _username; + } + String getPassword() { + return _password; + } + String getRole() { + return _role; + } + bool isAuthenticated() { + return _username != UNAUTHENTICATED_USERNAME; + } + bool isAdmin() { + return isAuthenticated() && _username == ROLE_ADMIN; + } +}; + +const User NOT_AUTHENTICATED = User(UNAUTHENTICATED_USERNAME, UNAUTHENTICATED_PASSWORD, UNAUTHENTICATED_ROLE); + +class SecurityManager : public SettingsPersistence { + + public: + + SecurityManager(AsyncWebServer* server, FS* fs); + ~SecurityManager(); + + void begin(); + + User verifyUser(String jwt); + User authenticate(); + String generateJWT(User user); + + protected: + + void readFromJsonObject(JsonObject& root); + void writeToJsonObject(JsonObject& root); + + private: + + // access point settings + String _jwtSecret; + User *_users[SECURITY_MANAGER_MAX_USERS]; + int _numUsers; +}; + +#endif // end APSettingsConfig_h \ No newline at end of file From eca14cf81c9e9c27a0f6fe5b7b821555f7b69cf8 Mon Sep 17 00:00:00 2001 From: Rick Watson Date: Tue, 30 Apr 2019 23:49:28 +0100 Subject: [PATCH 02/62] playing with some ideas for security management --- data/config/securitySettings.json | 1 + src/SecurityManager.cpp | 63 +++++++++++++++++++++++-------- src/SecurityManager.h | 32 ++++++++++------ src/main.cpp | 6 +++ 4 files changed, 75 insertions(+), 27 deletions(-) diff --git a/data/config/securitySettings.json b/data/config/securitySettings.json index 4b7a9d2..4d169f0 100644 --- a/data/config/securitySettings.json +++ b/data/config/securitySettings.json @@ -1,5 +1,6 @@ { "jwt_secret":"esp8266-react", + "roles": ["admin", "guest"], "users": [ { "username": "admin", diff --git a/src/SecurityManager.cpp b/src/SecurityManager.cpp index 01909e4..b293825 100644 --- a/src/SecurityManager.cpp +++ b/src/SecurityManager.cpp @@ -1,51 +1,84 @@ #include SecurityManager::SecurityManager(AsyncWebServer* server, FS* fs) : SettingsPersistence(fs, SECURITY_SETTINGS_FILE) { + server->on(USERS_PATH, HTTP_GET, std::bind(&SecurityManager::fetchUsers, this, std::placeholders::_1)); } SecurityManager::~SecurityManager() {} void SecurityManager::readFromJsonObject(JsonObject& root) { + // secret _jwtSecret = root["jwt_secret"] | DEFAULT_JWT_SECRET; - while (_numUsers > 0){ - delete _users[--_numUsers]; + // roles + _roles.clear(); + if (root["roles"].is()) { + JsonArray roles = root["roles"]; + for (JsonVariant role : roles) { + _roles.push_back(role.as()); + } } + // users + _users.clear(); if (root["users"].is()) { JsonArray users = root["users"]; - _numUsers = 0; - // TODO - complete defence against bad data - for (int i =0; i < min(SECURITY_MANAGER_MAX_USERS, (int) users.size()); i++){ - JsonObject user = users[i]; - String username = user["username"];; + for (JsonVariant user : users) { + String username = user["username"]; String password = user["password"]; String role = user["role"]; - _users[_numUsers++] = new User(username, password, role); + _users.push_back(User(username, password, role)); } } } void SecurityManager::writeToJsonObject(JsonObject& root) { - // TODO + // secret + root["jwt_secret"] = _jwtSecret; + + // roles + JsonArray roles = root.createNestedArray("roles"); + for (String _role : _roles) { + roles.add(_role); + } + + // users + JsonArray users = root.createNestedArray("users"); + for (User _user : _users) { + JsonObject user = users.createNestedObject(); + user["username"] = _user.getUsername(); + user["password"] = _user.getPassword(); + user["role"] = _user.getRole(); + } +} + +void SecurityManager::fetchUsers(AsyncWebServerRequest *request) { + AsyncJsonResponse * response = new AsyncJsonResponse(MAX_USERS_SIZE); + JsonObject jsonObject = response->getRoot(); + writeToJsonObject(jsonObject); + response->setLength(); + request->send(response); } void SecurityManager::begin() { - // TODO + readFromFS(); } User SecurityManager::verifyUser(String jwt) { // TODO return NOT_AUTHENTICATED; } -User authenticate(String username, String password) { - // TODO + +User SecurityManager::authenticate(String username, String password) { + for (User _user : _users) { + if (_user.getUsername() == username && _user.getPassword() == password){ + return _user; + } + } return NOT_AUTHENTICATED; } -String generateJWT(User user) { +String SecurityManager::generateJWT(User user) { // TODO return ""; } - - diff --git a/src/SecurityManager.h b/src/SecurityManager.h index 8f419a4..5bda393 100644 --- a/src/SecurityManager.h +++ b/src/SecurityManager.h @@ -1,5 +1,8 @@ -#ifndef APSettingsConfig_h -#define APSettingsConfig_h +#ifndef SecurityManager_h +#define SecurityManager_h + +#include +#include #include #include @@ -8,16 +11,17 @@ #define DEFAULT_JWT_SECRET "esp8266-react" #define SECURITY_SETTINGS_FILE "/config/securitySettings.json" + +#define USERS_PATH "/rest/users" #define AUTHENTICATE_PATH "/rest/authenticate" #define SECURITY_MANAGER_MAX_USERS 5 -#define UNAUTHENTICATED_USERNAME "" +#define UNAUTHENTICATED_USERNAME "_anonymous" #define UNAUTHENTICATED_PASSWORD "" #define UNAUTHENTICATED_ROLE "" -#define ROLE_ADMIN "admin" -#define ROLE_GUEST "guest" +#define MAX_USERS_SIZE 1024 class User { private: @@ -38,9 +42,6 @@ class User { bool isAuthenticated() { return _username != UNAUTHENTICATED_USERNAME; } - bool isAdmin() { - return isAuthenticated() && _username == ROLE_ADMIN; - } }; const User NOT_AUTHENTICATED = User(UNAUTHENTICATED_USERNAME, UNAUTHENTICATED_PASSWORD, UNAUTHENTICATED_ROLE); @@ -55,7 +56,7 @@ class SecurityManager : public SettingsPersistence { void begin(); User verifyUser(String jwt); - User authenticate(); + User authenticate(String username, String password); String generateJWT(User user); protected: @@ -65,10 +66,17 @@ class SecurityManager : public SettingsPersistence { private: + // server instance + AsyncWebServer* _server; + // access point settings String _jwtSecret; - User *_users[SECURITY_MANAGER_MAX_USERS]; - int _numUsers; + std::list _roles; + std::list _users; + + // endpoint functions + void fetchUsers(AsyncWebServerRequest *request); + }; -#endif // end APSettingsConfig_h \ No newline at end of file +#endif // end SecurityManager_h \ No newline at end of file diff --git a/src/main.cpp b/src/main.cpp index 23112a6..7544857 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -18,11 +18,14 @@ #include #include #include +#include #define SERIAL_BAUD_RATE 115200 AsyncWebServer server(80); +SecurityManager securityManager = SecurityManager(&server, &SPIFFS); + WiFiSettingsService wifiSettingsService = WiFiSettingsService(&server, &SPIFFS); APSettingsService apSettingsService = APSettingsService(&server, &SPIFFS); NTPSettingsService ntpSettingsService = NTPSettingsService(&server, &SPIFFS); @@ -40,6 +43,9 @@ void setup() { Serial.begin(SERIAL_BAUD_RATE); SPIFFS.begin(); + // start security manager + securityManager.begin(); + // start services ntpSettingsService.begin(); otaSettingsService.begin(); From 41ace49d5c66020ccc8d60c8ad8c012aeb31ab9e Mon Sep 17 00:00:00 2001 From: Rick Watson Date: Fri, 3 May 2019 00:31:20 +0100 Subject: [PATCH 03/62] add JWT encoding --- src/SecurityManager.cpp | 41 +++++++++ src/SecurityManager.h | 31 +++++-- src/SettingsService.h | 2 +- src/jwt/ArduinoJsonJWT.cpp | 50 +++++++++++ src/jwt/ArduinoJsonJWT.h | 34 ++++++++ src/jwt/base64.cpp | 122 +++++++++++++++++++++++++++ src/jwt/base64.h | 77 +++++++++++++++++ src/jwt/sha256.cpp | 167 +++++++++++++++++++++++++++++++++++++ src/jwt/sha256.h | 42 ++++++++++ 9 files changed, 558 insertions(+), 8 deletions(-) create mode 100644 src/jwt/ArduinoJsonJWT.cpp create mode 100644 src/jwt/ArduinoJsonJWT.h create mode 100644 src/jwt/base64.cpp create mode 100644 src/jwt/base64.h create mode 100644 src/jwt/sha256.cpp create mode 100644 src/jwt/sha256.h diff --git a/src/SecurityManager.cpp b/src/SecurityManager.cpp index b293825..3a00d9a 100644 --- a/src/SecurityManager.cpp +++ b/src/SecurityManager.cpp @@ -1,7 +1,15 @@ #include SecurityManager::SecurityManager(AsyncWebServer* server, FS* fs) : SettingsPersistence(fs, SECURITY_SETTINGS_FILE) { + // fetch users server->on(USERS_PATH, HTTP_GET, std::bind(&SecurityManager::fetchUsers, this, std::placeholders::_1)); + + // sign in request + _signInRequestHandler.setUri(SIGN_IN_PATH); + _signInRequestHandler.setMethod(HTTP_POST); + _signInRequestHandler.setMaxContentLength(MAX_SECURITY_MANAGER_SETTINGS_SIZE); + _signInRequestHandler.onRequest(std::bind(&SecurityManager::signIn, this, std::placeholders::_1, std::placeholders::_2)); + server->addHandler(&_signInRequestHandler); } SecurityManager::~SecurityManager() {} @@ -52,6 +60,35 @@ void SecurityManager::writeToJsonObject(JsonObject& root) { } } +// TODO - Decide about default role behaviour, don't over-engineer (multiple roles, boolean admin flag???). +void SecurityManager::signIn(AsyncWebServerRequest *request, JsonDocument &jsonDocument){ + if (jsonDocument.is()) { + // authenticate user + String username = jsonDocument["username"]; + String password = jsonDocument["password"]; + User user = authenticate(username, password); + + if (user.isAuthenticated()) { + // create JWT + DynamicJsonDocument _jsonDocument(MAX_JWT_SIZE); + JsonObject jwt = _jsonDocument.to(); + jwt["user"] = user.getUsername(); + jwt["role"] = user.getRole(); + + // send JWT response + AsyncJsonResponse * response = new AsyncJsonResponse(MAX_USERS_SIZE); + JsonObject jsonObject = response->getRoot(); + jsonObject["access_token"] = jwtHandler.encodeJWT(jwt); + response->setLength(); + request->send(response); + } + } + + // authentication failed + AsyncWebServerResponse *response = request->beginResponse(401); + request->send(response); +} + void SecurityManager::fetchUsers(AsyncWebServerRequest *request) { AsyncJsonResponse * response = new AsyncJsonResponse(MAX_USERS_SIZE); JsonObject jsonObject = response->getRoot(); @@ -61,7 +98,11 @@ void SecurityManager::fetchUsers(AsyncWebServerRequest *request) { } void SecurityManager::begin() { + // read config readFromFS(); + + // configure secret + jwtHandler.setPSK(_jwtSecret); } User SecurityManager::verifyUser(String jwt) { diff --git a/src/SecurityManager.h b/src/SecurityManager.h index 5bda393..a58e24e 100644 --- a/src/SecurityManager.h +++ b/src/SecurityManager.h @@ -2,11 +2,11 @@ #define SecurityManager_h #include -#include #include #include #include +#include #define DEFAULT_JWT_SECRET "esp8266-react" @@ -14,12 +14,15 @@ #define USERS_PATH "/rest/users" #define AUTHENTICATE_PATH "/rest/authenticate" +#define SIGN_IN_PATH "/rest/signIn" +#define MAX_JWT_SIZE 128 +#define MAX_SECURITY_MANAGER_SETTINGS_SIZE 512 #define SECURITY_MANAGER_MAX_USERS 5 -#define UNAUTHENTICATED_USERNAME "_anonymous" -#define UNAUTHENTICATED_PASSWORD "" -#define UNAUTHENTICATED_ROLE "" +#define ANONYMOUS_USERNAME "_anonymous" +#define ANONYMOUS_PASSWORD "" +#define ANONYMOUS_ROLE "" #define MAX_USERS_SIZE 1024 @@ -40,11 +43,11 @@ class User { return _role; } bool isAuthenticated() { - return _username != UNAUTHENTICATED_USERNAME; + return _username != ANONYMOUS_USERNAME; } }; -const User NOT_AUTHENTICATED = User(UNAUTHENTICATED_USERNAME, UNAUTHENTICATED_PASSWORD, UNAUTHENTICATED_ROLE); +const User NOT_AUTHENTICATED = User(ANONYMOUS_USERNAME, ANONYMOUS_PASSWORD, ANONYMOUS_ROLE); class SecurityManager : public SettingsPersistence { @@ -55,8 +58,19 @@ class SecurityManager : public SettingsPersistence { void begin(); + /* + * Lookup the user by JWT + */ User verifyUser(String jwt); + + /* + * Authenticate, returning the user if found. + */ User authenticate(String username, String password); + + /* + * Generate a JWT for the user provided + */ String generateJWT(User user); protected: @@ -65,9 +79,12 @@ class SecurityManager : public SettingsPersistence { void writeToJsonObject(JsonObject& root); private: + // jwt handler + ArduinoJsonJWT jwtHandler = ArduinoJsonJWT(DEFAULT_JWT_SECRET); // server instance AsyncWebServer* _server; + AsyncJsonRequestWebHandler _signInRequestHandler; // access point settings String _jwtSecret; @@ -76,7 +93,7 @@ class SecurityManager : public SettingsPersistence { // endpoint functions void fetchUsers(AsyncWebServerRequest *request); - + void signIn(AsyncWebServerRequest *request, JsonDocument &jsonDocument); }; #endif // end SecurityManager_h \ No newline at end of file diff --git a/src/SettingsService.h b/src/SettingsService.h index 65a771a..8adc4da 100644 --- a/src/SettingsService.h +++ b/src/SettingsService.h @@ -32,7 +32,7 @@ private: request->send(response); } - void updateConfig(AsyncWebServerRequest *request, JsonDocument &jsonDocument){ + void updateConfig(AsyncWebServerRequest *request, JsonDocument &jsonDocument) { if (jsonDocument.is()){ JsonObject newConfig = jsonDocument.as(); readFromJsonObject(newConfig); diff --git a/src/jwt/ArduinoJsonJWT.cpp b/src/jwt/ArduinoJsonJWT.cpp new file mode 100644 index 0000000..ac384b2 --- /dev/null +++ b/src/jwt/ArduinoJsonJWT.cpp @@ -0,0 +1,50 @@ +#include "jwt/ArduinoJsonJWT.h" + +ArduinoJsonJWT::ArduinoJsonJWT(String psk) : _psk(psk) { } + +void ArduinoJsonJWT::setPSK(String psk){ + _psk = psk; +} + +String ArduinoJsonJWT::encodeJWT(JsonObject payload) { + // serialize payload + String serializedPayload; + serializeJson(payload, serializedPayload); + + // calculate length of string + uint16_t encodedPayloadLength = encode_base64_length(serializedPayload.length()); + + // create JWT char array + char encodedJWT[BASE_JWT_LENGTH + encodedPayloadLength]; + unsigned char* ptr = (unsigned char*) encodedJWT; + + // 1 - add the header + memcpy(ptr, JWT_HEADER, JWT_HEADER_LENGTH); + ptr += JWT_HEADER_LENGTH; + + // 2 - add payload, trim and null terminate + *ptr++ = '.'; + encode_base64((unsigned char*) serializedPayload.c_str(), serializedPayload.length(), ptr); + ptr += encodedPayloadLength; + while(*(ptr - 1) == '=') { + ptr--; + } + *(ptr) = 0; + + // ... calculate ... + Sha256.initHmac((const unsigned char*)_psk.c_str(), _psk.length()); + Sha256.print(encodedJWT); + + // 3 - add signature + *ptr++ = '.'; + encode_base64(Sha256.resultHmac(), 32, ptr); + ptr += SIGNATURE_LENGTH; + while(*(ptr - 1) == '=') { + ptr--; + } + *(ptr) = 0; + + Serial.println(BASE_JWT_LENGTH + encodedPayloadLength); + return encodedJWT; +} + diff --git a/src/jwt/ArduinoJsonJWT.h b/src/jwt/ArduinoJsonJWT.h new file mode 100644 index 0000000..1be6c90 --- /dev/null +++ b/src/jwt/ArduinoJsonJWT.h @@ -0,0 +1,34 @@ +#ifndef ArduinoJsonJWT_H +#define ArduinoJsonJWT_H + +#include "jwt/base64.h" +#include "jwt/sha256.h" +#include "jwt/ArduinoJsonJWT.h" + +#include +#include + +class ArduinoJsonJWT { + +private: + String _psk; + + // {"alg": "HS256", "typ": "JWT"} + const char* JWT_HEADER = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9"; + const uint16_t JWT_HEADER_LENGTH = strlen(JWT_HEADER); + const uint16_t SIGNATURE_LENGTH = encode_base64_length(32); + + // static JWT length is made of: + // - the header length + // - the signature length + // - 2 delimiters, 1 terminator + const uint16_t BASE_JWT_LENGTH = JWT_HEADER_LENGTH + SIGNATURE_LENGTH + 3; + +public: + ArduinoJsonJWT(String psk); + void setPSK(String psk); + String encodeJWT(JsonObject payload); +}; + + +#endif diff --git a/src/jwt/base64.cpp b/src/jwt/base64.cpp new file mode 100644 index 0000000..0ad89b1 --- /dev/null +++ b/src/jwt/base64.cpp @@ -0,0 +1,122 @@ +unsigned char binary_to_base64(unsigned char v) { + // Capital letters - 'A' is ascii 65 and base64 0 + if(v < 26) return v + 'A'; + + // Lowercase letters - 'a' is ascii 97 and base64 26 + if(v < 52) return v + 71; + + // Digits - '0' is ascii 48 and base64 52 + if(v < 62) return v - 4; + + // '+' is ascii 43 and base64 62 + if(v == 62) return '-'; + + // '/' is ascii 47 and base64 63 + if(v == 63) return '_'; + + return 64; +} + +unsigned char base64_to_binary(unsigned char c) { + // Capital letters - 'A' is ascii 65 and base64 0 + if('A' <= c && c <= 'Z') return c - 'A'; + + // Lowercase letters - 'a' is ascii 97 and base64 26 + if('a' <= c && c <= 'z') return c - 71; + + // Digits - '0' is ascii 48 and base64 52 + if('0' <= c && c <= '9') return c + 4; + + // '+' is ascii 43 and base64 62 + if(c == '-') return 62; + + // '/' is ascii 47 and base64 63 + if(c == '_') return 63; + + return 255; +} + +unsigned int encode_base64_length(unsigned int input_length) { + return (input_length + 2)/3*4; +} + +unsigned int decode_base64_length(unsigned char input[]) { + unsigned char *start = input; + + while(base64_to_binary(input[0]) < 64) { + ++input; + } + + unsigned int input_length = input - start; + + unsigned int output_length = input_length/4*3; + + switch(input_length % 4) { + default: return output_length; + case 2: return output_length + 1; + case 3: return output_length + 2; + } +} + +unsigned int encode_base64(unsigned char input[], unsigned int input_length, unsigned char output[]) { + unsigned int full_sets = input_length/3; + + // While there are still full sets of 24 bits... + for(unsigned int i = 0; i < full_sets; ++i) { + output[0] = binary_to_base64( input[0] >> 2); + output[1] = binary_to_base64((input[0] & 0x03) << 4 | input[1] >> 4); + output[2] = binary_to_base64((input[1] & 0x0F) << 2 | input[2] >> 6); + output[3] = binary_to_base64( input[2] & 0x3F); + + input += 3; + output += 4; + } + + switch(input_length % 3) { + case 0: + output[0] = '\0'; + break; + case 1: + output[0] = binary_to_base64( input[0] >> 2); + output[1] = binary_to_base64((input[0] & 0x03) << 4); + output[2] = '='; + output[3] = '='; + output[4] = '\0'; + break; + case 2: + output[0] = binary_to_base64( input[0] >> 2); + output[1] = binary_to_base64((input[0] & 0x03) << 4 | input[1] >> 4); + output[2] = binary_to_base64((input[1] & 0x0F) << 2); + output[3] = '='; + output[4] = '\0'; + break; + } + + return encode_base64_length(input_length); +} + +unsigned int decode_base64(unsigned char input[], unsigned char output[]) { + unsigned int output_length = decode_base64_length(input); + + // While there are still full sets of 24 bits... + for(unsigned int i = 2; i < output_length; i += 3) { + output[0] = base64_to_binary(input[0]) << 2 | base64_to_binary(input[1]) >> 4; + output[1] = base64_to_binary(input[1]) << 4 | base64_to_binary(input[2]) >> 2; + output[2] = base64_to_binary(input[2]) << 6 | base64_to_binary(input[3]); + + input += 4; + output += 3; + } + + switch(output_length % 3) { + case 1: + output[0] = base64_to_binary(input[0]) << 2 | base64_to_binary(input[1]) >> 4; + break; + case 2: + output[0] = base64_to_binary(input[0]) << 2 | base64_to_binary(input[1]) >> 4; + output[1] = base64_to_binary(input[1]) << 4 | base64_to_binary(input[2]) >> 2; + break; + } + + return output_length; +} \ No newline at end of file diff --git a/src/jwt/base64.h b/src/jwt/base64.h new file mode 100644 index 0000000..fd748d2 --- /dev/null +++ b/src/jwt/base64.h @@ -0,0 +1,77 @@ +/** + * Adapted from https://github.com/Densaugeo/base64_arduino + */ + +/** + * Base64 encoding and decoding of strings. Uses '+' for 62, '\' for 63, '=' for padding + * This has been modified to use '-' for 62, '_' for 63 as per the JWT specification + */ + +#ifndef BASE64_H_INCLUDED +#define BASE64_H_INCLUDED + +/* binary_to_base64: + * Description: + * Converts a single byte from a binary value to the corresponding base64 character + * Parameters: + * v - Byte to convert + * Returns: + * ascii code of base64 character. If byte is >= 64, then there is not corresponding base64 character + * and 255 is returned + */ +unsigned char binary_to_base64(unsigned char v); + +/* base64_to_binary: + * Description: + * Converts a single byte from a base64 character to the corresponding binary value + * Parameters: + * c - Base64 character (as ascii code) + * Returns: + * 6-bit binary value + */ +unsigned char base64_to_binary(unsigned char v); + +/* encode_base64_length: + * Description: + * Calculates length of base64 string needed for a given number of binary bytes + * Parameters: + * input_length - Amount of binary data in bytes + * Returns: + * Number of base64 characters needed to encode input_length bytes of binary data + */ +unsigned int encode_base64_length(unsigned int input_length); + +/* decode_base64_length: + * Description: + * Calculates number of bytes of binary data in a base64 string + * Parameters: + * input - Base64-encoded null-terminated string + * Returns: + * Number of bytes of binary data in input + */ +unsigned int decode_base64_length(unsigned char input[]); + +/* encode_base64: + * Description: + * Converts an array of bytes to a base64 null-terminated string + * Parameters: + * input - Pointer to input data + * input_length - Number of bytes to read from input pointer + * output - Pointer to output string. Null terminator will be added automatically + * Returns: + * Length of encoded string in bytes (not including null terminator) + */ +unsigned int encode_base64(unsigned char input[], unsigned int input_length, unsigned char output[]); + +/* decode_base64: + * Description: + * Converts a base64 null-terminated string to an array of bytes + * Parameters: + * input - Pointer to input string + * output - Pointer to output array + * Returns: + * Number of bytes in the decoded binary + */ +unsigned int decode_base64(unsigned char input[], unsigned char output[]); + +#endif // ifndef \ No newline at end of file diff --git a/src/jwt/sha256.cpp b/src/jwt/sha256.cpp new file mode 100644 index 0000000..7bdb2df --- /dev/null +++ b/src/jwt/sha256.cpp @@ -0,0 +1,167 @@ +#include +#include "sha256.h" + +uint32_t sha256K[] PROGMEM = { + 0x428a2f98,0x71374491,0xb5c0fbcf,0xe9b5dba5,0x3956c25b,0x59f111f1,0x923f82a4,0xab1c5ed5, + 0xd807aa98,0x12835b01,0x243185be,0x550c7dc3,0x72be5d74,0x80deb1fe,0x9bdc06a7,0xc19bf174, + 0xe49b69c1,0xefbe4786,0x0fc19dc6,0x240ca1cc,0x2de92c6f,0x4a7484aa,0x5cb0a9dc,0x76f988da, + 0x983e5152,0xa831c66d,0xb00327c8,0xbf597fc7,0xc6e00bf3,0xd5a79147,0x06ca6351,0x14292967, + 0x27b70a85,0x2e1b2138,0x4d2c6dfc,0x53380d13,0x650a7354,0x766a0abb,0x81c2c92e,0x92722c85, + 0xa2bfe8a1,0xa81a664b,0xc24b8b70,0xc76c51a3,0xd192e819,0xd6990624,0xf40e3585,0x106aa070, + 0x19a4c116,0x1e376c08,0x2748774c,0x34b0bcb5,0x391c0cb3,0x4ed8aa4a,0x5b9cca4f,0x682e6ff3, + 0x748f82ee,0x78a5636f,0x84c87814,0x8cc70208,0x90befffa,0xa4506ceb,0xbef9a3f7,0xc67178f2 +}; + +#define BUFFER_SIZE 64 + +uint8_t sha256InitState[] PROGMEM = { + 0x67,0xe6,0x09,0x6a, // H0 + 0x85,0xae,0x67,0xbb, // H1 + 0x72,0xf3,0x6e,0x3c, // H2 + 0x3a,0xf5,0x4f,0xa5, // H3 + 0x7f,0x52,0x0e,0x51, // H4 + 0x8c,0x68,0x05,0x9b, // H5 + 0xab,0xd9,0x83,0x1f, // H6 + 0x19,0xcd,0xe0,0x5b // H7 +}; + +void Sha256Class::init(void) { + memcpy_P(state.b,sha256InitState,32); + byteCount = 0; + bufferOffset = 0; +} + +uint32_t Sha256Class::ror32(uint32_t number, uint8_t bits) { + return ((number << (32-bits)) | (number >> bits)); +} + +void Sha256Class::hashBlock() { + uint8_t i; + uint32_t a,b,c,d,e,f,g,h,t1,t2; + + a=state.w[0]; + b=state.w[1]; + c=state.w[2]; + d=state.w[3]; + e=state.w[4]; + f=state.w[5]; + g=state.w[6]; + h=state.w[7]; + + for (i=0; i<64; i++) { + if (i>=16) { + t1 = buffer.w[i&15] + buffer.w[(i-7)&15]; + t2 = buffer.w[(i-2)&15]; + t1 += ror32(t2,17) ^ ror32(t2,19) ^ (t2>>10); + t2 = buffer.w[(i-15)&15]; + t1 += ror32(t2,7) ^ ror32(t2,18) ^ (t2>>3); + buffer.w[i&15] = t1; + } + t1 = h; + t1 += ror32(e,6) ^ ror32(e,11) ^ ror32(e,25); // ∑1(e) + t1 += g ^ (e & (g ^ f)); // Ch(e,f,g) + t1 += pgm_read_dword(sha256K+i); // Ki + t1 += buffer.w[i&15]; // Wi + t2 = ror32(a,2) ^ ror32(a,13) ^ ror32(a,22); // ∑0(a) + t2 += ((b & c) | (a & (b | c))); // Maj(a,b,c) + h=g; g=f; f=e; e=d+t1; d=c; c=b; b=a; a=t1+t2; + } + state.w[0] += a; + state.w[1] += b; + state.w[2] += c; + state.w[3] += d; + state.w[4] += e; + state.w[5] += f; + state.w[6] += g; + state.w[7] += h; +} + +void Sha256Class::addUncounted(uint8_t data) { + buffer.b[bufferOffset ^ 3] = data; + bufferOffset++; + if (bufferOffset == BUFFER_SIZE) { + hashBlock(); + bufferOffset = 0; + } +} + +size_t Sha256Class::write(uint8_t data) { + ++byteCount; + addUncounted(data); + return 1; +} + +void Sha256Class::pad() { + // Implement SHA-256 padding (fips180-2 §5.1.1) + + // Pad with 0x80 followed by 0x00 until the end of the block + addUncounted(0x80); + while (bufferOffset != 56) addUncounted(0x00); + + // Append length in the last 8 bytes + addUncounted(0); // We're only using 32 bit lengths + addUncounted(0); // But SHA-1 supports 64 bit lengths + addUncounted(0); // So zero pad the top bits + addUncounted(byteCount >> 29); // Shifting to multiply by 8 + addUncounted(byteCount >> 21); // as SHA-1 supports bitstreams as well as + addUncounted(byteCount >> 13); // byte. + addUncounted(byteCount >> 5); + addUncounted(byteCount << 3); +} + + +uint8_t* Sha256Class::result(void) { + // Pad to complete the last block + pad(); + + // Swap byte order back + for (int i=0; i<8; i++) { + uint32_t a,b; + a=state.w[i]; + b=a<<24; + b|=(a<<8) & 0x00ff0000; + b|=(a>>8) & 0x0000ff00; + b|=a>>24; + state.w[i]=b; + } + + // Return pointer to hash (20 characters) + return state.b; +} + +#define HMAC_IPAD 0x36 +#define HMAC_OPAD 0x5c + +uint8_t keyBuffer[BLOCK_LENGTH]; // K0 in FIPS-198a +uint8_t innerHash[HASH_LENGTH]; + +void Sha256Class::initHmac(const uint8_t* key, int keyLength) { + uint8_t i; + memset(keyBuffer,0,BLOCK_LENGTH); + if (keyLength > BLOCK_LENGTH) { + // Hash long keys + init(); + for (;keyLength--;) write(*key++); + memcpy(keyBuffer,result(),HASH_LENGTH); + } else { + // Block length keys are used as is + memcpy(keyBuffer,key,keyLength); + } + // Start inner hash + init(); + for (i=0; i +#include "Print.h" + +#define HASH_LENGTH 32 +#define BLOCK_LENGTH 64 + +union _buffer { + uint8_t b[BLOCK_LENGTH]; + uint32_t w[BLOCK_LENGTH/4]; +}; +union _state { + uint8_t b[HASH_LENGTH]; + uint32_t w[HASH_LENGTH/4]; +}; + +class Sha256Class : public Print +{ + public: + void init(void); + void initHmac(const uint8_t* secret, int secretLength); + uint8_t* result(void); + uint8_t* resultHmac(void); + virtual size_t write(uint8_t); + using Print::write; + private: + void pad(); + void addUncounted(uint8_t data); + void hashBlock(); + uint32_t ror32(uint32_t number, uint8_t bits); + _buffer buffer; + uint8_t bufferOffset; + _state state; + uint32_t byteCount; + uint8_t keyBuffer[BLOCK_LENGTH]; + uint8_t innerHash[HASH_LENGTH]; +}; +extern Sha256Class Sha256; + +#endif \ No newline at end of file From 6700610d35e076cbb9037a6ab3709607bc2b9e79 Mon Sep 17 00:00:00 2001 From: Rick Watson Date: Mon, 6 May 2019 15:50:19 +0100 Subject: [PATCH 04/62] messing around with JWT implementation --- src/ArduinoJsonJWT.cpp | 96 ++++++++++++++++++++++++++++++++++++++ src/ArduinoJsonJWT.h | 34 ++++++++++++++ src/SecurityManager.cpp | 31 ++++++++++-- src/SecurityManager.h | 5 +- src/{jwt => }/base64.cpp | 2 + src/{jwt => }/base64.h | 0 src/jwt/ArduinoJsonJWT.cpp | 50 -------------------- src/jwt/ArduinoJsonJWT.h | 34 -------------- src/{jwt => }/sha256.cpp | 3 +- src/{jwt => }/sha256.h | 0 10 files changed, 165 insertions(+), 90 deletions(-) create mode 100644 src/ArduinoJsonJWT.cpp create mode 100644 src/ArduinoJsonJWT.h rename src/{jwt => }/base64.cpp (99%) rename src/{jwt => }/base64.h (100%) delete mode 100644 src/jwt/ArduinoJsonJWT.cpp delete mode 100644 src/jwt/ArduinoJsonJWT.h rename src/{jwt => }/sha256.cpp (99%) rename src/{jwt => }/sha256.h (100%) diff --git a/src/ArduinoJsonJWT.cpp b/src/ArduinoJsonJWT.cpp new file mode 100644 index 0000000..e0a7355 --- /dev/null +++ b/src/ArduinoJsonJWT.cpp @@ -0,0 +1,96 @@ +#include "ArduinoJsonJWT.h" + +ArduinoJsonJWT::ArduinoJsonJWT(String secret) : _secret(secret) { } + +void ArduinoJsonJWT::setSecret(String secret){ + _secret = secret; +} + +String ArduinoJsonJWT::sign(String &value) { + // create signature + Sha256.initHmac((uint8_t*) _secret.c_str(), _secret.length()); + Sha256.print(value); + + // trim and return + return encode(Sha256.resultHmac(), 32); +} + +String ArduinoJsonJWT::decode(unsigned char * value) { + // create buffer of approperate length + size_t decodedLength = decode_base64_length(value) + 1; + char decoded[decodedLength]; + + // decode + decode_base64(value, (unsigned char *) decoded); + decoded[decodedLength-1] = 0; + + // return as arduino string + return String(decoded); +} + +String ArduinoJsonJWT::encode(unsigned char * value , int length) { + int encodedIndex = encode_base64_length(length); + + // encode + char encoded[encodedIndex]; + encode_base64(value, length, (unsigned char *) encoded); + + // trim padding + while (encoded[--encodedIndex] == '=') { + encoded[encodedIndex] = 0; + } + + // return as string + return String(encoded); +} + +String ArduinoJsonJWT::buildJWT(JsonObject &payload) { + // serialize, then encode payload + String jwt; + serializeJson(payload, jwt); + jwt = encode((unsigned char *) jwt.c_str(), jwt.length()); + + // add the header to payload + jwt = JWT_HEADER + '.' + jwt; + + // add signature + jwt += '.' + sign(jwt); + + return jwt; +} + +void ArduinoJsonJWT::parseJWT(String jwt, JsonDocument &jsonDocument) { + // clear json document before we begin, jsonDocument wil be null on failure + jsonDocument.clear(); + + // must be of minimum length or greater + if (jwt.length() <= JWT_SIG_SIZE + JWT_HEADER_SIZE + 2) { + return; + } + // must have the correct header and delimiter + if (!jwt.startsWith(JWT_HEADER) || jwt.indexOf('.') != JWT_HEADER_SIZE) { + return; + } + // must have signature of correct length + int signatureDelimieterIndex = jwt.length() - JWT_SIG_SIZE - 1; + if (jwt.lastIndexOf('.') != signatureDelimieterIndex) { + return; + } + + // signature must be correct + String signature = jwt.substring(signatureDelimieterIndex + 1); + jwt = jwt.substring(0, signatureDelimieterIndex); + if (sign(jwt) != signature){ + return; + } + + // decode payload + jwt = jwt.substring(JWT_HEADER_SIZE + 1); + jwt = decode((unsigned char *) jwt.c_str()); + + // parse payload, clearing json document after failure + DeserializationError error = deserializeJson(jsonDocument, jwt); + if (error != DeserializationError::Ok || !jsonDocument.is()){ + jsonDocument.clear(); + } +} diff --git a/src/ArduinoJsonJWT.h b/src/ArduinoJsonJWT.h new file mode 100644 index 0000000..d76b5c6 --- /dev/null +++ b/src/ArduinoJsonJWT.h @@ -0,0 +1,34 @@ +#ifndef ArduinoJsonJWT_H +#define ArduinoJsonJWT_H + +#include "sha256.h" +#include "base64.h" + +#include +#include + +#define JWT_HEADER_SIZE 36 +#define JWT_SIG_SIZE 43 + +class ArduinoJsonJWT { + +private: + String _secret; + + // {"alg": "HS256", "typ": "JWT"} + const String JWT_HEADER = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9"; + + String sign(String &value); + String encode(unsigned char * value, int length); + String decode(unsigned char * value); + +public: + ArduinoJsonJWT(String secret); + + void setSecret(String secret); + String buildJWT(JsonObject &payload); + void parseJWT(String jwt, JsonDocument &jsonDocument); +}; + + +#endif diff --git a/src/SecurityManager.cpp b/src/SecurityManager.cpp index 3a00d9a..f164d12 100644 --- a/src/SecurityManager.cpp +++ b/src/SecurityManager.cpp @@ -10,6 +10,14 @@ SecurityManager::SecurityManager(AsyncWebServer* server, FS* fs) : SettingsPersi _signInRequestHandler.setMaxContentLength(MAX_SECURITY_MANAGER_SETTINGS_SIZE); _signInRequestHandler.onRequest(std::bind(&SecurityManager::signIn, this, std::placeholders::_1, std::placeholders::_2)); server->addHandler(&_signInRequestHandler); + + + // sign in request + _testVerifiction.setUri(TEST_VERIFICATION_PATH); + _testVerifiction.setMethod(HTTP_POST); + _testVerifiction.setMaxContentLength(MAX_SECURITY_MANAGER_SETTINGS_SIZE); + _testVerifiction.onRequest(std::bind(&SecurityManager::testVerification, this, std::placeholders::_1, std::placeholders::_2)); + server->addHandler(&_testVerifiction); } SecurityManager::~SecurityManager() {} @@ -72,18 +80,33 @@ void SecurityManager::signIn(AsyncWebServerRequest *request, JsonDocument &jsonD // create JWT DynamicJsonDocument _jsonDocument(MAX_JWT_SIZE); JsonObject jwt = _jsonDocument.to(); - jwt["user"] = user.getUsername(); + jwt["username"] = user.getUsername(); jwt["role"] = user.getRole(); // send JWT response AsyncJsonResponse * response = new AsyncJsonResponse(MAX_USERS_SIZE); JsonObject jsonObject = response->getRoot(); - jsonObject["access_token"] = jwtHandler.encodeJWT(jwt); + jsonObject["access_token"] = jwtHandler.buildJWT(jwt); response->setLength(); request->send(response); + return; + } + } + + // authentication failed + AsyncWebServerResponse *response = request->beginResponse(401); + request->send(response); +} + +void SecurityManager::testVerification(AsyncWebServerRequest *request, JsonDocument &jsonDocument){ + if (jsonDocument.is()) { + String accessToken = jsonDocument["access_token"]; + DynamicJsonDocument parsedJwt(MAX_JWT_SIZE); + if (jwtHandler.parseJWT(accessToken, parsedJwt)){ + String username = parsedJwt["username"]; + } } - // authentication failed AsyncWebServerResponse *response = request->beginResponse(401); request->send(response); @@ -102,7 +125,7 @@ void SecurityManager::begin() { readFromFS(); // configure secret - jwtHandler.setPSK(_jwtSecret); + jwtHandler.setSecret(_jwtSecret); } User SecurityManager::verifyUser(String jwt) { diff --git a/src/SecurityManager.h b/src/SecurityManager.h index a58e24e..2dd0352 100644 --- a/src/SecurityManager.h +++ b/src/SecurityManager.h @@ -6,7 +6,7 @@ #include #include #include -#include +#include #define DEFAULT_JWT_SECRET "esp8266-react" @@ -15,6 +15,7 @@ #define USERS_PATH "/rest/users" #define AUTHENTICATE_PATH "/rest/authenticate" #define SIGN_IN_PATH "/rest/signIn" +#define TEST_VERIFICATION_PATH "/rest/verification" #define MAX_JWT_SIZE 128 #define MAX_SECURITY_MANAGER_SETTINGS_SIZE 512 @@ -85,6 +86,7 @@ class SecurityManager : public SettingsPersistence { // server instance AsyncWebServer* _server; AsyncJsonRequestWebHandler _signInRequestHandler; + AsyncJsonRequestWebHandler _testVerifiction; // access point settings String _jwtSecret; @@ -94,6 +96,7 @@ class SecurityManager : public SettingsPersistence { // endpoint functions void fetchUsers(AsyncWebServerRequest *request); void signIn(AsyncWebServerRequest *request, JsonDocument &jsonDocument); + void testVerification(AsyncWebServerRequest *request, JsonDocument &jsonDocument); }; #endif // end SecurityManager_h \ No newline at end of file diff --git a/src/jwt/base64.cpp b/src/base64.cpp similarity index 99% rename from src/jwt/base64.cpp rename to src/base64.cpp index 0ad89b1..2ebaf27 100644 --- a/src/jwt/base64.cpp +++ b/src/base64.cpp @@ -1,3 +1,5 @@ +#include "base64.h" + unsigned char binary_to_base64(unsigned char v) { // Capital letters - 'A' is ascii 65 and base64 0 if(v < 26) return v + 'A'; diff --git a/src/jwt/base64.h b/src/base64.h similarity index 100% rename from src/jwt/base64.h rename to src/base64.h diff --git a/src/jwt/ArduinoJsonJWT.cpp b/src/jwt/ArduinoJsonJWT.cpp deleted file mode 100644 index ac384b2..0000000 --- a/src/jwt/ArduinoJsonJWT.cpp +++ /dev/null @@ -1,50 +0,0 @@ -#include "jwt/ArduinoJsonJWT.h" - -ArduinoJsonJWT::ArduinoJsonJWT(String psk) : _psk(psk) { } - -void ArduinoJsonJWT::setPSK(String psk){ - _psk = psk; -} - -String ArduinoJsonJWT::encodeJWT(JsonObject payload) { - // serialize payload - String serializedPayload; - serializeJson(payload, serializedPayload); - - // calculate length of string - uint16_t encodedPayloadLength = encode_base64_length(serializedPayload.length()); - - // create JWT char array - char encodedJWT[BASE_JWT_LENGTH + encodedPayloadLength]; - unsigned char* ptr = (unsigned char*) encodedJWT; - - // 1 - add the header - memcpy(ptr, JWT_HEADER, JWT_HEADER_LENGTH); - ptr += JWT_HEADER_LENGTH; - - // 2 - add payload, trim and null terminate - *ptr++ = '.'; - encode_base64((unsigned char*) serializedPayload.c_str(), serializedPayload.length(), ptr); - ptr += encodedPayloadLength; - while(*(ptr - 1) == '=') { - ptr--; - } - *(ptr) = 0; - - // ... calculate ... - Sha256.initHmac((const unsigned char*)_psk.c_str(), _psk.length()); - Sha256.print(encodedJWT); - - // 3 - add signature - *ptr++ = '.'; - encode_base64(Sha256.resultHmac(), 32, ptr); - ptr += SIGNATURE_LENGTH; - while(*(ptr - 1) == '=') { - ptr--; - } - *(ptr) = 0; - - Serial.println(BASE_JWT_LENGTH + encodedPayloadLength); - return encodedJWT; -} - diff --git a/src/jwt/ArduinoJsonJWT.h b/src/jwt/ArduinoJsonJWT.h deleted file mode 100644 index 1be6c90..0000000 --- a/src/jwt/ArduinoJsonJWT.h +++ /dev/null @@ -1,34 +0,0 @@ -#ifndef ArduinoJsonJWT_H -#define ArduinoJsonJWT_H - -#include "jwt/base64.h" -#include "jwt/sha256.h" -#include "jwt/ArduinoJsonJWT.h" - -#include -#include - -class ArduinoJsonJWT { - -private: - String _psk; - - // {"alg": "HS256", "typ": "JWT"} - const char* JWT_HEADER = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9"; - const uint16_t JWT_HEADER_LENGTH = strlen(JWT_HEADER); - const uint16_t SIGNATURE_LENGTH = encode_base64_length(32); - - // static JWT length is made of: - // - the header length - // - the signature length - // - 2 delimiters, 1 terminator - const uint16_t BASE_JWT_LENGTH = JWT_HEADER_LENGTH + SIGNATURE_LENGTH + 3; - -public: - ArduinoJsonJWT(String psk); - void setPSK(String psk); - String encodeJWT(JsonObject payload); -}; - - -#endif diff --git a/src/jwt/sha256.cpp b/src/sha256.cpp similarity index 99% rename from src/jwt/sha256.cpp rename to src/sha256.cpp index 7bdb2df..6ff1193 100644 --- a/src/jwt/sha256.cpp +++ b/src/sha256.cpp @@ -1,6 +1,7 @@ -#include #include "sha256.h" +#include + uint32_t sha256K[] PROGMEM = { 0x428a2f98,0x71374491,0xb5c0fbcf,0xe9b5dba5,0x3956c25b,0x59f111f1,0x923f82a4,0xab1c5ed5, 0xd807aa98,0x12835b01,0x243185be,0x550c7dc3,0x72be5d74,0x80deb1fe,0x9bdc06a7,0xc19bf174, diff --git a/src/jwt/sha256.h b/src/sha256.h similarity index 100% rename from src/jwt/sha256.h rename to src/sha256.h From 079f134aa92610618209b4bb45e5acc847f7b01e Mon Sep 17 00:00:00 2001 From: Rick Watson Date: Mon, 6 May 2019 21:46:28 +0100 Subject: [PATCH 05/62] resolve issue with test endpoint --- src/SecurityManager.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/SecurityManager.cpp b/src/SecurityManager.cpp index f164d12..3a1ecae 100644 --- a/src/SecurityManager.cpp +++ b/src/SecurityManager.cpp @@ -101,10 +101,11 @@ void SecurityManager::signIn(AsyncWebServerRequest *request, JsonDocument &jsonD void SecurityManager::testVerification(AsyncWebServerRequest *request, JsonDocument &jsonDocument){ if (jsonDocument.is()) { String accessToken = jsonDocument["access_token"]; - DynamicJsonDocument parsedJwt(MAX_JWT_SIZE); - if (jwtHandler.parseJWT(accessToken, parsedJwt)){ + DynamicJsonDocument parsedJwt(MAX_JWT_SIZE); + jwtHandler.parseJWT(accessToken, parsedJwt); + if (parsedJwt.is()){ String username = parsedJwt["username"]; - + Serial.println(username); } } // authentication failed From a4220d631d1109f1b658ef2a9326b1a46f48ae7b Mon Sep 17 00:00:00 2001 From: Rick Watson Date: Mon, 6 May 2019 22:40:24 +0100 Subject: [PATCH 06/62] Remove un-necessarry HMAC implementation, use SDK provided implementation --- src/ArduinoJsonJWT.cpp | 38 ++++++++-- src/ArduinoJsonJWT.h | 7 +- src/sha256.cpp | 168 ----------------------------------------- src/sha256.h | 42 ----------- 4 files changed, 36 insertions(+), 219 deletions(-) delete mode 100644 src/sha256.cpp delete mode 100644 src/sha256.h diff --git a/src/ArduinoJsonJWT.cpp b/src/ArduinoJsonJWT.cpp index e0a7355..3889fe9 100644 --- a/src/ArduinoJsonJWT.cpp +++ b/src/ArduinoJsonJWT.cpp @@ -6,13 +6,35 @@ void ArduinoJsonJWT::setSecret(String secret){ _secret = secret; } -String ArduinoJsonJWT::sign(String &value) { - // create signature - Sha256.initHmac((uint8_t*) _secret.c_str(), _secret.length()); - Sha256.print(value); - - // trim and return - return encode(Sha256.resultHmac(), 32); +/* + * ESP32 uses mbedtls, ESP2866 uses bearssl. + * + * Both come with decent HMAC implmentations supporting sha256, as well as others. + * + * No need to pull in additional crypto libraries - lets use what we already have. + */ +String ArduinoJsonJWT::sign(String &payload) { + unsigned char hmacResult[32]; + { + #if defined(ESP_PLATFORM) + mbedtls_md_context_t ctx; + mbedtls_md_type_t md_type = MBEDTLS_MD_SHA256; + mbedtls_md_init(&ctx); + mbedtls_md_setup(&ctx, mbedtls_md_info_from_type(md_type), 1); + mbedtls_md_hmac_starts(&ctx, (unsigned char *) _secret.c_str(), _secret.length()); + mbedtls_md_hmac_update(&ctx, (unsigned char *) payload.c_str(), payload.length()); + mbedtls_md_hmac_finish(&ctx, hmacResult); + mbedtls_md_free(&ctx); + #else + br_hmac_key_context keyCtx; + br_hmac_key_init(&keyCtx, &br_sha256_vtable, _secret.c_str(), _secret.length()); + br_hmac_context hmacCtx; + br_hmac_init(&hmacCtx, &keyCtx, 0); + br_hmac_update(&hmacCtx, payload.c_str(), payload.length()); + br_hmac_out(&hmacCtx, hmacResult); + #endif + } + return encode(hmacResult, 32); } String ArduinoJsonJWT::decode(unsigned char * value) { @@ -52,7 +74,7 @@ String ArduinoJsonJWT::buildJWT(JsonObject &payload) { // add the header to payload jwt = JWT_HEADER + '.' + jwt; - + // add signature jwt += '.' + sign(jwt); diff --git a/src/ArduinoJsonJWT.h b/src/ArduinoJsonJWT.h index d76b5c6..d317db6 100644 --- a/src/ArduinoJsonJWT.h +++ b/src/ArduinoJsonJWT.h @@ -1,12 +1,17 @@ #ifndef ArduinoJsonJWT_H #define ArduinoJsonJWT_H -#include "sha256.h" #include "base64.h" #include #include +#if defined(ESP_PLATFORM) + #include +#else + #include +#endif + #define JWT_HEADER_SIZE 36 #define JWT_SIG_SIZE 43 diff --git a/src/sha256.cpp b/src/sha256.cpp deleted file mode 100644 index 6ff1193..0000000 --- a/src/sha256.cpp +++ /dev/null @@ -1,168 +0,0 @@ -#include "sha256.h" - -#include - -uint32_t sha256K[] PROGMEM = { - 0x428a2f98,0x71374491,0xb5c0fbcf,0xe9b5dba5,0x3956c25b,0x59f111f1,0x923f82a4,0xab1c5ed5, - 0xd807aa98,0x12835b01,0x243185be,0x550c7dc3,0x72be5d74,0x80deb1fe,0x9bdc06a7,0xc19bf174, - 0xe49b69c1,0xefbe4786,0x0fc19dc6,0x240ca1cc,0x2de92c6f,0x4a7484aa,0x5cb0a9dc,0x76f988da, - 0x983e5152,0xa831c66d,0xb00327c8,0xbf597fc7,0xc6e00bf3,0xd5a79147,0x06ca6351,0x14292967, - 0x27b70a85,0x2e1b2138,0x4d2c6dfc,0x53380d13,0x650a7354,0x766a0abb,0x81c2c92e,0x92722c85, - 0xa2bfe8a1,0xa81a664b,0xc24b8b70,0xc76c51a3,0xd192e819,0xd6990624,0xf40e3585,0x106aa070, - 0x19a4c116,0x1e376c08,0x2748774c,0x34b0bcb5,0x391c0cb3,0x4ed8aa4a,0x5b9cca4f,0x682e6ff3, - 0x748f82ee,0x78a5636f,0x84c87814,0x8cc70208,0x90befffa,0xa4506ceb,0xbef9a3f7,0xc67178f2 -}; - -#define BUFFER_SIZE 64 - -uint8_t sha256InitState[] PROGMEM = { - 0x67,0xe6,0x09,0x6a, // H0 - 0x85,0xae,0x67,0xbb, // H1 - 0x72,0xf3,0x6e,0x3c, // H2 - 0x3a,0xf5,0x4f,0xa5, // H3 - 0x7f,0x52,0x0e,0x51, // H4 - 0x8c,0x68,0x05,0x9b, // H5 - 0xab,0xd9,0x83,0x1f, // H6 - 0x19,0xcd,0xe0,0x5b // H7 -}; - -void Sha256Class::init(void) { - memcpy_P(state.b,sha256InitState,32); - byteCount = 0; - bufferOffset = 0; -} - -uint32_t Sha256Class::ror32(uint32_t number, uint8_t bits) { - return ((number << (32-bits)) | (number >> bits)); -} - -void Sha256Class::hashBlock() { - uint8_t i; - uint32_t a,b,c,d,e,f,g,h,t1,t2; - - a=state.w[0]; - b=state.w[1]; - c=state.w[2]; - d=state.w[3]; - e=state.w[4]; - f=state.w[5]; - g=state.w[6]; - h=state.w[7]; - - for (i=0; i<64; i++) { - if (i>=16) { - t1 = buffer.w[i&15] + buffer.w[(i-7)&15]; - t2 = buffer.w[(i-2)&15]; - t1 += ror32(t2,17) ^ ror32(t2,19) ^ (t2>>10); - t2 = buffer.w[(i-15)&15]; - t1 += ror32(t2,7) ^ ror32(t2,18) ^ (t2>>3); - buffer.w[i&15] = t1; - } - t1 = h; - t1 += ror32(e,6) ^ ror32(e,11) ^ ror32(e,25); // ∑1(e) - t1 += g ^ (e & (g ^ f)); // Ch(e,f,g) - t1 += pgm_read_dword(sha256K+i); // Ki - t1 += buffer.w[i&15]; // Wi - t2 = ror32(a,2) ^ ror32(a,13) ^ ror32(a,22); // ∑0(a) - t2 += ((b & c) | (a & (b | c))); // Maj(a,b,c) - h=g; g=f; f=e; e=d+t1; d=c; c=b; b=a; a=t1+t2; - } - state.w[0] += a; - state.w[1] += b; - state.w[2] += c; - state.w[3] += d; - state.w[4] += e; - state.w[5] += f; - state.w[6] += g; - state.w[7] += h; -} - -void Sha256Class::addUncounted(uint8_t data) { - buffer.b[bufferOffset ^ 3] = data; - bufferOffset++; - if (bufferOffset == BUFFER_SIZE) { - hashBlock(); - bufferOffset = 0; - } -} - -size_t Sha256Class::write(uint8_t data) { - ++byteCount; - addUncounted(data); - return 1; -} - -void Sha256Class::pad() { - // Implement SHA-256 padding (fips180-2 §5.1.1) - - // Pad with 0x80 followed by 0x00 until the end of the block - addUncounted(0x80); - while (bufferOffset != 56) addUncounted(0x00); - - // Append length in the last 8 bytes - addUncounted(0); // We're only using 32 bit lengths - addUncounted(0); // But SHA-1 supports 64 bit lengths - addUncounted(0); // So zero pad the top bits - addUncounted(byteCount >> 29); // Shifting to multiply by 8 - addUncounted(byteCount >> 21); // as SHA-1 supports bitstreams as well as - addUncounted(byteCount >> 13); // byte. - addUncounted(byteCount >> 5); - addUncounted(byteCount << 3); -} - - -uint8_t* Sha256Class::result(void) { - // Pad to complete the last block - pad(); - - // Swap byte order back - for (int i=0; i<8; i++) { - uint32_t a,b; - a=state.w[i]; - b=a<<24; - b|=(a<<8) & 0x00ff0000; - b|=(a>>8) & 0x0000ff00; - b|=a>>24; - state.w[i]=b; - } - - // Return pointer to hash (20 characters) - return state.b; -} - -#define HMAC_IPAD 0x36 -#define HMAC_OPAD 0x5c - -uint8_t keyBuffer[BLOCK_LENGTH]; // K0 in FIPS-198a -uint8_t innerHash[HASH_LENGTH]; - -void Sha256Class::initHmac(const uint8_t* key, int keyLength) { - uint8_t i; - memset(keyBuffer,0,BLOCK_LENGTH); - if (keyLength > BLOCK_LENGTH) { - // Hash long keys - init(); - for (;keyLength--;) write(*key++); - memcpy(keyBuffer,result(),HASH_LENGTH); - } else { - // Block length keys are used as is - memcpy(keyBuffer,key,keyLength); - } - // Start inner hash - init(); - for (i=0; i -#include "Print.h" - -#define HASH_LENGTH 32 -#define BLOCK_LENGTH 64 - -union _buffer { - uint8_t b[BLOCK_LENGTH]; - uint32_t w[BLOCK_LENGTH/4]; -}; -union _state { - uint8_t b[HASH_LENGTH]; - uint32_t w[HASH_LENGTH/4]; -}; - -class Sha256Class : public Print -{ - public: - void init(void); - void initHmac(const uint8_t* secret, int secretLength); - uint8_t* result(void); - uint8_t* resultHmac(void); - virtual size_t write(uint8_t); - using Print::write; - private: - void pad(); - void addUncounted(uint8_t data); - void hashBlock(); - uint32_t ror32(uint32_t number, uint8_t bits); - _buffer buffer; - uint8_t bufferOffset; - _state state; - uint32_t byteCount; - uint8_t keyBuffer[BLOCK_LENGTH]; - uint8_t innerHash[HASH_LENGTH]; -}; -extern Sha256Class Sha256; - -#endif \ No newline at end of file From e63a8c4b756d90ce03421837f58f03b21bd973d2 Mon Sep 17 00:00:00 2001 From: Rick Watson Date: Sat, 11 May 2019 15:11:11 +0100 Subject: [PATCH 07/62] use SDK provided encoder, rather than pulling in library --- src/ArduinoJsonJWT.cpp | 87 +++++++++++++++++----------- src/ArduinoJsonJWT.h | 10 ++-- src/SecurityManager.cpp | 6 +- src/base64.cpp | 124 ---------------------------------------- src/base64.h | 77 ------------------------- 5 files changed, 63 insertions(+), 241 deletions(-) delete mode 100644 src/base64.cpp delete mode 100644 src/base64.h diff --git a/src/ArduinoJsonJWT.cpp b/src/ArduinoJsonJWT.cpp index 3889fe9..b99a949 100644 --- a/src/ArduinoJsonJWT.cpp +++ b/src/ArduinoJsonJWT.cpp @@ -14,7 +14,7 @@ void ArduinoJsonJWT::setSecret(String secret){ * No need to pull in additional crypto libraries - lets use what we already have. */ String ArduinoJsonJWT::sign(String &payload) { - unsigned char hmacResult[32]; + unsigned char hmacResult[33]; { #if defined(ESP_PLATFORM) mbedtls_md_context_t ctx; @@ -34,43 +34,15 @@ String ArduinoJsonJWT::sign(String &payload) { br_hmac_out(&hmacCtx, hmacResult); #endif } - return encode(hmacResult, 32); -} - -String ArduinoJsonJWT::decode(unsigned char * value) { - // create buffer of approperate length - size_t decodedLength = decode_base64_length(value) + 1; - char decoded[decodedLength]; - - // decode - decode_base64(value, (unsigned char *) decoded); - decoded[decodedLength-1] = 0; - - // return as arduino string - return String(decoded); -} - -String ArduinoJsonJWT::encode(unsigned char * value , int length) { - int encodedIndex = encode_base64_length(length); - - // encode - char encoded[encodedIndex]; - encode_base64(value, length, (unsigned char *) encoded); - - // trim padding - while (encoded[--encodedIndex] == '=') { - encoded[encodedIndex] = 0; - } - - // return as string - return String(encoded); + hmacResult[32] = 0; + return encode(String((char *) hmacResult)); } String ArduinoJsonJWT::buildJWT(JsonObject &payload) { // serialize, then encode payload String jwt; serializeJson(payload, jwt); - jwt = encode((unsigned char *) jwt.c_str(), jwt.length()); + jwt = encode(jwt); // add the header to payload jwt = JWT_HEADER + '.' + jwt; @@ -108,7 +80,7 @@ void ArduinoJsonJWT::parseJWT(String jwt, JsonDocument &jsonDocument) { // decode payload jwt = jwt.substring(JWT_HEADER_SIZE + 1); - jwt = decode((unsigned char *) jwt.c_str()); + jwt = decode(jwt); // parse payload, clearing json document after failure DeserializationError error = deserializeJson(jsonDocument, jwt); @@ -116,3 +88,52 @@ void ArduinoJsonJWT::parseJWT(String jwt, JsonDocument &jsonDocument) { jsonDocument.clear(); } } + +String ArduinoJsonJWT::encode(String value) { + // prepare encoder + base64_encodestate _state; +#if defined(ESP8266) + base64_init_encodestate_nonewlines(&_state); + size_t encodedLength = base64_encode_expected_len_nonewlines(value.length()) + 1; +#elif defined(ESP_PLATFORM) + base64_init_encodestate(&_state); + size_t encodedLength = base64_encode_expected_len(value.length()) + 1; +#endif + + // prepare buffer of correct length + char buffer[encodedLength]; + + // encode to buffer + int len = base64_encode_block(value.c_str(), value.length(), &buffer[0], &_state); + len += base64_encode_blockend(&buffer[len], &_state); + buffer[len] = 0; + + // convert to arduino string + value = String(buffer); + + // remove padding and convert to URL safe form + while (value.charAt(value.length() - 1) == '='){ + value.remove(value.length() - 1); + } + value.replace('+', '-'); + value.replace('/', '_'); + + // return as string + return value; +} + +String ArduinoJsonJWT::decode(String value) { + // convert to standard base64 + value.replace('-', '+'); + value.replace( '_', '/'); + + // prepare buffer of correct length + char buffer[base64_decode_expected_len(value.length()) + 1]; + + // decode + int len = base64_decode_chars(value.c_str(), value.length(), &buffer[0]); + buffer[len] = 0; + + // return as string + return String(buffer); +} diff --git a/src/ArduinoJsonJWT.h b/src/ArduinoJsonJWT.h index d317db6..672c9fc 100644 --- a/src/ArduinoJsonJWT.h +++ b/src/ArduinoJsonJWT.h @@ -1,11 +1,10 @@ #ifndef ArduinoJsonJWT_H #define ArduinoJsonJWT_H -#include "base64.h" - #include #include - +#include +#include #if defined(ESP_PLATFORM) #include #else @@ -24,8 +23,9 @@ private: const String JWT_HEADER = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9"; String sign(String &value); - String encode(unsigned char * value, int length); - String decode(unsigned char * value); + + static String encode(String value); + static String decode(String value); public: ArduinoJsonJWT(String secret); diff --git a/src/SecurityManager.cpp b/src/SecurityManager.cpp index 3a1ecae..73596b6 100644 --- a/src/SecurityManager.cpp +++ b/src/SecurityManager.cpp @@ -104,8 +104,10 @@ void SecurityManager::testVerification(AsyncWebServerRequest *request, JsonDocum DynamicJsonDocument parsedJwt(MAX_JWT_SIZE); jwtHandler.parseJWT(accessToken, parsedJwt); if (parsedJwt.is()){ - String username = parsedJwt["username"]; - Serial.println(username); + // authentication successful + AsyncWebServerResponse *response = request->beginResponse(200); + request->send(response); + return; } } // authentication failed diff --git a/src/base64.cpp b/src/base64.cpp deleted file mode 100644 index 2ebaf27..0000000 --- a/src/base64.cpp +++ /dev/null @@ -1,124 +0,0 @@ -#include "base64.h" - -unsigned char binary_to_base64(unsigned char v) { - // Capital letters - 'A' is ascii 65 and base64 0 - if(v < 26) return v + 'A'; - - // Lowercase letters - 'a' is ascii 97 and base64 26 - if(v < 52) return v + 71; - - // Digits - '0' is ascii 48 and base64 52 - if(v < 62) return v - 4; - - // '+' is ascii 43 and base64 62 - if(v == 62) return '-'; - - // '/' is ascii 47 and base64 63 - if(v == 63) return '_'; - - return 64; -} - -unsigned char base64_to_binary(unsigned char c) { - // Capital letters - 'A' is ascii 65 and base64 0 - if('A' <= c && c <= 'Z') return c - 'A'; - - // Lowercase letters - 'a' is ascii 97 and base64 26 - if('a' <= c && c <= 'z') return c - 71; - - // Digits - '0' is ascii 48 and base64 52 - if('0' <= c && c <= '9') return c + 4; - - // '+' is ascii 43 and base64 62 - if(c == '-') return 62; - - // '/' is ascii 47 and base64 63 - if(c == '_') return 63; - - return 255; -} - -unsigned int encode_base64_length(unsigned int input_length) { - return (input_length + 2)/3*4; -} - -unsigned int decode_base64_length(unsigned char input[]) { - unsigned char *start = input; - - while(base64_to_binary(input[0]) < 64) { - ++input; - } - - unsigned int input_length = input - start; - - unsigned int output_length = input_length/4*3; - - switch(input_length % 4) { - default: return output_length; - case 2: return output_length + 1; - case 3: return output_length + 2; - } -} - -unsigned int encode_base64(unsigned char input[], unsigned int input_length, unsigned char output[]) { - unsigned int full_sets = input_length/3; - - // While there are still full sets of 24 bits... - for(unsigned int i = 0; i < full_sets; ++i) { - output[0] = binary_to_base64( input[0] >> 2); - output[1] = binary_to_base64((input[0] & 0x03) << 4 | input[1] >> 4); - output[2] = binary_to_base64((input[1] & 0x0F) << 2 | input[2] >> 6); - output[3] = binary_to_base64( input[2] & 0x3F); - - input += 3; - output += 4; - } - - switch(input_length % 3) { - case 0: - output[0] = '\0'; - break; - case 1: - output[0] = binary_to_base64( input[0] >> 2); - output[1] = binary_to_base64((input[0] & 0x03) << 4); - output[2] = '='; - output[3] = '='; - output[4] = '\0'; - break; - case 2: - output[0] = binary_to_base64( input[0] >> 2); - output[1] = binary_to_base64((input[0] & 0x03) << 4 | input[1] >> 4); - output[2] = binary_to_base64((input[1] & 0x0F) << 2); - output[3] = '='; - output[4] = '\0'; - break; - } - - return encode_base64_length(input_length); -} - -unsigned int decode_base64(unsigned char input[], unsigned char output[]) { - unsigned int output_length = decode_base64_length(input); - - // While there are still full sets of 24 bits... - for(unsigned int i = 2; i < output_length; i += 3) { - output[0] = base64_to_binary(input[0]) << 2 | base64_to_binary(input[1]) >> 4; - output[1] = base64_to_binary(input[1]) << 4 | base64_to_binary(input[2]) >> 2; - output[2] = base64_to_binary(input[2]) << 6 | base64_to_binary(input[3]); - - input += 4; - output += 3; - } - - switch(output_length % 3) { - case 1: - output[0] = base64_to_binary(input[0]) << 2 | base64_to_binary(input[1]) >> 4; - break; - case 2: - output[0] = base64_to_binary(input[0]) << 2 | base64_to_binary(input[1]) >> 4; - output[1] = base64_to_binary(input[1]) << 4 | base64_to_binary(input[2]) >> 2; - break; - } - - return output_length; -} \ No newline at end of file diff --git a/src/base64.h b/src/base64.h deleted file mode 100644 index fd748d2..0000000 --- a/src/base64.h +++ /dev/null @@ -1,77 +0,0 @@ -/** - * Adapted from https://github.com/Densaugeo/base64_arduino - */ - -/** - * Base64 encoding and decoding of strings. Uses '+' for 62, '\' for 63, '=' for padding - * This has been modified to use '-' for 62, '_' for 63 as per the JWT specification - */ - -#ifndef BASE64_H_INCLUDED -#define BASE64_H_INCLUDED - -/* binary_to_base64: - * Description: - * Converts a single byte from a binary value to the corresponding base64 character - * Parameters: - * v - Byte to convert - * Returns: - * ascii code of base64 character. If byte is >= 64, then there is not corresponding base64 character - * and 255 is returned - */ -unsigned char binary_to_base64(unsigned char v); - -/* base64_to_binary: - * Description: - * Converts a single byte from a base64 character to the corresponding binary value - * Parameters: - * c - Base64 character (as ascii code) - * Returns: - * 6-bit binary value - */ -unsigned char base64_to_binary(unsigned char v); - -/* encode_base64_length: - * Description: - * Calculates length of base64 string needed for a given number of binary bytes - * Parameters: - * input_length - Amount of binary data in bytes - * Returns: - * Number of base64 characters needed to encode input_length bytes of binary data - */ -unsigned int encode_base64_length(unsigned int input_length); - -/* decode_base64_length: - * Description: - * Calculates number of bytes of binary data in a base64 string - * Parameters: - * input - Base64-encoded null-terminated string - * Returns: - * Number of bytes of binary data in input - */ -unsigned int decode_base64_length(unsigned char input[]); - -/* encode_base64: - * Description: - * Converts an array of bytes to a base64 null-terminated string - * Parameters: - * input - Pointer to input data - * input_length - Number of bytes to read from input pointer - * output - Pointer to output string. Null terminator will be added automatically - * Returns: - * Length of encoded string in bytes (not including null terminator) - */ -unsigned int encode_base64(unsigned char input[], unsigned int input_length, unsigned char output[]); - -/* decode_base64: - * Description: - * Converts a base64 null-terminated string to an array of bytes - * Parameters: - * input - Pointer to input string - * output - Pointer to output array - * Returns: - * Number of bytes in the decoded binary - */ -unsigned int decode_base64(unsigned char input[], unsigned char output[]); - -#endif // ifndef \ No newline at end of file From 7f6fc0facc2272ee8ea7275dd4d470d34506176f Mon Sep 17 00:00:00 2001 From: Rick Watson Date: Tue, 14 May 2019 22:20:08 +0100 Subject: [PATCH 08/62] Minor interface tidyups: Factor out app name Tidy index.js --- interface/.env | 1 + interface/src/components/MenuAppBar.js | 4 +++- interface/src/index.js | 7 ++----- 3 files changed, 6 insertions(+), 6 deletions(-) create mode 100644 interface/.env diff --git a/interface/.env b/interface/.env new file mode 100644 index 0000000..54f3b9d --- /dev/null +++ b/interface/.env @@ -0,0 +1 @@ +REACT_APP_NAME=ESP8266 React diff --git a/interface/src/components/MenuAppBar.js b/interface/src/components/MenuAppBar.js index 82777b9..697d7c3 100644 --- a/interface/src/components/MenuAppBar.js +++ b/interface/src/components/MenuAppBar.js @@ -22,6 +22,8 @@ import SystemUpdateIcon from '@material-ui/icons/SystemUpdate'; import AccessTimeIcon from '@material-ui/icons/AccessTime'; import SettingsInputAntennaIcon from '@material-ui/icons/SettingsInputAntenna'; +import { APP_NAME } from '../constants/App'; + const drawerWidth = 290; const styles = theme => ({ @@ -97,7 +99,7 @@ class MenuAppBar extends React.Component {
- ESP8266 React + {APP_NAME} diff --git a/interface/src/index.js b/interface/src/index.js index 5e3b43f..a0801fc 100644 --- a/interface/src/index.js +++ b/interface/src/index.js @@ -2,15 +2,12 @@ import React from 'react'; import { render } from 'react-dom'; import history from './history'; -import { Router, Route, Redirect, Switch } from 'react-router'; +import { Router } from 'react-router'; import App from './App'; render(( - - - - + ), document.getElementById("root")) From 16eedb8171b408017a49d5e930cc2e01a0c0fbd8 Mon Sep 17 00:00:00 2001 From: Rick Watson Date: Tue, 14 May 2019 22:41:08 +0100 Subject: [PATCH 09/62] add constant for app name --- interface/src/constants/App.js | 1 + 1 file changed, 1 insertion(+) create mode 100644 interface/src/constants/App.js diff --git a/interface/src/constants/App.js b/interface/src/constants/App.js new file mode 100644 index 0000000..da2a94d --- /dev/null +++ b/interface/src/constants/App.js @@ -0,0 +1 @@ +export const APP_NAME = process.env.REACT_APP_NAME; From f93804c2403131e5f4ce3d05d3488111432bc9db Mon Sep 17 00:00:00 2001 From: Rick Watson Date: Tue, 14 May 2019 22:43:37 +0100 Subject: [PATCH 10/62] don't use deprecated variants --- interface/src/components/SectionContent.js | 2 +- interface/src/containers/APStatus.js | 4 ++-- interface/src/containers/NTPStatus.js | 4 ++-- interface/src/containers/WiFiStatus.js | 4 ++-- interface/src/forms/APSettingsForm.js | 4 ++-- interface/src/forms/NTPSettingsForm.js | 4 ++-- interface/src/forms/OTASettingsForm.js | 4 ++-- interface/src/forms/WiFiNetworkSelector.js | 4 ++-- interface/src/forms/WiFiSettingsForm.js | 4 ++-- 9 files changed, 17 insertions(+), 17 deletions(-) diff --git a/interface/src/components/SectionContent.js b/interface/src/components/SectionContent.js index 2bce92a..18bdf96 100644 --- a/interface/src/components/SectionContent.js +++ b/interface/src/components/SectionContent.js @@ -16,7 +16,7 @@ function SectionContent(props) { const { children, classes, title } = props; return ( - + {title} {children} diff --git a/interface/src/containers/APStatus.js b/interface/src/containers/APStatus.js index c66c359..fd935bc 100644 --- a/interface/src/containers/APStatus.js +++ b/interface/src/containers/APStatus.js @@ -107,7 +107,7 @@ class APStatus extends Component { !fetched ?
- + Loading...
@@ -115,7 +115,7 @@ class APStatus extends Component { data ? this.renderAPStatus(data, classes) :
- + {errorMessage} + + + + + : + +
+ + {errorMessage} + + +
+ } +
+ ); + } +} + +ManageUsersForm.propTypes = { + classes: PropTypes.object.isRequired, + users: PropTypes.object, + usersFetched: PropTypes.bool.isRequired, + errorMessage: PropTypes.string, + onSubmit: PropTypes.func.isRequired, + onReset: PropTypes.func.isRequired, + handleValueChange: PropTypes.func.isRequired, + handleCheckboxChange: PropTypes.func.isRequired, +}; + +export default withStyles(styles)(ManageUsersForm); From 685420aaedc07a1312fedb6d25fe27efd8f4d156 Mon Sep 17 00:00:00 2001 From: Rick Watson Date: Tue, 21 May 2019 23:36:51 +0100 Subject: [PATCH 19/62] switch to full width tabs --- interface/src/containers/APConfiguration.js | 2 +- interface/src/containers/NTPConfiguration.js | 2 +- interface/src/containers/WiFiConfiguration.js | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/interface/src/containers/APConfiguration.js b/interface/src/containers/APConfiguration.js index e866595..b811e68 100644 --- a/interface/src/containers/APConfiguration.js +++ b/interface/src/containers/APConfiguration.js @@ -25,7 +25,7 @@ class APConfiguration extends Component { const { selectedTab } = this.state; return ( - + diff --git a/interface/src/containers/NTPConfiguration.js b/interface/src/containers/NTPConfiguration.js index a0189ce..811ba63 100644 --- a/interface/src/containers/NTPConfiguration.js +++ b/interface/src/containers/NTPConfiguration.js @@ -23,7 +23,7 @@ class NTPConfiguration extends Component { const { selectedTab } = this.state; return ( - + diff --git a/interface/src/containers/WiFiConfiguration.js b/interface/src/containers/WiFiConfiguration.js index 7d21952..6049bdf 100644 --- a/interface/src/containers/WiFiConfiguration.js +++ b/interface/src/containers/WiFiConfiguration.js @@ -38,7 +38,7 @@ class WiFiConfiguration extends Component { const { selectedTab } = this.state; return ( - + From 0c630f0f93f37e6878eba80eed2ab0c56d0546c4 Mon Sep 17 00:00:00 2001 From: Rick Watson Date: Fri, 24 May 2019 12:19:27 +0100 Subject: [PATCH 20/62] Upgrade to material ui 4 Add user management and roles - TBA Menu Label Renames - TBA --- interface/package-lock.json | 571 ++++++++++-------- interface/package.json | 6 +- interface/src/App.js | 13 +- interface/src/AppRouting.js | 4 +- interface/src/components/MenuAppBar.js | 16 +- interface/src/components/SectionContent.js | 2 +- interface/src/containers/APStatus.js | 79 +-- interface/src/containers/ManageUsers.js | 27 +- interface/src/containers/NTPStatus.js | 98 +-- .../{UserConfiguration.js => Security.js} | 6 +- interface/src/containers/WiFiStatus.js | 49 +- interface/src/forms/ManageUsersForm.js | 230 +++++-- interface/src/forms/UserForm.js | 112 ++++ platformio.ini | 7 +- src/SecurityManager.cpp | 38 +- src/SecurityManager.h | 10 +- 16 files changed, 799 insertions(+), 469 deletions(-) rename interface/src/containers/{UserConfiguration.js => Security.js} (62%) create mode 100644 interface/src/forms/UserForm.js diff --git a/interface/package-lock.json b/interface/package-lock.json index f6e0094..ec051b7 100644 --- a/interface/package-lock.json +++ b/interface/package-lock.json @@ -890,68 +890,105 @@ "resolved": "https://registry.npmjs.org/@csstools/convert-colors/-/convert-colors-1.4.0.tgz", "integrity": "sha512-5a6wqoJV/xEdbRNKVo6I4hO3VjyDq//8q2f9I6PBAvMesJHFauXDorcNCsr9RzvsZnaWi5NYCcfyqP1QeFHFbw==" }, + "@emotion/hash": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.7.1.tgz", + "integrity": "sha512-OYpa/Sg+2GDX+jibUfpZVn1YqSVRpYmTLF2eyAfrFTIJSbwyIrc+YscayoykvaOME/wV4BV0Sa0yqdMrgse6mA==" + }, "@material-ui/core": { - "version": "3.9.3", - "resolved": "https://registry.npmjs.org/@material-ui/core/-/core-3.9.3.tgz", - "integrity": "sha512-REIj62+zEvTgI/C//YL4fZxrCVIySygmpZglsu/Nl5jPqy3CDjZv1F9ubBYorHqmRgeVPh64EghMMWqk4egmfg==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@material-ui/core/-/core-4.0.0.tgz", + "integrity": "sha512-mLEGTuzgUALRKFI3hkRcS0gi/cB3XV0JA4F5PT3rGUt7Dc4liu8/IGiHF7iQh+p337FMk8vkEMxMVdYd9JXKMQ==", "requires": { "@babel/runtime": "^7.2.0", - "@material-ui/system": "^3.0.0-alpha.0", - "@material-ui/utils": "^3.0.0-alpha.2", - "@types/jss": "^9.5.6", - "@types/react-transition-group": "^2.0.8", - "brcast": "^3.0.1", - "classnames": "^2.2.5", + "@material-ui/styles": "^4.0.0", + "@material-ui/system": "^4.0.0", + "@material-ui/types": "^4.0.0", + "@material-ui/utils": "^4.0.0", + "@types/react-transition-group": "^2.0.16", + "clsx": "^1.0.2", + "convert-css-length": "^1.0.2", "csstype": "^2.5.2", "debounce": "^1.1.0", "deepmerge": "^3.0.0", - "dom-helpers": "^3.2.1", "hoist-non-react-statics": "^3.2.1", "is-plain-object": "^2.0.4", - "jss": "^9.8.7", - "jss-camel-case": "^6.0.0", - "jss-default-unit": "^8.0.2", - "jss-global": "^3.0.0", - "jss-nested": "^6.0.1", - "jss-props-sort": "^6.0.0", - "jss-vendor-prefixer": "^7.0.0", "normalize-scroll-left": "^0.1.2", "popper.js": "^1.14.1", - "prop-types": "^15.6.0", - "react-event-listener": "^0.6.2", - "react-transition-group": "^2.2.1", - "recompose": "0.28.0 - 0.30.0", + "prop-types": "^15.7.2", + "react-event-listener": "^0.6.6", + "react-transition-group": "^4.0.0", "warning": "^4.0.1" } }, "@material-ui/icons": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@material-ui/icons/-/icons-3.0.2.tgz", - "integrity": "sha512-QY/3gJnObZQ3O/e6WjH+0ah2M3MOgLOzCy8HTUoUx9B6dDrS18vP7Ycw3qrDEKlB6q1KNxy6CZHm5FCauWGy2g==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@material-ui/icons/-/icons-4.0.0.tgz", + "integrity": "sha512-hXoKnVLmVer+kic84ypoyG3Amym3a8q3pvDg4KYjeKW9fxGru7x/IkelBJODQL0jO+nAPz1+9RNpFWC75v35dg==", + "requires": { + "@babel/runtime": "^7.2.0" + } + }, + "@material-ui/styles": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@material-ui/styles/-/styles-4.0.0.tgz", + "integrity": "sha512-TUpmXlyZDVOl6E2//+UzsZxgi2E+2L753QY02nNkbAC6PPx8FUBqvnjYSGqX0V/BjTJ/fD4CkoS6ZpY3lHf+Gg==", "requires": { "@babel/runtime": "^7.2.0", - "recompose": "0.28.0 - 0.30.0" + "@emotion/hash": "^0.7.1", + "@material-ui/types": "^4.0.0", + "@material-ui/utils": "^4.0.0", + "clsx": "^1.0.2", + "deepmerge": "^3.0.0", + "hoist-non-react-statics": "^3.2.1", + "jss": "^10.0.0-alpha.16", + "jss-plugin-camel-case": "^10.0.0-alpha.16", + "jss-plugin-default-unit": "^10.0.0-alpha.16", + "jss-plugin-global": "^10.0.0-alpha.16", + "jss-plugin-nested": "^10.0.0-alpha.16", + "jss-plugin-props-sort": "^10.0.0-alpha.16", + "jss-plugin-rule-value-function": "^10.0.0-alpha.16", + "jss-plugin-vendor-prefixer": "^10.0.0-alpha.16", + "prop-types": "^15.7.2", + "warning": "^4.0.1" + }, + "dependencies": { + "jss": { + "version": "10.0.0-alpha.16", + "resolved": "https://registry.npmjs.org/jss/-/jss-10.0.0-alpha.16.tgz", + "integrity": "sha512-HmKNNnr82TR5jkWjBcbrx/uim2ief588pWp7zsf4GQpL125zRkEaWYL1SXv5bR6bBvAoTtvJsTAOxDIlLxUNZg==", + "requires": { + "@babel/runtime": "^7.3.1", + "is-in-browser": "^1.1.3", + "tiny-warning": "^1.0.2" + } + } } }, "@material-ui/system": { - "version": "3.0.0-alpha.2", - "resolved": "https://registry.npmjs.org/@material-ui/system/-/system-3.0.0-alpha.2.tgz", - "integrity": "sha512-odmxQ0peKpP7RQBQ8koly06YhsPzcoVib1vByVPBH4QhwqBXuYoqlCjt02846fYspAqkrWzjxnWUD311EBbxOA==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@material-ui/system/-/system-4.0.0.tgz", + "integrity": "sha512-SIsqIwjix98Mqw9LVAmRqTs10E4S/SP5n5mlBlhHVHI+2XG2c+MaCPzOF2Zxq0KdqOMgTb7/aevR3mG9UmODxg==", "requires": { "@babel/runtime": "^7.2.0", "deepmerge": "^3.0.0", - "prop-types": "^15.6.0", + "prop-types": "^15.7.2", "warning": "^4.0.1" } }, + "@material-ui/types": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@material-ui/types/-/types-4.0.0.tgz", + "integrity": "sha512-wuiQMo8nSljZR1oWh57UQYssdtFqaU+Cbhr16uLohzzTllpCAK4LkH0slnH3n+5vCa2dgOdNlZTrmsIDDwvRJQ==" + }, "@material-ui/utils": { - "version": "3.0.0-alpha.3", - "resolved": "https://registry.npmjs.org/@material-ui/utils/-/utils-3.0.0-alpha.3.tgz", - "integrity": "sha512-rwMdMZptX0DivkqBuC+Jdq7BYTXwqKai5G5ejPpuEDKpWzi1Oxp+LygGw329FrKpuKeiqpcymlqJTjmy+quWng==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@material-ui/utils/-/utils-4.0.0.tgz", + "integrity": "sha512-gjz52hO1hkIbKPMng1diQybVgtfgCptOCrulUs4emSCHHKUoR1zfT+IUrjgOaKIpYZNOgS/CI7KDMp689+FzeQ==", "requires": { "@babel/runtime": "^7.2.0", - "prop-types": "^15.6.0", - "react-is": "^16.6.3" + "prop-types": "^15.7.2", + "react-is": "^16.8.0" } }, "@mrmlnc/readdir-enhanced": { @@ -1107,24 +1144,15 @@ "loader-utils": "^1.1.0" } }, - "@types/jss": { - "version": "9.5.8", - "resolved": "https://registry.npmjs.org/@types/jss/-/jss-9.5.8.tgz", - "integrity": "sha512-bBbHvjhm42UKki+wZpR89j73ykSXg99/bhuKuYYePtpma3ZAnmeGnl0WxXiZhPGsIfzKwCUkpPC0jlrVMBfRxA==", - "requires": { - "csstype": "^2.0.0", - "indefinite-observable": "^1.0.1" - } - }, "@types/node": { "version": "11.13.4", "resolved": "https://registry.npmjs.org/@types/node/-/node-11.13.4.tgz", "integrity": "sha512-+rabAZZ3Yn7tF/XPGHupKIL5EcAbrLxnTr/hgQICxbeuAfWtT0UZSfULE+ndusckBItcv4o6ZeOJplQikVcLvQ==" }, "@types/prop-types": { - "version": "15.7.0", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.0.tgz", - "integrity": "sha512-eItQyV43bj4rR3JPV0Skpl1SncRCdziTEK9/v8VwXmV6d/qOUO8/EuWeHBbCZcsfSHfzI5UyMJLCSXtxxznyZg==" + "version": "15.7.1", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.1.tgz", + "integrity": "sha512-CFzn9idOEpHrgdw8JsoTkaDDyRWk1jrzIV8djzcgpq0y9tG4B4lFT+Nxh52DVpDXV+n4+NPNv7M1Dj5uMp6XFg==" }, "@types/q": { "version": "1.5.2", @@ -1132,18 +1160,18 @@ "integrity": "sha512-ce5d3q03Ex0sy4R14722Rmt6MT07Ua+k4FwDfdcToYJcMKNtRVQvJ6JCAPdAmAnbRb6CsX6aYb9m96NGod9uTw==" }, "@types/react": { - "version": "16.8.13", - "resolved": "https://registry.npmjs.org/@types/react/-/react-16.8.13.tgz", - "integrity": "sha512-otJ4ntMuHGrvm67CdDJMAls4WqotmAmW0g3HmWi9LCjSWXrxoXY/nHXrtmMfvPEEmGFNm6NdgMsJmnfH820Qaw==", + "version": "16.8.18", + "resolved": "https://registry.npmjs.org/@types/react/-/react-16.8.18.tgz", + "integrity": "sha512-lUXdKzRqWR4FebR5tGHkLCqnvQJS4fdXKCBrNGGbglqZg2gpU+J82pMONevQODUotATs9fc9k66bx3/St8vReg==", "requires": { "@types/prop-types": "*", "csstype": "^2.2.0" } }, "@types/react-transition-group": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-2.9.0.tgz", - "integrity": "sha512-hP7vUaZMVSWKxo133P8U51U6UZ7+pbY+eAQb8+p6SZ2rB1rj3mOTDgTzhhi+R2SCB4S+sWekAAGoxdiZPG0ReQ==", + "version": "2.9.1", + "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-2.9.1.tgz", + "integrity": "sha512-1usq4DRUVBFnxc9KGJAlJO9EpQrLZGDDEC8wDOn2+2ODSyudYo8FiIzPDRaX/hfQjHqGeeoNaNdA2bj0l35hZQ==", "requires": { "@types/react": "*" } @@ -2686,11 +2714,6 @@ "repeat-element": "^1.1.2" } }, - "brcast": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/brcast/-/brcast-3.0.1.tgz", - "integrity": "sha512-eI3yqf9YEqyGl9PCNTR46MGvDylGtaHjalcz6Q3fAPnP/PhpKkkve52vFdfGpwp4VUvK6LUr4TQN+2stCrEwTg==" - }, "brorand": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", @@ -2960,11 +2983,6 @@ "supports-color": "^5.3.0" } }, - "change-emitter": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/change-emitter/-/change-emitter-0.1.6.tgz", - "integrity": "sha1-6LL+PX8at9aaMhma/5HqaTFAlRU=" - }, "chardet": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", @@ -3616,11 +3634,6 @@ } } }, - "classnames": { - "version": "2.2.6", - "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.2.6.tgz", - "integrity": "sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q==" - }, "clean-css": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.1.tgz", @@ -3679,6 +3692,11 @@ "shallow-clone": "^0.1.2" } }, + "clsx": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.0.4.tgz", + "integrity": "sha512-1mQ557MIZTrL/140j+JVdRM6e31/OA4vTYxXgqIIZlndyfjHpyawKZia1Im05Vp9BWmImkcNrNtFYQMyFcgJDg==" + }, "co": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", @@ -3859,6 +3877,11 @@ "date-now": "^0.1.4" } }, + "console-polyfill": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/console-polyfill/-/console-polyfill-0.1.2.tgz", + "integrity": "sha1-ls/tUcr3gYn2mVcubxgnHcN8DjA=" + }, "constants-browserify": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", @@ -3879,6 +3902,15 @@ "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" }, + "convert-css-length": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/convert-css-length/-/convert-css-length-1.0.2.tgz", + "integrity": "sha512-ecV7j3hXyXN1X2XfJBzhMR0o1Obv0v3nHmn0UiS3ACENrzbxE/EknkiunS/fCwQva0U62X1GChi8GaPh4oTlLg==", + "requires": { + "console-polyfill": "^0.1.2", + "parse-unit": "^1.0.1" + } + }, "convert-source-map": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.6.0.tgz", @@ -4257,14 +4289,6 @@ "resolved": "https://registry.npmjs.org/css-url-regex/-/css-url-regex-1.1.0.tgz", "integrity": "sha1-g4NCMMyfdMRX3lnuvRVD/uuDt+w=" }, - "css-vendor": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/css-vendor/-/css-vendor-0.3.8.tgz", - "integrity": "sha1-ZCHP0wNM5mT+dnOXL9ARn8KJQfo=", - "requires": { - "is-in-browser": "^1.0.2" - } - }, "css-what": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.3.tgz", @@ -4449,9 +4473,9 @@ } }, "csstype": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.3.tgz", - "integrity": "sha512-rINUZXOkcBmoHWEyu7JdHu5JMzkGRoMX4ov9830WNgxf5UYxcBUO0QTKAqeJ5EZfSdlrcJYkC8WwfVW7JYi4yg==" + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.4.tgz", + "integrity": "sha512-lAJUJP3M6HxFXbqtGRc0iZrdyeN+WzOWeY0q/VnFzI+kqVrYIzC7bWlKqCW7oCIdzoPkvfp82EVvrTlQ8zsWQg==" }, "cyclist": { "version": "0.2.2", @@ -7993,14 +8017,6 @@ "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" }, - "indefinite-observable": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/indefinite-observable/-/indefinite-observable-1.0.2.tgz", - "integrity": "sha512-Mps0898zEduHyPhb7UCgNmfzlqNZknVmaFz5qzr0mm04YQ5FGLhAyK/dJ+NaRxGyR6juQXIxh5Ev0xx+qq0nYA==", - "requires": { - "symbol-observable": "1.2.0" - } - }, "indexes-of": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", @@ -8230,11 +8246,6 @@ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" }, - "is-function": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.1.tgz", - "integrity": "sha1-Es+5i2W1fdPRk6MSH19uL0N2ArU=" - }, "is-generator-fn": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-1.0.0.tgz", @@ -9195,148 +9206,242 @@ } }, "jss": { - "version": "9.8.7", - "resolved": "https://registry.npmjs.org/jss/-/jss-9.8.7.tgz", - "integrity": "sha512-awj3XRZYxbrmmrx9LUSj5pXSUfm12m8xzi/VKeqI1ZwWBtQ0kVPTs3vYs32t4rFw83CgFDukA8wKzOE9sMQnoQ==", + "version": "10.0.0-alpha.16", + "resolved": "https://registry.npmjs.org/jss/-/jss-10.0.0-alpha.16.tgz", + "integrity": "sha512-HmKNNnr82TR5jkWjBcbrx/uim2ief588pWp7zsf4GQpL125zRkEaWYL1SXv5bR6bBvAoTtvJsTAOxDIlLxUNZg==", "requires": { + "@babel/runtime": "^7.3.1", "is-in-browser": "^1.1.3", - "symbol-observable": "^1.1.0", - "warning": "^3.0.0" + "tiny-warning": "^1.0.2" + } + }, + "jss-plugin-camel-case": { + "version": "10.0.0-alpha.16", + "resolved": "https://registry.npmjs.org/jss-plugin-camel-case/-/jss-plugin-camel-case-10.0.0-alpha.16.tgz", + "integrity": "sha512-nki+smHEsFyoZ0OlOYtaxVqcQA0ZHVJCE1slRnk+1TklbmxbBiO4TwITMTEaNIDv0U0Uyb0Z8wVgFgRwCCIFog==", + "requires": { + "@babel/runtime": "^7.3.1", + "hyphenate-style-name": "^1.0.3", + "jss": "10.0.0-alpha.16" }, "dependencies": { - "warning": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/warning/-/warning-3.0.0.tgz", - "integrity": "sha1-MuU3fLVy3kqwR1O9+IIcAe1gW3w=", + "jss": { + "version": "10.0.0-alpha.16", + "resolved": "https://registry.npmjs.org/jss/-/jss-10.0.0-alpha.16.tgz", + "integrity": "sha512-HmKNNnr82TR5jkWjBcbrx/uim2ief588pWp7zsf4GQpL125zRkEaWYL1SXv5bR6bBvAoTtvJsTAOxDIlLxUNZg==", "requires": { - "loose-envify": "^1.0.0" + "@babel/runtime": "^7.3.1", + "is-in-browser": "^1.1.3", + "tiny-warning": "^1.0.2" } } } }, - "jss-camel-case": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jss-camel-case/-/jss-camel-case-6.1.0.tgz", - "integrity": "sha512-HPF2Q7wmNW1t79mCqSeU2vdd/vFFGpkazwvfHMOhPlMgXrJDzdj9viA2SaHk9ZbD5pfL63a8ylp4++irYbbzMQ==", + "jss-plugin-compose": { + "version": "10.0.0-alpha.16", + "resolved": "https://registry.npmjs.org/jss-plugin-compose/-/jss-plugin-compose-10.0.0-alpha.16.tgz", + "integrity": "sha512-MeOc5RuDSqB3czoUFM32pBq370+sKKjG1K4aamVWpAUWpsphLi/YlotrFOkk/FCb2So1ga4W7/zrCc/50OeRAQ==", "requires": { - "hyphenate-style-name": "^1.0.2" + "@babel/runtime": "^7.3.1", + "jss": "10.0.0-alpha.16", + "tiny-warning": "^1.0.2" } }, - "jss-compose": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/jss-compose/-/jss-compose-5.0.0.tgz", - "integrity": "sha512-YofRYuiA0+VbeOw0VjgkyO380sA4+TWDrW52nSluD9n+1FWOlDzNbgpZ/Sb3Y46+DcAbOS21W5jo6SAqUEiuwA==", + "jss-plugin-default-unit": { + "version": "10.0.0-alpha.16", + "resolved": "https://registry.npmjs.org/jss-plugin-default-unit/-/jss-plugin-default-unit-10.0.0-alpha.16.tgz", + "integrity": "sha512-jjGW4F/r9yKvoyUk22M8nWhdMfvoWzJw/oFO2cDRXCk2onnWFiRALfqeUsEDyocwdZbyVF9WhZbSHn4GL03kSw==", "requires": { - "warning": "^3.0.0" + "@babel/runtime": "^7.3.1", + "jss": "10.0.0-alpha.16" }, "dependencies": { - "warning": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/warning/-/warning-3.0.0.tgz", - "integrity": "sha1-MuU3fLVy3kqwR1O9+IIcAe1gW3w=", + "jss": { + "version": "10.0.0-alpha.16", + "resolved": "https://registry.npmjs.org/jss/-/jss-10.0.0-alpha.16.tgz", + "integrity": "sha512-HmKNNnr82TR5jkWjBcbrx/uim2ief588pWp7zsf4GQpL125zRkEaWYL1SXv5bR6bBvAoTtvJsTAOxDIlLxUNZg==", "requires": { - "loose-envify": "^1.0.0" + "@babel/runtime": "^7.3.1", + "is-in-browser": "^1.1.3", + "tiny-warning": "^1.0.2" } } } }, - "jss-default-unit": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/jss-default-unit/-/jss-default-unit-8.0.2.tgz", - "integrity": "sha512-WxNHrF/18CdoAGw2H0FqOEvJdREXVXLazn7PQYU7V6/BWkCV0GkmWsppNiExdw8dP4TU1ma1dT9zBNJ95feLmg==" - }, - "jss-expand": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/jss-expand/-/jss-expand-5.3.0.tgz", - "integrity": "sha512-NiM4TbDVE0ykXSAw6dfFmB1LIqXP/jdd0ZMnlvlGgEMkMt+weJIl8Ynq1DsuBY9WwkNyzWktdqcEW2VN0RAtQg==" - }, - "jss-extend": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/jss-extend/-/jss-extend-6.2.0.tgz", - "integrity": "sha512-YszrmcB6o9HOsKPszK7NeDBNNjVyiW864jfoiHoMlgMIg2qlxKw70axZHqgczXHDcoyi/0/ikP1XaHDPRvYtEA==", + "jss-plugin-expand": { + "version": "10.0.0-alpha.16", + "resolved": "https://registry.npmjs.org/jss-plugin-expand/-/jss-plugin-expand-10.0.0-alpha.16.tgz", + "integrity": "sha512-Q3m0PDWGojfcmWBCkegRJxonq2q9lI6ZfixoFgvTvi+b9zKza0KXkHBUzGjeFyM36U/WRWj43SC33dajcI9jAg==", "requires": { - "warning": "^3.0.0" + "@babel/runtime": "^7.3.1", + "jss": "10.0.0-alpha.16" + } + }, + "jss-plugin-extend": { + "version": "10.0.0-alpha.16", + "resolved": "https://registry.npmjs.org/jss-plugin-extend/-/jss-plugin-extend-10.0.0-alpha.16.tgz", + "integrity": "sha512-nJ8H5b/dBZlqaPYCLNmcaHRQgzSlnAwhZUcIo30s0IgvhTtN/TaiRtEbrJZjfXPzatTsnFoRwZzJqs8Sakev+A==", + "requires": { + "@babel/runtime": "^7.3.1", + "jss": "10.0.0-alpha.16", + "tiny-warning": "^1.0.2" + } + }, + "jss-plugin-global": { + "version": "10.0.0-alpha.16", + "resolved": "https://registry.npmjs.org/jss-plugin-global/-/jss-plugin-global-10.0.0-alpha.16.tgz", + "integrity": "sha512-B1mm2ZF9OEsWPmzkG5ZUXqV88smDqpc4unILLXhWVuj0U5JeT0DNitH+QbXFrSueDJzkWVfvqyckvWDR/0qeDg==", + "requires": { + "@babel/runtime": "^7.3.1", + "jss": "10.0.0-alpha.16" }, "dependencies": { - "warning": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/warning/-/warning-3.0.0.tgz", - "integrity": "sha1-MuU3fLVy3kqwR1O9+IIcAe1gW3w=", + "jss": { + "version": "10.0.0-alpha.16", + "resolved": "https://registry.npmjs.org/jss/-/jss-10.0.0-alpha.16.tgz", + "integrity": "sha512-HmKNNnr82TR5jkWjBcbrx/uim2ief588pWp7zsf4GQpL125zRkEaWYL1SXv5bR6bBvAoTtvJsTAOxDIlLxUNZg==", "requires": { - "loose-envify": "^1.0.0" + "@babel/runtime": "^7.3.1", + "is-in-browser": "^1.1.3", + "tiny-warning": "^1.0.2" } } } }, - "jss-global": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/jss-global/-/jss-global-3.0.0.tgz", - "integrity": "sha512-wxYn7vL+TImyQYGAfdplg7yaxnPQ9RaXY/cIA8hawaVnmmWxDHzBK32u1y+RAvWboa3lW83ya3nVZ/C+jyjZ5Q==" - }, - "jss-nested": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/jss-nested/-/jss-nested-6.0.1.tgz", - "integrity": "sha512-rn964TralHOZxoyEgeq3hXY8hyuCElnvQoVrQwKHVmu55VRDd6IqExAx9be5HgK0yN/+hQdgAXQl/GUrBbbSTA==", + "jss-plugin-nested": { + "version": "10.0.0-alpha.16", + "resolved": "https://registry.npmjs.org/jss-plugin-nested/-/jss-plugin-nested-10.0.0-alpha.16.tgz", + "integrity": "sha512-3l/MB6COnIpq4GOXQFae6UydoaIPa81UxhuBTEQuiAojgTeUla9L7nB3h18Q4zAhQQpjxaEsyppAKuEzIP7kPQ==", "requires": { - "warning": "^3.0.0" + "@babel/runtime": "^7.3.1", + "jss": "10.0.0-alpha.16", + "tiny-warning": "^1.0.2" }, "dependencies": { - "warning": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/warning/-/warning-3.0.0.tgz", - "integrity": "sha1-MuU3fLVy3kqwR1O9+IIcAe1gW3w=", + "jss": { + "version": "10.0.0-alpha.16", + "resolved": "https://registry.npmjs.org/jss/-/jss-10.0.0-alpha.16.tgz", + "integrity": "sha512-HmKNNnr82TR5jkWjBcbrx/uim2ief588pWp7zsf4GQpL125zRkEaWYL1SXv5bR6bBvAoTtvJsTAOxDIlLxUNZg==", "requires": { - "loose-envify": "^1.0.0" + "@babel/runtime": "^7.3.1", + "is-in-browser": "^1.1.3", + "tiny-warning": "^1.0.2" + } + } + } + }, + "jss-plugin-props-sort": { + "version": "10.0.0-alpha.16", + "resolved": "https://registry.npmjs.org/jss-plugin-props-sort/-/jss-plugin-props-sort-10.0.0-alpha.16.tgz", + "integrity": "sha512-+Yn9nugHAH58nf/d43H2uxMvlCFPDgLKRSmKO4Q4m1IGYjMbHsWt1Rk2HfC9IiCanqcqpc8hstwtzf+HG7PWFQ==", + "requires": { + "@babel/runtime": "^7.3.1", + "jss": "10.0.0-alpha.16" + }, + "dependencies": { + "jss": { + "version": "10.0.0-alpha.16", + "resolved": "https://registry.npmjs.org/jss/-/jss-10.0.0-alpha.16.tgz", + "integrity": "sha512-HmKNNnr82TR5jkWjBcbrx/uim2ief588pWp7zsf4GQpL125zRkEaWYL1SXv5bR6bBvAoTtvJsTAOxDIlLxUNZg==", + "requires": { + "@babel/runtime": "^7.3.1", + "is-in-browser": "^1.1.3", + "tiny-warning": "^1.0.2" + } + } + } + }, + "jss-plugin-rule-value-function": { + "version": "10.0.0-alpha.16", + "resolved": "https://registry.npmjs.org/jss-plugin-rule-value-function/-/jss-plugin-rule-value-function-10.0.0-alpha.16.tgz", + "integrity": "sha512-MQap9ne6ZGZH0NlpSQTMSm6QalBTF0hYpd2uaGQwam+GlT7IKeO+sTjd46I1WgO3kyOmwb0pIY6CnuLQGXKtSA==", + "requires": { + "@babel/runtime": "^7.3.1", + "jss": "10.0.0-alpha.16" + }, + "dependencies": { + "jss": { + "version": "10.0.0-alpha.16", + "resolved": "https://registry.npmjs.org/jss/-/jss-10.0.0-alpha.16.tgz", + "integrity": "sha512-HmKNNnr82TR5jkWjBcbrx/uim2ief588pWp7zsf4GQpL125zRkEaWYL1SXv5bR6bBvAoTtvJsTAOxDIlLxUNZg==", + "requires": { + "@babel/runtime": "^7.3.1", + "is-in-browser": "^1.1.3", + "tiny-warning": "^1.0.2" + } + } + } + }, + "jss-plugin-rule-value-observable": { + "version": "10.0.0-alpha.16", + "resolved": "https://registry.npmjs.org/jss-plugin-rule-value-observable/-/jss-plugin-rule-value-observable-10.0.0-alpha.16.tgz", + "integrity": "sha512-Gmj1sVKWM2KVZpG0Wn3Z+SArvskdXEtSCrww43g/OO+j8DN9O+UEV47tM/HYfdiyLICnvKHc2XGmhNz9LHcpNQ==", + "requires": { + "@babel/runtime": "^7.3.1", + "jss": "10.0.0-alpha.16", + "symbol-observable": "^1.2.0" + } + }, + "jss-plugin-template": { + "version": "10.0.0-alpha.16", + "resolved": "https://registry.npmjs.org/jss-plugin-template/-/jss-plugin-template-10.0.0-alpha.16.tgz", + "integrity": "sha512-L1epTMTDINJPUZkFuyohCXQtJDTMj1CNTBv9ysqVyMc3qjkifAvPEws6XuoRSC9jy1ZvqDTWlxPfbmoJ2r6BWg==", + "requires": { + "@babel/runtime": "^7.3.1", + "jss": "10.0.0-alpha.16", + "tiny-warning": "^1.0.2" + } + }, + "jss-plugin-vendor-prefixer": { + "version": "10.0.0-alpha.16", + "resolved": "https://registry.npmjs.org/jss-plugin-vendor-prefixer/-/jss-plugin-vendor-prefixer-10.0.0-alpha.16.tgz", + "integrity": "sha512-70yJ6QE5dN8VlPUGKld5jK2SKyrteheEL/ismexpybIufunMs6iJgkhDndbOfv8ia13yZgUVqeakMdhRKYwK1A==", + "requires": { + "@babel/runtime": "^7.3.1", + "css-vendor": "^2.0.1", + "jss": "10.0.0-alpha.16" + }, + "dependencies": { + "css-vendor": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/css-vendor/-/css-vendor-2.0.2.tgz", + "integrity": "sha512-Xn5ZAlI00d8HaQ8/oQ8d+iBzSF//NCc77LPzsucM32X/R/yTqmXy6otVsAM0XleXk6HjPuXoVZwXsayky/fsFQ==", + "requires": { + "@babel/runtime": "^7.3.1", + "is-in-browser": "^1.0.2" + } + }, + "jss": { + "version": "10.0.0-alpha.16", + "resolved": "https://registry.npmjs.org/jss/-/jss-10.0.0-alpha.16.tgz", + "integrity": "sha512-HmKNNnr82TR5jkWjBcbrx/uim2ief588pWp7zsf4GQpL125zRkEaWYL1SXv5bR6bBvAoTtvJsTAOxDIlLxUNZg==", + "requires": { + "@babel/runtime": "^7.3.1", + "is-in-browser": "^1.1.3", + "tiny-warning": "^1.0.2" } } } }, "jss-preset-default": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/jss-preset-default/-/jss-preset-default-4.5.0.tgz", - "integrity": "sha512-qZbpRVtHT7hBPpZEBPFfafZKWmq3tA/An5RNqywDsZQGrlinIF/mGD9lmj6jGqu8GrED2SMHZ3pPKLmjCZoiaQ==", + "version": "10.0.0-alpha.16", + "resolved": "https://registry.npmjs.org/jss-preset-default/-/jss-preset-default-10.0.0-alpha.16.tgz", + "integrity": "sha512-YBq2XE4iJdl16klxfw0xTaKksfAIXSoC2kPZQ4dmw4n/KMFOz/A26eN30FwWixyObfDMKyZp94vwCKal7711IQ==", "requires": { - "jss-camel-case": "^6.1.0", - "jss-compose": "^5.0.0", - "jss-default-unit": "^8.0.2", - "jss-expand": "^5.3.0", - "jss-extend": "^6.2.0", - "jss-global": "^3.0.0", - "jss-nested": "^6.0.1", - "jss-props-sort": "^6.0.0", - "jss-template": "^1.0.1", - "jss-vendor-prefixer": "^7.0.0" - } - }, - "jss-props-sort": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/jss-props-sort/-/jss-props-sort-6.0.0.tgz", - "integrity": "sha512-E89UDcrphmI0LzmvYk25Hp4aE5ZBsXqMWlkFXS0EtPkunJkRr+WXdCNYbXbksIPnKlBenGB9OxzQY+mVc70S+g==" - }, - "jss-template": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/jss-template/-/jss-template-1.0.1.tgz", - "integrity": "sha512-m5BqEWha17fmIVXm1z8xbJhY6GFJxNB9H68GVnCWPyGYfxiAgY9WTQyvDAVj+pYRgrXSOfN5V1T4+SzN1sJTeg==", - "requires": { - "warning": "^3.0.0" - }, - "dependencies": { - "warning": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/warning/-/warning-3.0.0.tgz", - "integrity": "sha1-MuU3fLVy3kqwR1O9+IIcAe1gW3w=", - "requires": { - "loose-envify": "^1.0.0" - } - } - } - }, - "jss-vendor-prefixer": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/jss-vendor-prefixer/-/jss-vendor-prefixer-7.0.0.tgz", - "integrity": "sha512-Agd+FKmvsI0HLcYXkvy8GYOw3AAASBUpsmIRvVQheps+JWaN892uFOInTr0DRydwaD91vSSUCU4NssschvF7MA==", - "requires": { - "css-vendor": "^0.3.8" + "@babel/runtime": "^7.3.1", + "jss": "10.0.0-alpha.16", + "jss-plugin-camel-case": "10.0.0-alpha.16", + "jss-plugin-compose": "10.0.0-alpha.16", + "jss-plugin-default-unit": "10.0.0-alpha.16", + "jss-plugin-expand": "10.0.0-alpha.16", + "jss-plugin-extend": "10.0.0-alpha.16", + "jss-plugin-global": "10.0.0-alpha.16", + "jss-plugin-nested": "10.0.0-alpha.16", + "jss-plugin-props-sort": "10.0.0-alpha.16", + "jss-plugin-rule-value-function": "10.0.0-alpha.16", + "jss-plugin-rule-value-observable": "10.0.0-alpha.16", + "jss-plugin-template": "10.0.0-alpha.16", + "jss-plugin-vendor-prefixer": "10.0.0-alpha.16" } }, "jsx-ast-utils": { @@ -10455,6 +10560,11 @@ "json-parse-better-errors": "^1.0.1" } }, + "parse-unit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parse-unit/-/parse-unit-1.0.1.tgz", + "integrity": "sha1-fhu21b7zh0wo45JSaiVBFwKR7s8=" + }, "parse5": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.0.tgz", @@ -13013,6 +13123,11 @@ } } }, + "react-display-name": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/react-display-name/-/react-display-name-0.2.4.tgz", + "integrity": "sha512-zvU6iouW+SWwHTyThwxGICjJYCMZFk/6r/+jmOdC7ntQoPlS/Pqb81MkxaMf2bHTSq9TN3K3zX2/ayMW/jCtyA==" + }, "react-dom": { "version": "16.8.6", "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.8.6.tgz", @@ -13054,22 +13169,17 @@ "integrity": "sha512-aUk3bHfZ2bRSVFFbbeVS4i+lNPZr3/WM5jT2J5omUVV1zzcs1nAaf3l51ctA5FFvCRbhrH0bdAsRRQddFJZPtA==" }, "react-jss": { - "version": "8.6.1", - "resolved": "https://registry.npmjs.org/react-jss/-/react-jss-8.6.1.tgz", - "integrity": "sha512-SH6XrJDJkAphp602J14JTy3puB2Zxz1FkM3bKVE8wON+va99jnUTKWnzGECb3NfIn9JPR5vHykge7K3/A747xQ==", + "version": "10.0.0-alpha.16", + "resolved": "https://registry.npmjs.org/react-jss/-/react-jss-10.0.0-alpha.16.tgz", + "integrity": "sha512-nGIerGVDV9V6cpRXhkJZgoV0MsoJbKMdAiCoPzCDnsdR+om6zLyhQEvVHNtd0mB16dO+pzNaovhBvElhdj/3ug==", "requires": { - "hoist-non-react-statics": "^2.5.0", - "jss": "^9.7.0", - "jss-preset-default": "^4.3.0", + "@babel/runtime": "^7.3.1", + "hoist-non-react-statics": "^3.2.0", + "jss": "10.0.0-alpha.16", + "jss-preset-default": "10.0.0-alpha.16", "prop-types": "^15.6.0", - "theming": "^1.3.0" - }, - "dependencies": { - "hoist-non-react-statics": { - "version": "2.5.5", - "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-2.5.5.tgz", - "integrity": "sha512-rqcy4pJo55FTTLWt+bU8ukscqHeE/e9KWvsOW2b/a3afxQZhwkQdT1rPPCJ0rYXdj4vNcasY8zHTH+jF/qStxw==" - } + "theming": "^3.0.3", + "tiny-warning": "^1.0.2" } }, "react-lifecycles-compat": { @@ -13171,14 +13281,13 @@ } }, "react-transition-group": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-2.9.0.tgz", - "integrity": "sha512-+HzNTCHpeQyl4MJ/bdE0u6XRMe9+XG/+aL4mCxVN4DnPBQ0/5bfHWPDuOZUzYdMj94daZaZdCCc1Dzt9R/xSSg==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.0.1.tgz", + "integrity": "sha512-SsLcBYhO4afXJC9esL8XMxi/y0ZvEc7To0TvtrBELqzpjXQHPZOTxvuPh2/4EhYc0uSMfp2SExIxsyJ0pBdNzg==", "requires": { "dom-helpers": "^3.4.0", "loose-envify": "^1.4.0", - "prop-types": "^15.6.2", - "react-lifecycles-compat": "^3.0.4" + "prop-types": "^15.6.2" } }, "read-pkg": { @@ -13514,26 +13623,6 @@ "util.promisify": "^1.0.0" } }, - "recompose": { - "version": "0.30.0", - "resolved": "https://registry.npmjs.org/recompose/-/recompose-0.30.0.tgz", - "integrity": "sha512-ZTrzzUDa9AqUIhRk4KmVFihH0rapdCSMFXjhHbNrjAWxBuUD/guYlyysMnuHjlZC/KRiOKRtB4jf96yYSkKE8w==", - "requires": { - "@babel/runtime": "^7.0.0", - "change-emitter": "^0.1.2", - "fbjs": "^0.8.1", - "hoist-non-react-statics": "^2.3.1", - "react-lifecycles-compat": "^3.0.2", - "symbol-observable": "^1.0.4" - }, - "dependencies": { - "hoist-non-react-statics": { - "version": "2.5.5", - "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-2.5.5.tgz", - "integrity": "sha512-rqcy4pJo55FTTLWt+bU8ukscqHeE/e9KWvsOW2b/a3afxQZhwkQdT1rPPCJ0rYXdj4vNcasY8zHTH+jF/qStxw==" - } - } - }, "recursive-readdir": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.2.tgz", @@ -15184,14 +15273,14 @@ "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=" }, "theming": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/theming/-/theming-1.3.0.tgz", - "integrity": "sha512-ya5Ef7XDGbTPBv5ENTwrwkPUexrlPeiAg/EI9kdlUAZhNlRbCdhMKRgjNX1IcmsmiPcqDQZE6BpSaH+cr31FKw==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/theming/-/theming-3.2.0.tgz", + "integrity": "sha512-n0fSNYXkX63rcFBBeAthy14IcgPZLHp0OGkGZheaj64j7cBoP7INLd6+7HIXqWVjFn1M5cYSiZ1nszi+jo/Szg==", "requires": { - "brcast": "^3.0.1", - "is-function": "^1.0.1", - "is-plain-object": "^2.0.1", - "prop-types": "^15.5.8" + "hoist-non-react-statics": "^3.3.0", + "prop-types": "^15.5.8", + "react-display-name": "^0.2.4", + "tiny-warning": "^1.0.2" } }, "throat": { diff --git a/interface/package.json b/interface/package.json index 7806e30..bd55442 100644 --- a/interface/package.json +++ b/interface/package.json @@ -3,8 +3,8 @@ "version": "0.1.0", "private": true, "dependencies": { - "@material-ui/core": "^3.9.3", - "@material-ui/icons": "^3.0.2", + "@material-ui/core": "^4.0.0", + "@material-ui/icons": "^4.0.0", "compression-webpack-plugin": "^2.0.0", "jwt-decode": "^2.2.0", "moment": "^2.24.0", @@ -12,7 +12,7 @@ "react": "^16.8.6", "react-dom": "^16.8.6", "react-form-validator-core": "^0.6.2", - "react-jss": "^8.6.1", + "react-jss": "^10.0.0-alpha.16", "react-material-ui-form-validator": "^2.0.7", "react-router": "^5.0.0", "react-router-dom": "^5.0.0", diff --git a/interface/src/App.js b/interface/src/App.js index 25be835..1f5a7e2 100644 --- a/interface/src/App.js +++ b/interface/src/App.js @@ -10,14 +10,12 @@ import orange from '@material-ui/core/colors/orange'; import red from '@material-ui/core/colors/red'; import green from '@material-ui/core/colors/green'; -import JssProvider from 'react-jss/lib/JssProvider'; import { create } from 'jss'; +import { StylesProvider, jssPreset } from '@material-ui/styles'; import { MuiThemeProvider, - createMuiTheme, - createGenerateClassName, - jssPreset, + createMuiTheme } from '@material-ui/core/styles'; // Our theme @@ -35,20 +33,17 @@ const theme = createMuiTheme({ // JSS instance const jss = create(jssPreset()); -// Class name generator. -const generateClassName = createGenerateClassName(); - class App extends Component { render() { return ( - + - + ) } } diff --git a/interface/src/AppRouting.js b/interface/src/AppRouting.js index 8a90d68..cda03d2 100644 --- a/interface/src/AppRouting.js +++ b/interface/src/AppRouting.js @@ -14,7 +14,7 @@ import NTPConfiguration from './containers/NTPConfiguration'; import OTAConfiguration from './containers/OTAConfiguration'; import APConfiguration from './containers/APConfiguration'; import SignInPage from './containers/SignInPage'; -import UserConfiguration from './containers/UserConfiguration'; +import Security from './containers/Security'; class AppRouting extends Component { @@ -31,7 +31,7 @@ class AppRouting extends Component { - + diff --git a/interface/src/components/MenuAppBar.js b/interface/src/components/MenuAppBar.js index 4dd461e..1357279 100644 --- a/interface/src/components/MenuAppBar.js +++ b/interface/src/components/MenuAppBar.js @@ -22,7 +22,7 @@ import SystemUpdateIcon from '@material-ui/icons/SystemUpdate'; import AccessTimeIcon from '@material-ui/icons/AccessTime'; import AccountCircleIcon from '@material-ui/icons/AccountCircle'; import SettingsInputAntennaIcon from '@material-ui/icons/SettingsInputAntenna'; -import PeopleIcon from '@material-ui/icons/People'; +import LockIcon from '@material-ui/icons/Lock'; import { APP_NAME } from '../constants/App'; import { withAuthenticationContext } from '../authentication/Context.js'; @@ -112,31 +112,31 @@ class MenuAppBar extends React.Component { - + - + - + - + - + - + - + diff --git a/interface/src/components/SectionContent.js b/interface/src/components/SectionContent.js index 18bdf96..0881112 100644 --- a/interface/src/components/SectionContent.js +++ b/interface/src/components/SectionContent.js @@ -16,7 +16,7 @@ function SectionContent(props) { const { children, classes, title } = props; return ( - + {title} {children} diff --git a/interface/src/containers/APStatus.js b/interface/src/containers/APStatus.js index fd935bc..41d9abe 100644 --- a/interface/src/containers/APStatus.js +++ b/interface/src/containers/APStatus.js @@ -7,17 +7,18 @@ import Typography from '@material-ui/core/Typography'; import List from '@material-ui/core/List'; import ListItem from '@material-ui/core/ListItem'; import ListItemText from '@material-ui/core/ListItemText'; +import ListItemAvatar from '@material-ui/core/ListItemAvatar'; import Avatar from '@material-ui/core/Avatar'; import Divider from '@material-ui/core/Divider'; import SettingsInputAntennaIcon from '@material-ui/icons/SettingsInputAntenna'; import DeviceHubIcon from '@material-ui/icons/DeviceHub'; import ComputerIcon from '@material-ui/icons/Computer'; -import {restComponent} from '../components/RestComponent'; +import { restComponent } from '../components/RestComponent'; import SectionContent from '../components/SectionContent' import * as Highlight from '../constants/Highlight'; -import { AP_STATUS_ENDPOINT } from '../constants/Endpoints'; +import { AP_STATUS_ENDPOINT } from '../constants/Endpoints'; const styles = theme => ({ ["apStatus_" + Highlight.SUCCESS]: { @@ -42,40 +43,48 @@ class APStatus extends Component { this.props.loadData(); } - apStatusHighlight(data){ + apStatusHighlight(data) { return data.active ? Highlight.SUCCESS : Highlight.IDLE; } - apStatus(data){ + apStatus(data) { return data.active ? "Active" : "Inactive"; } - createListItems(data, classes){ + createListItems(data, classes) { return ( - - - + + + + + - IP + + IP + - - - + + + + + - - - + + + + + @@ -83,8 +92,8 @@ class APStatus extends Component { ); } - renderAPStatus(data, classes){ - return ( + renderAPStatus(data, classes) { + return (
@@ -99,30 +108,30 @@ class APStatus extends Component { } render() { - const { data, fetched, errorMessage, classes } = this.props; + const { data, fetched, errorMessage, classes } = this.props; return ( { - !fetched ? -
- - - Loading... + !fetched ? +
+ + + Loading... -
- : - data ? this.renderAPStatus(data, classes) - : -
- - {errorMessage} - -
+ : + data ? this.renderAPStatus(data, classes) + : +
+ + {errorMessage} + + -
- } +
+ }
) } diff --git a/interface/src/containers/ManageUsers.js b/interface/src/containers/ManageUsers.js index d2f17a3..1a69f1f 100644 --- a/interface/src/containers/ManageUsers.js +++ b/interface/src/containers/ManageUsers.js @@ -1,30 +1,27 @@ import React, { Component } from 'react'; -import { USERS_ENDPOINT } from '../constants/Endpoints'; -import {restComponent} from '../components/RestComponent'; -import SectionContent from '../components/SectionContent'; +import { USERS_ENDPOINT } from '../constants/Endpoints'; +import { restComponent } from '../components/RestComponent'; import ManageUsersForm from '../forms/ManageUsersForm'; class ManageUsers extends Component { componentDidMount() { - this.props.loadData(); + this.props.loadData(); } render() { const { data, fetched, errorMessage } = this.props; return ( - - - + ) } diff --git a/interface/src/containers/NTPStatus.js b/interface/src/containers/NTPStatus.js index 6117c64..0ddee74 100644 --- a/interface/src/containers/NTPStatus.js +++ b/interface/src/containers/NTPStatus.js @@ -6,6 +6,7 @@ import LinearProgress from '@material-ui/core/LinearProgress'; import Typography from '@material-ui/core/Typography'; import List from '@material-ui/core/List'; import ListItem from '@material-ui/core/ListItem'; +import ListItemAvatar from '@material-ui/core/ListItemAvatar'; import ListItemText from '@material-ui/core/ListItemText'; import Avatar from '@material-ui/core/Avatar'; import Divider from '@material-ui/core/Divider'; @@ -16,10 +17,10 @@ import TimerIcon from '@material-ui/icons/Timer'; import UpdateIcon from '@material-ui/icons/Update'; import AvTimerIcon from '@material-ui/icons/AvTimer'; -import { isSynchronized, ntpStatusHighlight, ntpStatus } from '../constants/NTPStatus'; +import { isSynchronized, ntpStatusHighlight, ntpStatus } from '../constants/NTPStatus'; import * as Highlight from '../constants/Highlight'; import { unixTimeToTimeAndDate } from '../constants/TimeFormat'; -import { NTP_STATUS_ENDPOINT } from '../constants/Endpoints'; +import { NTP_STATUS_ENDPOINT } from '../constants/Endpoints'; import { restComponent } from '../components/RestComponent'; import SectionContent from '../components/SectionContent'; @@ -51,52 +52,61 @@ class NTPStatus extends Component { this.props.loadData(); } - createListItems(data, classes){ + createListItems(data, classes) { return ( - - - - + + + + + + - { isSynchronized(data) && + {isSynchronized(data) && - - - + + + + + - - - - 0 ? unixTimeToTimeAndDate(data.last_sync) : "never" } /> + + + + + 0 ? unixTimeToTimeAndDate(data.last_sync) : "never"} /> } - - - + + + + + - - - + + + + - - - + + + + @@ -104,8 +114,8 @@ class NTPStatus extends Component { ); } - renderNTPStatus(data, classes){ - return ( + renderNTPStatus(data, classes) { + return (
{this.createListItems(data, classes)} @@ -118,30 +128,30 @@ class NTPStatus extends Component { } render() { - const { data, fetched, errorMessage, classes } = this.props; + const { data, fetched, errorMessage, classes } = this.props; return ( { - !fetched ? -
- - - Loading... + !fetched ? +
+ + + Loading... -
- : - data ? this.renderNTPStatus(data, classes) - : -
- - {errorMessage} - -
+ : + data ? this.renderNTPStatus(data, classes) + : +
+ + {errorMessage} + + -
- } +
+ }
) } diff --git a/interface/src/containers/UserConfiguration.js b/interface/src/containers/Security.js similarity index 62% rename from interface/src/containers/UserConfiguration.js rename to interface/src/containers/Security.js index 4a5b576..0eaf6d6 100644 --- a/interface/src/containers/UserConfiguration.js +++ b/interface/src/containers/Security.js @@ -2,14 +2,14 @@ import React, { Component } from 'react'; import MenuAppBar from '../components/MenuAppBar'; import ManageUsers from './ManageUsers'; -class UserConfiguration extends Component { +class Security extends Component { render() { return ( - + ) } } -export default UserConfiguration +export default Security diff --git a/interface/src/containers/WiFiStatus.js b/interface/src/containers/WiFiStatus.js index c779898..9cdac05 100644 --- a/interface/src/containers/WiFiStatus.js +++ b/interface/src/containers/WiFiStatus.js @@ -8,6 +8,7 @@ import Typography from '@material-ui/core/Typography'; import List from '@material-ui/core/List'; import ListItem from '@material-ui/core/ListItem'; import ListItemText from '@material-ui/core/ListItemText'; +import ListItemAvatar from '@material-ui/core/ListItemAvatar'; import Avatar from '@material-ui/core/Avatar'; import Divider from '@material-ui/core/Divider'; @@ -63,9 +64,11 @@ class WiFiStatus extends Component { return ( - - - + + + + + @@ -73,40 +76,52 @@ class WiFiStatus extends Component { isConnected(data) && - - - + + + + + - IP + + IP + - - - + + + + + - # + + # + - - - + + + + + - - - + + + + + diff --git a/interface/src/forms/ManageUsersForm.js b/interface/src/forms/ManageUsersForm.js index 1d9163f..e86cd4a 100644 --- a/interface/src/forms/ManageUsersForm.js +++ b/interface/src/forms/ManageUsersForm.js @@ -1,23 +1,26 @@ import React from 'react'; import PropTypes from 'prop-types'; -import { ValidatorForm } from 'react-material-ui-form-validator'; +import { TextValidator, ValidatorForm } from 'react-material-ui-form-validator'; import { withStyles } from '@material-ui/core/styles'; import Button from '@material-ui/core/Button'; import LinearProgress from '@material-ui/core/LinearProgress'; import Typography from '@material-ui/core/Typography'; - import Table from '@material-ui/core/Table'; import TableBody from '@material-ui/core/TableBody'; import TableCell from '@material-ui/core/TableCell'; +import TableFooter from '@material-ui/core/TableFooter'; import TableHead from '@material-ui/core/TableHead'; import TableRow from '@material-ui/core/TableRow'; -import IconButton from '@material-ui/core/IconButton'; +import Chip from '@material-ui/core/Chip'; import EditIcon from '@material-ui/icons/Edit'; import DeleteIcon from '@material-ui/icons/Delete'; -import Chip from '@material-ui/core/Chip'; +import IconButton from '@material-ui/core/IconButton'; + +import SectionContent from '../components/SectionContent'; +import UserForm from './UserForm'; const styles = theme => ({ loadingSettings: { @@ -43,95 +46,198 @@ const styles = theme => ({ margin: theme.spacing.unit, }, table: { - '& td, & th': {padding: theme.spacing.unit} - } + '& td, & th': { padding: theme.spacing.unit } + }, + actions: { + color: theme.palette.text.secondary, + } }); +function compareUsers(a, b) { + if (a.username < b.username) { + return -1; + } + if (a.username > b.username) { + return 1; + } + return 0; +} + class ManageUsersForm extends React.Component { - render() { - const { classes, users, usersFetched, errorMessage, onSubmit, onReset } = this.props; - return ( -
- { - !usersFetched ? + constructor(props) { + super(props); + this.state = {}; + } + createUser = () => { + this.setState({ + creating: true, + user: { + username: "", + password: "", + roles: [] + } + }); + }; + + uniqueUsername = username => { + return !this.props.userData.users.find(u => u.username === username); + } + + usersValid = username => { + return !!this.props.userData.users.find(u => u.roles.includes("admin")); + } + + startEditingUser = user => { + this.setState({ + creating: false, + user + }); + }; + + cancelEditingUser = () => { + this.setState({ + user: undefined + }); + } + + sortedUsers(users) { + return users.sort(compareUsers); + } + + doneEditingUser = () => { + const { user } = this.state; + const { userData } = this.props; + let { users } = userData; + users = users.filter(u => u.username !== user.username); + users.push(user); + this.props.setData({ ...userData, users }); + this.setState({ + user: undefined + }); + }; + + handleUserValueChange = name => event => { + const { user } = this.state; + if (user) { + this.setState({ + user: { + ...user, [name]: event.target.value + } + }); + } + }; + + render() { + const { classes, userData, userDataFetched, errorMessage, onSubmit, onReset, handleValueChange } = this.props; + const { user, creating } = this.state; + return ( + + { + !userDataFetched ?
Loading...
- - : users ? - - - - - - Username - Password - Role(s) - Action - - - - {users.users.map(user => ( - - - {user.username} - - {user.password} - - + : + userData ? + user ? + + : + +
+ + + Username + Role(s) + Action + + + + {this.sortedUsers(userData.users).map(user => ( + + + {user.username} + + + { + user.roles.map(role => ( + + )) + } + + + + + + this.startEditingUser(user)}> + + + + + ))} + + + + + { + !this.usersValid() && + + You must have at least one admin user configured. + + } - - - - - - + - ))} - -
- - - - -
- + + + + + : - -
+ {errorMessage} -
+ +
} -
+ ); } + } ManageUsersForm.propTypes = { classes: PropTypes.object.isRequired, - users: PropTypes.object, - usersFetched: PropTypes.bool.isRequired, + userData: PropTypes.object, + userDataFetched: PropTypes.bool.isRequired, errorMessage: PropTypes.string, onSubmit: PropTypes.func.isRequired, onReset: PropTypes.func.isRequired, - handleValueChange: PropTypes.func.isRequired, - handleCheckboxChange: PropTypes.func.isRequired, + setData: PropTypes.func.isRequired, + handleValueChange: PropTypes.func.isRequired }; export default withStyles(styles)(ManageUsersForm); diff --git a/interface/src/forms/UserForm.js b/interface/src/forms/UserForm.js new file mode 100644 index 0000000..99785a7 --- /dev/null +++ b/interface/src/forms/UserForm.js @@ -0,0 +1,112 @@ +import React from 'react'; +import PropTypes from 'prop-types'; + +import { withStyles } from '@material-ui/core/styles'; +import Button from '@material-ui/core/Button'; + +import { TextValidator, ValidatorForm } from 'react-material-ui-form-validator'; +import PasswordValidator from '../components/PasswordValidator'; + +import Input from '@material-ui/core/Input'; +import InputLabel from '@material-ui/core/InputLabel'; +import MenuItem from '@material-ui/core/MenuItem'; +import FormControl from '@material-ui/core/FormControl'; +import Select from '@material-ui/core/Select'; +import Chip from '@material-ui/core/Chip'; + +const styles = theme => ({ + textField: { + width: "100%" + }, + checkboxControl: { + width: "100%" + }, + chips: { + display: 'flex', + flexWrap: 'wrap', + }, + chip: { + marginRight: theme.spacing.unit, + }, + button: { + marginRight: theme.spacing.unit * 2, + marginTop: theme.spacing.unit * 2, + } +}); + +class UserForm extends React.Component { + + componentWillMount() { + ValidatorForm.addValidationRule('uniqueUsername', this.props.uniqueUsername); + } + + render() { + const { classes, user, roles, creating, handleValueChange, onDoneEditing, onCancelEditing } = this.props; + return ( + + + + + Roles + + + + + + ); + } +} + +UserForm.propTypes = { + classes: PropTypes.object.isRequired, + user: PropTypes.object.isRequired, + creating: PropTypes.bool.isRequired, + roles: PropTypes.array.isRequired, + onDoneEditing: PropTypes.func.isRequired, + onCancelEditing: PropTypes.func.isRequired, + uniqueUsername: PropTypes.func.isRequired, + handleValueChange: PropTypes.func.isRequired +}; + +export default withStyles(styles)(UserForm); diff --git a/platformio.ini b/platformio.ini index 7a152e2..37d9480 100644 --- a/platformio.ini +++ b/platformio.ini @@ -7,10 +7,9 @@ ; ; Please visit documentation for the other options and examples ; http://docs.platformio.org/page/projectconf.html -[env:esp12e] -platform = espressif8266 -board = esp12e -board_build.f_cpu = 160000000L +[env:node32s] +platform = espressif32 +board = node32s framework = arduino ;upload_flags = --port=8266 --auth=esp-react diff --git a/src/SecurityManager.cpp b/src/SecurityManager.cpp index 7d6b854..52a2c3a 100644 --- a/src/SecurityManager.cpp +++ b/src/SecurityManager.cpp @@ -1,9 +1,6 @@ #include -SecurityManager::SecurityManager(AsyncWebServer* server, FS* fs) : SettingsPersistence(fs, SECURITY_SETTINGS_FILE) { - server->on(USERS_PATH, HTTP_GET, std::bind(&SecurityManager::fetchUsers, this, std::placeholders::_1)); -} - +SecurityManager::SecurityManager(AsyncWebServer* server, FS* fs) : SettingsService(server, fs, USERS_PATH, SECURITY_SETTINGS_FILE) {} SecurityManager::~SecurityManager() {} void SecurityManager::readFromJsonObject(JsonObject& root) { @@ -22,16 +19,19 @@ void SecurityManager::readFromJsonObject(JsonObject& root) { // users _users.clear(); if (root["users"].is()) { - JsonArray users = root["users"]; - for (JsonVariant user : users) { - String username = user["username"]; - String password = user["password"]; - String role = user["role"]; - _users.push_back(User(username, password, role)); + for (JsonVariant user : root["users"].as()) { + std::list roles; + if (user["roles"].is()) { + for (JsonVariant role : user["roles"].as()) { + roles.push_back(role.as()); + } + } + _users.push_back(User(user["username"], user["password"], roles)); } } } + void SecurityManager::writeToJsonObject(JsonObject& root) { // secret root["jwt_secret"] = _jwtSecret; @@ -48,18 +48,13 @@ void SecurityManager::writeToJsonObject(JsonObject& root) { JsonObject user = users.createNestedObject(); user["username"] = _user.getUsername(); user["password"] = _user.getPassword(); - user["role"] = _user.getRole(); + JsonArray roles = user.createNestedArray("roles"); + for (String _role : _user.getRoles()){ + roles.add(_role); + } } } -void SecurityManager::fetchUsers(AsyncWebServerRequest *request) { - AsyncJsonResponse * response = new AsyncJsonResponse(MAX_USERS_SIZE); - JsonObject jsonObject = response->getRoot(); - writeToJsonObject(jsonObject); - response->setLength(); - request->send(response); -} - void SecurityManager::begin() { // read config readFromFS(); @@ -105,7 +100,10 @@ Authentication SecurityManager::authenticate(String username, String password) { inline void populateJWTPayload(JsonObject &payload, User *user) { payload["username"] = user->getUsername(); - payload["role"] = user->getRole(); + JsonArray roles = payload.createNestedArray("roles"); + for (String _role : user->getRoles()){ + roles.add(_role); + } } boolean SecurityManager::validatePayload(JsonObject &parsedPayload, User *user) { diff --git a/src/SecurityManager.h b/src/SecurityManager.h index 853571e..f12ac0a 100644 --- a/src/SecurityManager.h +++ b/src/SecurityManager.h @@ -28,17 +28,17 @@ class User { private: String _username; String _password; - String _role; + std::list _roles; public: - User(String username, String password, String role): _username(username), _password(password), _role(role) {} + User(String username, String password, std::list roles): _username(username), _password(password), _roles(roles) {} String getUsername() { return _username; } String getPassword() { return _password; } - String getRole() { - return _role; + std::list getRoles() { + return _roles; } }; @@ -62,7 +62,7 @@ class Authentication { } }; -class SecurityManager : public SettingsPersistence { +class SecurityManager : public SettingsService { public: From 6935b63706250a6eec911612d5fc426b339b225d Mon Sep 17 00:00:00 2001 From: Rick Watson Date: Sat, 25 May 2019 09:45:49 +0100 Subject: [PATCH 21/62] remove roles, as a simplification --- data/config/securitySettings.json | 5 +- interface/src/forms/ManageUsersForm.js | 76 +++++++++++++------------- interface/src/forms/UserForm.js | 45 +++++---------- src/SecurityManager.cpp | 33 +---------- src/SecurityManager.h | 9 ++- 5 files changed, 59 insertions(+), 109 deletions(-) diff --git a/data/config/securitySettings.json b/data/config/securitySettings.json index 4d169f0..ce6cb6a 100644 --- a/data/config/securitySettings.json +++ b/data/config/securitySettings.json @@ -1,16 +1,15 @@ { "jwt_secret":"esp8266-react", - "roles": ["admin", "guest"], "users": [ { "username": "admin", "password": "admin", - "role": "admin" + "admin": true }, { "username": "guest", "password": "guest", - "role": "guest" + "admin": false } ] } \ No newline at end of file diff --git a/interface/src/forms/ManageUsersForm.js b/interface/src/forms/ManageUsersForm.js index e86cd4a..21c2d5d 100644 --- a/interface/src/forms/ManageUsersForm.js +++ b/interface/src/forms/ManageUsersForm.js @@ -1,7 +1,7 @@ import React from 'react'; import PropTypes from 'prop-types'; -import { TextValidator, ValidatorForm } from 'react-material-ui-form-validator'; +import { ValidatorForm } from 'react-material-ui-form-validator'; import { withStyles } from '@material-ui/core/styles'; import Button from '@material-ui/core/Button'; @@ -13,14 +13,16 @@ import TableCell from '@material-ui/core/TableCell'; import TableFooter from '@material-ui/core/TableFooter'; import TableHead from '@material-ui/core/TableHead'; import TableRow from '@material-ui/core/TableRow'; -import Chip from '@material-ui/core/Chip'; import EditIcon from '@material-ui/icons/Edit'; import DeleteIcon from '@material-ui/icons/Delete'; +import CloseIcon from '@material-ui/icons/Close'; +import CheckIcon from '@material-ui/icons/Check'; import IconButton from '@material-ui/core/IconButton'; import SectionContent from '../components/SectionContent'; import UserForm from './UserForm'; +import { withAuthenticationContext } from '../authentication/Context'; const styles = theme => ({ loadingSettings: { @@ -30,26 +32,15 @@ const styles = theme => ({ margin: theme.spacing.unit * 4, textAlign: "center" }, - switchControl: { - width: "100%", - marginTop: theme.spacing.unit * 2, - marginBottom: theme.spacing.unit - }, - textField: { - width: "100%" - }, button: { marginRight: theme.spacing.unit * 2, marginTop: theme.spacing.unit * 2, }, - chip: { - margin: theme.spacing.unit, - }, table: { '& td, & th': { padding: theme.spacing.unit } }, actions: { - color: theme.palette.text.secondary, + whiteSpace: "nowrap" } }); @@ -76,7 +67,7 @@ class ManageUsersForm extends React.Component { user: { username: "", password: "", - roles: [] + admin: true } }); }; @@ -85,8 +76,8 @@ class ManageUsersForm extends React.Component { return !this.props.userData.users.find(u => u.username === username); } - usersValid = username => { - return !!this.props.userData.users.find(u => u.roles.includes("admin")); + noAdminConfigured = () => { + return !this.props.userData.users.find(u => u.admin); } startEditingUser = user => { @@ -102,10 +93,6 @@ class ManageUsersForm extends React.Component { }); } - sortedUsers(users) { - return users.sort(compareUsers); - } - doneEditingUser = () => { const { user } = this.state; const { userData } = this.props; @@ -120,17 +107,29 @@ class ManageUsersForm extends React.Component { handleUserValueChange = name => event => { const { user } = this.state; - if (user) { - this.setState({ - user: { - ...user, [name]: event.target.value - } - }); - } + this.setState({ + user: { + ...user, [name]: event.target.value + } + }); }; + handleUserCheckboxChange = name => event => { + const { user } = this.state; + this.setState({ + user: { + ...user, [name]: event.target.checked + } + }); + } + + onSubmit = () => { + this.props.onSubmit(); + this.props.authenticationContex.refresh(); + } + render() { - const { classes, userData, userDataFetched, errorMessage, onSubmit, onReset, handleValueChange } = this.props; + const { classes, userData, userDataFetched, errorMessage, onReset } = this.props; const { user, creating } = this.state; return ( @@ -148,33 +147,31 @@ class ManageUsersForm extends React.Component { : - + Username - Role(s) + Admin? Action - {this.sortedUsers(userData.users).map(user => ( + {userData.users.sort(compareUsers).map(user => ( {user.username} { - user.roles.map(role => ( - - )) + user.admin ? : } @@ -192,7 +189,7 @@ class ManageUsersForm extends React.Component { { - !this.usersValid() && + this.noAdminConfigured() && You must have at least one admin user configured. @@ -206,7 +203,7 @@ class ManageUsersForm extends React.Component {
- @@ -102,11 +83,11 @@ UserForm.propTypes = { classes: PropTypes.object.isRequired, user: PropTypes.object.isRequired, creating: PropTypes.bool.isRequired, - roles: PropTypes.array.isRequired, onDoneEditing: PropTypes.func.isRequired, onCancelEditing: PropTypes.func.isRequired, uniqueUsername: PropTypes.func.isRequired, - handleValueChange: PropTypes.func.isRequired + handleValueChange: PropTypes.func.isRequired, + handleCheckboxChange: PropTypes.func.isRequired }; export default withStyles(styles)(UserForm); diff --git a/src/SecurityManager.cpp b/src/SecurityManager.cpp index 52a2c3a..fd5a549 100644 --- a/src/SecurityManager.cpp +++ b/src/SecurityManager.cpp @@ -7,26 +7,11 @@ void SecurityManager::readFromJsonObject(JsonObject& root) { // secret _jwtSecret = root["jwt_secret"] | DEFAULT_JWT_SECRET; - // roles - _roles.clear(); - if (root["roles"].is()) { - JsonArray roles = root["roles"]; - for (JsonVariant role : roles) { - _roles.push_back(role.as()); - } - } - // users _users.clear(); if (root["users"].is()) { for (JsonVariant user : root["users"].as()) { - std::list roles; - if (user["roles"].is()) { - for (JsonVariant role : user["roles"].as()) { - roles.push_back(role.as()); - } - } - _users.push_back(User(user["username"], user["password"], roles)); + _users.push_back(User(user["username"], user["password"], user["admin"])); } } } @@ -36,22 +21,13 @@ void SecurityManager::writeToJsonObject(JsonObject& root) { // secret root["jwt_secret"] = _jwtSecret; - // roles - JsonArray roles = root.createNestedArray("roles"); - for (String _role : _roles) { - roles.add(_role); - } - // users JsonArray users = root.createNestedArray("users"); for (User _user : _users) { JsonObject user = users.createNestedObject(); user["username"] = _user.getUsername(); user["password"] = _user.getPassword(); - JsonArray roles = user.createNestedArray("roles"); - for (String _role : _user.getRoles()){ - roles.add(_role); - } + user["admin"] = _user.isAdmin(); } } @@ -100,10 +76,7 @@ Authentication SecurityManager::authenticate(String username, String password) { inline void populateJWTPayload(JsonObject &payload, User *user) { payload["username"] = user->getUsername(); - JsonArray roles = payload.createNestedArray("roles"); - for (String _role : user->getRoles()){ - roles.add(_role); - } + payload["admin"] = user -> isAdmin(); } boolean SecurityManager::validatePayload(JsonObject &parsedPayload, User *user) { diff --git a/src/SecurityManager.h b/src/SecurityManager.h index f12ac0a..cfd7712 100644 --- a/src/SecurityManager.h +++ b/src/SecurityManager.h @@ -28,17 +28,17 @@ class User { private: String _username; String _password; - std::list _roles; + bool _admin; public: - User(String username, String password, std::list roles): _username(username), _password(password), _roles(roles) {} + User(String username, String password, bool admin): _username(username), _password(password), _admin(admin) {} String getUsername() { return _username; } String getPassword() { return _password; } - std::list getRoles() { - return _roles; + bool isAdmin() { + return _admin; } }; @@ -97,7 +97,6 @@ class SecurityManager : public SettingsService { // access point settings String _jwtSecret; - std::list _roles; std::list _users; // endpoint functions From 4fdc3eee6653475bb276664506c683f8c57114c7 Mon Sep 17 00:00:00 2001 From: Rick Watson Date: Sat, 25 May 2019 17:41:27 +0100 Subject: [PATCH 22/62] fix encoding where signature contains a zero --- interface/src/forms/ManageUsersForm.js | 65 +++++++++------ interface/src/forms/UserForm.js | 107 ++++++++++++++----------- src/ArduinoJsonJWT.cpp | 17 ++-- src/ArduinoJsonJWT.h | 2 +- src/SecurityManager.cpp | 7 +- 5 files changed, 110 insertions(+), 88 deletions(-) diff --git a/interface/src/forms/ManageUsersForm.js b/interface/src/forms/ManageUsersForm.js index 21c2d5d..996ed3a 100644 --- a/interface/src/forms/ManageUsersForm.js +++ b/interface/src/forms/ManageUsersForm.js @@ -1,4 +1,4 @@ -import React from 'react'; +import React, { Fragment } from 'react'; import PropTypes from 'prop-types'; import { ValidatorForm } from 'react-material-ui-form-validator'; @@ -13,6 +13,8 @@ import TableCell from '@material-ui/core/TableCell'; import TableFooter from '@material-ui/core/TableFooter'; import TableHead from '@material-ui/core/TableHead'; import TableRow from '@material-ui/core/TableRow'; +import Box from '@material-ui/core/Box'; + import EditIcon from '@material-ui/icons/Edit'; import DeleteIcon from '@material-ui/icons/Delete'; @@ -80,6 +82,12 @@ class ManageUsersForm extends React.Component { return !this.props.userData.users.find(u => u.admin); } + removeUser = user => { + const { userData } = this.props; + const users = userData.users.filter(u => u.username !== user.username); + this.props.setData({ ...userData, users }); + } + startEditingUser = user => { this.setState({ creating: false, @@ -96,8 +104,7 @@ class ManageUsersForm extends React.Component { doneEditingUser = () => { const { user } = this.state; const { userData } = this.props; - let { users } = userData; - users = users.filter(u => u.username !== user.username); + const users = userData.users.filter(u => u.username !== user.username); users.push(user); this.props.setData({ ...userData, users }); this.setState({ @@ -125,7 +132,7 @@ class ManageUsersForm extends React.Component { onSubmit = () => { this.props.onSubmit(); - this.props.authenticationContex.refresh(); + this.props.authenticationContext.refresh(); } render() { @@ -143,17 +150,7 @@ class ManageUsersForm extends React.Component {
: userData ? - user ? - - : + @@ -175,7 +172,7 @@ class ManageUsersForm extends React.Component { } - + this.removeUser(user)}> this.startEditingUser(user)}> @@ -187,22 +184,23 @@ class ManageUsersForm extends React.Component { - - { - this.noAdminConfigured() && - - You must have at least one admin user configured. - - } - + +
+ { + this.noAdminConfigured() && + + + You must have at least one admin user configured. + + + } @@ -210,6 +208,21 @@ class ManageUsersForm extends React.Component { Reset
+ { + user && + + + + } +
: @@ -227,7 +240,7 @@ class ManageUsersForm extends React.Component { } ManageUsersForm.propTypes = { - authenticationContex: PropTypes.object.isRequired, + authenticationContex: PropTypes.object.isRequired, classes: PropTypes.object.isRequired, userData: PropTypes.object, userDataFetched: PropTypes.bool.isRequired, diff --git a/interface/src/forms/UserForm.js b/interface/src/forms/UserForm.js index 45ce0fc..cca9370 100644 --- a/interface/src/forms/UserForm.js +++ b/interface/src/forms/UserForm.js @@ -1,79 +1,88 @@ import React from 'react'; import PropTypes from 'prop-types'; +import { TextValidator, ValidatorForm } from 'react-material-ui-form-validator'; import { withStyles } from '@material-ui/core/styles'; import Button from '@material-ui/core/Button'; -import { TextValidator, ValidatorForm } from 'react-material-ui-form-validator'; -import PasswordValidator from '../components/PasswordValidator'; - import FormControlLabel from '@material-ui/core/FormControlLabel'; import Switch from '@material-ui/core/Switch'; import FormGroup from '@material-ui/core/FormGroup'; +import DialogTitle from '@material-ui/core/DialogTitle'; +import Dialog from '@material-ui/core/Dialog'; +import DialogContent from '@material-ui/core/DialogContent'; +import DialogActions from '@material-ui/core/DialogActions'; + +import PasswordValidator from '../components/PasswordValidator'; const styles = theme => ({ textField: { width: "100%" }, - checkboxControl: { - width: "100%" - }, - chips: { - display: 'flex', - flexWrap: 'wrap', - }, - chip: { - marginRight: theme.spacing.unit, - }, button: { - marginRight: theme.spacing.unit * 2, - marginTop: theme.spacing.unit * 2, + margin: theme.spacing.unit } }); class UserForm extends React.Component { + constructor(props) { + super(props); + this.formRef = React.createRef(); + } + componentWillMount() { ValidatorForm.addValidationRule('uniqueUsername', this.props.uniqueUsername); } + submit = () => { + this.formRef.current.submit(); + } + render() { const { classes, user, creating, handleValueChange, handleCheckboxChange, onDoneEditing, onCancelEditing } = this.props; return ( - - - - - } - label="Admin?" - /> - - - + + + Modify User + + + + + } + label="Admin?" + /> + + + + + + + ); } diff --git a/src/ArduinoJsonJWT.cpp b/src/ArduinoJsonJWT.cpp index b99a949..fddfc03 100644 --- a/src/ArduinoJsonJWT.cpp +++ b/src/ArduinoJsonJWT.cpp @@ -14,7 +14,7 @@ void ArduinoJsonJWT::setSecret(String secret){ * No need to pull in additional crypto libraries - lets use what we already have. */ String ArduinoJsonJWT::sign(String &payload) { - unsigned char hmacResult[33]; + unsigned char hmacResult[32]; { #if defined(ESP_PLATFORM) mbedtls_md_context_t ctx; @@ -34,15 +34,14 @@ String ArduinoJsonJWT::sign(String &payload) { br_hmac_out(&hmacCtx, hmacResult); #endif } - hmacResult[32] = 0; - return encode(String((char *) hmacResult)); + return encode((char *) hmacResult, 32); } String ArduinoJsonJWT::buildJWT(JsonObject &payload) { // serialize, then encode payload String jwt; serializeJson(payload, jwt); - jwt = encode(jwt); + jwt = encode(jwt.c_str(), jwt.length()); // add the header to payload jwt = JWT_HEADER + '.' + jwt; @@ -89,27 +88,27 @@ void ArduinoJsonJWT::parseJWT(String jwt, JsonDocument &jsonDocument) { } } -String ArduinoJsonJWT::encode(String value) { +String ArduinoJsonJWT::encode(const char *cstr, int inputLen) { // prepare encoder base64_encodestate _state; #if defined(ESP8266) base64_init_encodestate_nonewlines(&_state); - size_t encodedLength = base64_encode_expected_len_nonewlines(value.length()) + 1; + size_t encodedLength = base64_encode_expected_len_nonewlines(inputLen) + 1; #elif defined(ESP_PLATFORM) base64_init_encodestate(&_state); - size_t encodedLength = base64_encode_expected_len(value.length()) + 1; + size_t encodedLength = base64_encode_expected_len(inputLen) + 1; #endif // prepare buffer of correct length char buffer[encodedLength]; // encode to buffer - int len = base64_encode_block(value.c_str(), value.length(), &buffer[0], &_state); + int len = base64_encode_block(cstr, inputLen, &buffer[0], &_state); len += base64_encode_blockend(&buffer[len], &_state); buffer[len] = 0; // convert to arduino string - value = String(buffer); + String value = String(buffer); // remove padding and convert to URL safe form while (value.charAt(value.length() - 1) == '='){ diff --git a/src/ArduinoJsonJWT.h b/src/ArduinoJsonJWT.h index 672c9fc..829041b 100644 --- a/src/ArduinoJsonJWT.h +++ b/src/ArduinoJsonJWT.h @@ -24,7 +24,7 @@ private: String sign(String &value); - static String encode(String value); + static String encode(const char *cstr, int len); static String decode(String value); public: diff --git a/src/SecurityManager.cpp b/src/SecurityManager.cpp index fd5a549..c36d013 100644 --- a/src/SecurityManager.cpp +++ b/src/SecurityManager.cpp @@ -43,9 +43,10 @@ Authentication SecurityManager::authenticateRequest(AsyncWebServerRequest *reque AsyncWebHeader* authorizationHeader = request->getHeader(AUTHORIZATION_HEADER); if (authorizationHeader) { String value = authorizationHeader->value(); - value.startsWith(AUTHORIZATION_HEADER_PREFIX); - value = value.substring(AUTHORIZATION_HEADER_PREFIX_LEN); - return authenticateJWT(value); + if (value.startsWith(AUTHORIZATION_HEADER_PREFIX)){ + value = value.substring(AUTHORIZATION_HEADER_PREFIX_LEN); + return authenticateJWT(value); + } } return Authentication(); } From ab03ddaf4d408f47f378f389ba30c12258d7bc96 Mon Sep 17 00:00:00 2001 From: Rick Watson Date: Sat, 25 May 2019 18:01:50 +0100 Subject: [PATCH 23/62] little tidyups --- interface/src/forms/ManageUsersForm.js | 3 +-- interface/src/forms/UserForm.js | 4 ++-- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/interface/src/forms/ManageUsersForm.js b/interface/src/forms/ManageUsersForm.js index 996ed3a..6ab3f40 100644 --- a/interface/src/forms/ManageUsersForm.js +++ b/interface/src/forms/ManageUsersForm.js @@ -15,7 +15,6 @@ import TableHead from '@material-ui/core/TableHead'; import TableRow from '@material-ui/core/TableRow'; import Box from '@material-ui/core/Box'; - import EditIcon from '@material-ui/icons/Edit'; import DeleteIcon from '@material-ui/icons/Delete'; import CloseIcon from '@material-ui/icons/Close'; @@ -157,7 +156,7 @@ class ManageUsersForm extends React.Component { Username Admin? - Action + diff --git a/interface/src/forms/UserForm.js b/interface/src/forms/UserForm.js index cca9370..1d660db 100644 --- a/interface/src/forms/UserForm.js +++ b/interface/src/forms/UserForm.js @@ -43,8 +43,8 @@ class UserForm extends React.Component { const { classes, user, creating, handleValueChange, handleCheckboxChange, onDoneEditing, onCancelEditing } = this.props; return ( - - Modify User + + {creating ? 'Create' : 'Modify'} User Date: Sun, 26 May 2019 16:19:16 +0100 Subject: [PATCH 24/62] Add user icon to app bar --- interface/src/components/MenuAppBar.js | 172 +++++++++++++++---------- interface/src/forms/ManageUsersForm.js | 2 +- interface/src/forms/UserForm.js | 2 +- 3 files changed, 104 insertions(+), 72 deletions(-) diff --git a/interface/src/components/MenuAppBar.js b/interface/src/components/MenuAppBar.js index 1357279..625ad58 100644 --- a/interface/src/components/MenuAppBar.js +++ b/interface/src/components/MenuAppBar.js @@ -1,6 +1,6 @@ import React from 'react'; import PropTypes from 'prop-types'; -import { Link } from 'react-router-dom'; +import { Link } from 'react-router-dom'; import { withStyles } from '@material-ui/core/styles'; import Drawer from '@material-ui/core/Drawer'; @@ -10,20 +10,28 @@ import Typography from '@material-ui/core/Typography'; import IconButton from '@material-ui/core/IconButton'; import Hidden from '@material-ui/core/Hidden'; import Divider from '@material-ui/core/Divider'; +import Grow from '@material-ui/core/Grow'; +import MenuItem from '@material-ui/core/MenuItem'; +import MenuList from '@material-ui/core/MenuList'; import List from '@material-ui/core/List'; import ListItem from '@material-ui/core/ListItem'; import ListItemIcon from '@material-ui/core/ListItemIcon'; import ListItemText from '@material-ui/core/ListItemText'; +import Popper from '@material-ui/core/Popper'; import MenuIcon from '@material-ui/icons/Menu'; import WifiIcon from '@material-ui/icons/Wifi'; -import SystemUpdateIcon from '@material-ui/icons/SystemUpdate'; +import SystemUpdateIcon from '@material-ui/icons/SystemUpdate'; import AccessTimeIcon from '@material-ui/icons/AccessTime'; import AccountCircleIcon from '@material-ui/icons/AccountCircle'; import SettingsInputAntennaIcon from '@material-ui/icons/SettingsInputAntenna'; import LockIcon from '@material-ui/icons/Lock'; +import ClickAwayListener from '@material-ui/core/ClickAwayListener'; + +import Paper from '@material-ui/core/Paper'; + import { APP_NAME } from '../constants/App'; import { withAuthenticationContext } from '../authentication/Context.js'; @@ -31,79 +39,76 @@ const drawerWidth = 290; const styles = theme => ({ root: { - zIndex: 1, - width: '100%', - height: '100%', - }, - toolbar: { - paddingLeft: theme.spacing.unit, - paddingRight: theme.spacing.unit, - [theme.breakpoints.up('md')]: { - paddingLeft: theme.spacing.unit * 3, - paddingRight: theme.spacing.unit * 3, - } - }, - appFrame: { - position: 'relative', display: 'flex', - width: '100%', - height: '100%', + }, + drawer: { + [theme.breakpoints.up('md')]: { + width: drawerWidth, + flexShrink: 0, + }, + }, + title: { + flexGrow: 1 }, appBar: { - position: 'absolute', marginLeft: drawerWidth, [theme.breakpoints.up('md')]: { width: `calc(100% - ${drawerWidth}px)`, }, }, - navIconHide: { + menuButton: { + marginRight: theme.spacing(2), [theme.breakpoints.up('md')]: { display: 'none', }, }, + toolbar: theme.mixins.toolbar, drawerPaper: { width: drawerWidth, - height: '100%', - [theme.breakpoints.up('md')]: { - width: drawerWidth, - position:'fixed', - left:0, - top:0, - overflow:'auto' - }, }, content: { - backgroundColor: theme.palette.background.default, - width:"100%", - marginTop: 56, - [theme.breakpoints.up('md')]: { - paddingLeft: drawerWidth - }, - [theme.breakpoints.up('sm')]: { - height: 'calc(100% - 64px)', - marginTop: 64, - }, + flexGrow: 1, + padding: theme.spacing(), }, + popper: { + zIndex: 3300 + } }); class MenuAppBar extends React.Component { state = { mobileOpen: false, + authMenuOpen: false }; + anchorRef = React.createRef(); + + handleToggle = () => { + this.setState({ authMenuOpen: !this.state.authMenuOpen }); + } + + handleClose = (event) => { + if (this.anchorRef.current && this.anchorRef.current.contains(event.target)) { + return; + } + + this.setState({ authMenuOpen: false }); + } + handleDrawerToggle = () => { this.setState({ mobileOpen: !this.state.mobileOpen }); }; render() { const { classes, theme, children, sectionTitle, authenticationContext } = this.props; + const { mobileOpen, authMenuOpen } = this.state; const drawer = (
- - {APP_NAME} - + + {APP_NAME} + @@ -137,13 +142,6 @@ class MenuAppBar extends React.Component { - - - - - - -
@@ -151,33 +149,66 @@ class MenuAppBar extends React.Component { return (
-
- - + + + + + + + {sectionTitle} + +
- + - - {sectionTitle} - - - - + + {({ TransitionProps, placement }) => ( + + + + + + + + + + + + + + + )} + +
+
+
+
+ +
+
+ {children} +
); } diff --git a/interface/src/forms/ManageUsersForm.js b/interface/src/forms/ManageUsersForm.js index 6ab3f40..75e1bb3 100644 --- a/interface/src/forms/ManageUsersForm.js +++ b/interface/src/forms/ManageUsersForm.js @@ -239,7 +239,7 @@ class ManageUsersForm extends React.Component { } ManageUsersForm.propTypes = { - authenticationContex: PropTypes.object.isRequired, + authenticationContext: PropTypes.object.isRequired, classes: PropTypes.object.isRequired, userData: PropTypes.object, userDataFetched: PropTypes.bool.isRequired, diff --git a/interface/src/forms/UserForm.js b/interface/src/forms/UserForm.js index 1d660db..a0b6adc 100644 --- a/interface/src/forms/UserForm.js +++ b/interface/src/forms/UserForm.js @@ -45,7 +45,7 @@ class UserForm extends React.Component { {creating ? 'Create' : 'Modify'} User - + Date: Sun, 26 May 2019 19:09:34 +0100 Subject: [PATCH 25/62] add security form, begin work on routing --- interface/.env.development | 2 +- interface/src/AppRouting.js | 2 +- interface/src/components/MenuAppBar.js | 2 +- interface/src/containers/ManageUsers.js | 21 ++- interface/src/containers/Security.js | 28 ++- interface/src/containers/SecuritySettings.js | 32 ++++ interface/src/forms/ManageUsersForm.js | 187 +++++++++---------- interface/src/forms/SecuritySettingsForm.js | 97 ++++++++++ interface/src/forms/UserForm.js | 2 +- src/SecurityManager.cpp | 8 +- src/SecurityManager.h | 2 +- 11 files changed, 263 insertions(+), 120 deletions(-) create mode 100644 interface/src/containers/SecuritySettings.js create mode 100644 interface/src/forms/SecuritySettingsForm.js diff --git a/interface/.env.development b/interface/.env.development index b7c5d93..a5bcdb0 100644 --- a/interface/.env.development +++ b/interface/.env.development @@ -1 +1 @@ -REACT_APP_ENDPOINT_ROOT=http://192.168.0.16/rest/ +REACT_APP_ENDPOINT_ROOT=http://192.168.0.11/rest/ diff --git a/interface/src/AppRouting.js b/interface/src/AppRouting.js index cda03d2..4d7c4fc 100644 --- a/interface/src/AppRouting.js +++ b/interface/src/AppRouting.js @@ -31,7 +31,7 @@ class AppRouting extends Component { - + diff --git a/interface/src/components/MenuAppBar.js b/interface/src/components/MenuAppBar.js index 625ad58..f5d0b49 100644 --- a/interface/src/components/MenuAppBar.js +++ b/interface/src/components/MenuAppBar.js @@ -137,7 +137,7 @@ class MenuAppBar extends React.Component {
- + diff --git a/interface/src/containers/ManageUsers.js b/interface/src/containers/ManageUsers.js index 1a69f1f..3541728 100644 --- a/interface/src/containers/ManageUsers.js +++ b/interface/src/containers/ManageUsers.js @@ -3,6 +3,7 @@ import React, { Component } from 'react'; import { USERS_ENDPOINT } from '../constants/Endpoints'; import { restComponent } from '../components/RestComponent'; import ManageUsersForm from '../forms/ManageUsersForm'; +import SectionContent from '../components/SectionContent'; class ManageUsers extends Component { @@ -13,15 +14,17 @@ class ManageUsers extends Component { render() { const { data, fetched, errorMessage } = this.props; return ( - + + + ) } diff --git a/interface/src/containers/Security.js b/interface/src/containers/Security.js index 0eaf6d6..f6222cf 100644 --- a/interface/src/containers/Security.js +++ b/interface/src/containers/Security.js @@ -1,15 +1,35 @@ import React, { Component } from 'react'; +import { Redirect, Switch } from 'react-router-dom' + +import Tabs from '@material-ui/core/Tabs'; +import Tab from '@material-ui/core/Tab'; + +import AuthenticatedRoute from '../authentication/AuthenticatedRoute'; import MenuAppBar from '../components/MenuAppBar'; import ManageUsers from './ManageUsers'; +import SecuritySettings from './SecuritySettings'; class Security extends Component { + + handleTabChange = (event, path) => { + this.props.history.push(path); + }; + render() { return ( - - - + + + + + + + + + + + ) } } -export default Security +export default Security; diff --git a/interface/src/containers/SecuritySettings.js b/interface/src/containers/SecuritySettings.js new file mode 100644 index 0000000..642c9fb --- /dev/null +++ b/interface/src/containers/SecuritySettings.js @@ -0,0 +1,32 @@ +import React, { Component } from 'react'; + +import { USERS_ENDPOINT } from '../constants/Endpoints'; +import { restComponent } from '../components/RestComponent'; +import SecuritySettingsForm from '../forms/SecuritySettingsForm'; +import SectionContent from '../components/SectionContent'; + +class SecuritySettings extends Component { + + componentDidMount() { + this.props.loadData(); + } + + render() { + const { data, fetched, errorMessage } = this.props; + return ( + + + + ) + } + +} + +export default restComponent(USERS_ENDPOINT, SecuritySettings); diff --git a/interface/src/forms/ManageUsersForm.js b/interface/src/forms/ManageUsersForm.js index 75e1bb3..7702cde 100644 --- a/interface/src/forms/ManageUsersForm.js +++ b/interface/src/forms/ManageUsersForm.js @@ -21,7 +21,6 @@ import CloseIcon from '@material-ui/icons/Close'; import CheckIcon from '@material-ui/icons/Check'; import IconButton from '@material-ui/core/IconButton'; -import SectionContent from '../components/SectionContent'; import UserForm from './UserForm'; import { withAuthenticationContext } from '../authentication/Context'; @@ -138,108 +137,101 @@ class ManageUsersForm extends React.Component { const { classes, userData, userDataFetched, errorMessage, onReset } = this.props; const { user, creating } = this.state; return ( - - { - !userDataFetched ? -
- - - Loading... - -
- : - userData ? - - - - - - Username - Admin? - - - - - {userData.users.sort(compareUsers).map(user => ( - - - {user.username} - - - { - user.admin ? : - } - - - this.removeUser(user)}> - - - this.startEditingUser(user)}> - - - - - ))} - - - - - - - - - -
- { - this.noAdminConfigured() && - - - You must have at least one admin user configured. - - - } - - -
- { - user && - - - - } -
- : - - - {errorMessage} + !userDataFetched ? +
+ + + Loading... + +
+ : + userData ? + + + + + + Username + Admin? + + + + + {userData.users.sort(compareUsers).map(user => ( + + + {user.username} + + + { + user.admin ? : + } + + + this.removeUser(user)}> + + + this.startEditingUser(user)}> + + + + + ))} + + + + + + + + + +
+ { + this.noAdminConfigured() && + + + You must have at least one admin user configured. + - -
- } -
+ } + + + + { + user && + + } +
+ : +
+ + {errorMessage} + + +
); } } ManageUsersForm.propTypes = { - authenticationContext: PropTypes.object.isRequired, classes: PropTypes.object.isRequired, userData: PropTypes.object, userDataFetched: PropTypes.bool.isRequired, @@ -247,7 +239,8 @@ ManageUsersForm.propTypes = { onSubmit: PropTypes.func.isRequired, onReset: PropTypes.func.isRequired, setData: PropTypes.func.isRequired, - handleValueChange: PropTypes.func.isRequired + handleValueChange: PropTypes.func.isRequired, + authenticationContext: PropTypes.object.isRequired, }; export default withAuthenticationContext(withStyles(styles)(ManageUsersForm)); diff --git a/interface/src/forms/SecuritySettingsForm.js b/interface/src/forms/SecuritySettingsForm.js new file mode 100644 index 0000000..32c16e7 --- /dev/null +++ b/interface/src/forms/SecuritySettingsForm.js @@ -0,0 +1,97 @@ +import React from 'react'; +import PropTypes from 'prop-types'; +import { ValidatorForm } from 'react-material-ui-form-validator'; + +import { withStyles } from '@material-ui/core/styles'; +import Button from '@material-ui/core/Button'; +import LinearProgress from '@material-ui/core/LinearProgress'; +import Typography from '@material-ui/core/Typography'; +import Box from '@material-ui/core/Box'; + +import PasswordValidator from '../components/PasswordValidator'; +import { withAuthenticationContext } from '../authentication/Context'; + +const styles = theme => ({ + loadingSettings: { + margin: theme.spacing.unit, + }, + loadingSettingsDetails: { + margin: theme.spacing.unit * 4, + textAlign: "center" + }, + textField: { + width: "100%" + }, + button: { + marginRight: theme.spacing.unit * 2, + marginTop: theme.spacing.unit * 2, + } +}); + +class SecuritySettingsForm extends React.Component { + + onSubmit = () => { + this.props.onSubmit(); + this.props.authenticationContext.refresh(); + } + + render() { + const { classes, securitySettingsFetched, securitySettings, errorMessage, handleValueChange, onReset } = this.props; + return ( + !securitySettingsFetched ? +
+ + + Loading... + +
+ : + securitySettings ? + + + + + If you modify the JWT Secret, all users will be logged out. + + + + + + : +
+ + {errorMessage} + + +
+ ); + } +} + +SecuritySettingsForm.propTypes = { + classes: PropTypes.object.isRequired, + securitySettingsFetched: PropTypes.bool.isRequired, + securitySettings: PropTypes.object, + errorMessage: PropTypes.string, + onSubmit: PropTypes.func.isRequired, + onReset: PropTypes.func.isRequired, + handleValueChange: PropTypes.func.isRequired, + authenticationContext: PropTypes.object.isRequired, +}; + +export default withAuthenticationContext(withStyles(styles)(SecuritySettingsForm)); diff --git a/interface/src/forms/UserForm.js b/interface/src/forms/UserForm.js index a0b6adc..225a0bf 100644 --- a/interface/src/forms/UserForm.js +++ b/interface/src/forms/UserForm.js @@ -44,7 +44,7 @@ class UserForm extends React.Component { return ( - {creating ? 'Create' : 'Modify'} User + {creating ? 'Add' : 'Modify'} User ()) { JsonObject parsedPayload = payloadDocument.as(); String username = parsedPayload["username"]; @@ -91,5 +89,5 @@ String SecurityManager::generateJWT(User *user) { DynamicJsonDocument _jsonDocument(MAX_JWT_SIZE); JsonObject payload = _jsonDocument.to(); populateJWTPayload(payload, user); - return jwtHandler.buildJWT(payload); + return _jwtHandler.buildJWT(payload); } diff --git a/src/SecurityManager.h b/src/SecurityManager.h index cfd7712..d3ac577 100644 --- a/src/SecurityManager.h +++ b/src/SecurityManager.h @@ -93,7 +93,7 @@ class SecurityManager : public SettingsService { private: // jwt handler - ArduinoJsonJWT jwtHandler = ArduinoJsonJWT(DEFAULT_JWT_SECRET); + ArduinoJsonJWT _jwtHandler = ArduinoJsonJWT(DEFAULT_JWT_SECRET); // access point settings String _jwtSecret; From 2fa954d5b945baccdcd093fe8cbaf6364ea2c516 Mon Sep 17 00:00:00 2001 From: Rick Watson Date: Sun, 26 May 2019 20:49:15 +0100 Subject: [PATCH 26/62] Move wifi routing --- interface/src/AppRouting.js | 8 +-- .../src/authentication/Authentication.js | 2 +- interface/src/components/MenuAppBar.js | 2 +- interface/src/containers/WiFiConfiguration.js | 54 -------------- .../src/{containers => sections}/Security.js | 4 +- interface/src/sections/WiFiConnection.js | 72 +++++++++++++++++++ 6 files changed, 80 insertions(+), 62 deletions(-) delete mode 100644 interface/src/containers/WiFiConfiguration.js rename interface/src/{containers => sections}/Security.js (90%) create mode 100644 interface/src/sections/WiFiConnection.js diff --git a/interface/src/AppRouting.js b/interface/src/AppRouting.js index 4d7c4fc..48f95ea 100644 --- a/interface/src/AppRouting.js +++ b/interface/src/AppRouting.js @@ -8,13 +8,13 @@ import AuthenticationWrapper from './authentication/AuthenticationWrapper'; import AuthenticatedRoute from './authentication/AuthenticatedRoute'; import UnauthenticatedRoute from './authentication/UnauthenticatedRoute'; -// containers -import WiFiConfiguration from './containers/WiFiConfiguration'; import NTPConfiguration from './containers/NTPConfiguration'; import OTAConfiguration from './containers/OTAConfiguration'; import APConfiguration from './containers/APConfiguration'; import SignInPage from './containers/SignInPage'; -import Security from './containers/Security'; + +import Security from './sections/Security'; +import WiFiConnection from './sections/WiFiConnection'; class AppRouting extends Component { @@ -27,7 +27,7 @@ class AppRouting extends Component { - + diff --git a/interface/src/authentication/Authentication.js b/interface/src/authentication/Authentication.js index 5dabb04..d379fb2 100644 --- a/interface/src/authentication/Authentication.js +++ b/interface/src/authentication/Authentication.js @@ -21,7 +21,7 @@ export function fetchLoginRedirect() { const loginSearch = localStorage.getItem(LOGIN_SEARCH); clearLoginRedirect(); return { - pathname: loginPathname || "/wifi-configuration", + pathname: loginPathname || "/wifi/", search: (loginPathname && loginSearch) || undefined }; } diff --git a/interface/src/components/MenuAppBar.js b/interface/src/components/MenuAppBar.js index f5d0b49..711289c 100644 --- a/interface/src/components/MenuAppBar.js +++ b/interface/src/components/MenuAppBar.js @@ -113,7 +113,7 @@ class MenuAppBar extends React.Component { - + diff --git a/interface/src/containers/WiFiConfiguration.js b/interface/src/containers/WiFiConfiguration.js deleted file mode 100644 index 6049bdf..0000000 --- a/interface/src/containers/WiFiConfiguration.js +++ /dev/null @@ -1,54 +0,0 @@ -import React, { Component } from 'react'; - -import Tabs from '@material-ui/core/Tabs'; -import Tab from '@material-ui/core/Tab'; - -import MenuAppBar from '../components/MenuAppBar'; -import WiFiNetworkScanner from './WiFiNetworkScanner'; -import WiFiSettings from './WiFiSettings'; -import WiFiStatus from './WiFiStatus'; - -class WiFiConfiguration extends Component { - - constructor(props) { - super(props); - this.state = { - selectedTab: "wifiStatus", - selectedNetwork: null - }; - this.selectNetwork = this.selectNetwork.bind(this); - this.deselectNetwork = this.deselectNetwork.bind(this); - } - - // TODO - slightly inapproperate use of callback ref possibly. - selectNetwork(network) { - this.setState({ selectedTab: "wifiSettings", selectedNetwork:network }); - } - - // deselects the network after the settings component mounts. - deselectNetwork(network) { - this.setState({ selectedNetwork:null }); - } - - handleTabChange = (event, selectedTab) => { - this.setState({ selectedTab }); - }; - - render() { - const { selectedTab } = this.state; - return ( - - - - - - - {selectedTab === "wifiStatus" && } - {selectedTab === "networkScanner" && } - {selectedTab === "wifiSettings" && } - - ) - } -} - -export default WiFiConfiguration; diff --git a/interface/src/containers/Security.js b/interface/src/sections/Security.js similarity index 90% rename from interface/src/containers/Security.js rename to interface/src/sections/Security.js index f6222cf..c2f619c 100644 --- a/interface/src/containers/Security.js +++ b/interface/src/sections/Security.js @@ -6,8 +6,8 @@ import Tab from '@material-ui/core/Tab'; import AuthenticatedRoute from '../authentication/AuthenticatedRoute'; import MenuAppBar from '../components/MenuAppBar'; -import ManageUsers from './ManageUsers'; -import SecuritySettings from './SecuritySettings'; +import ManageUsers from '../containers/ManageUsers'; +import SecuritySettings from '../containers/SecuritySettings'; class Security extends Component { diff --git a/interface/src/sections/WiFiConnection.js b/interface/src/sections/WiFiConnection.js new file mode 100644 index 0000000..a40a788 --- /dev/null +++ b/interface/src/sections/WiFiConnection.js @@ -0,0 +1,72 @@ +import React, { Component } from 'react'; +import { Redirect, Switch } from 'react-router-dom' + +import Tabs from '@material-ui/core/Tabs'; +import Tab from '@material-ui/core/Tab'; + +import AuthenticatedRoute from '../authentication/AuthenticatedRoute'; +import MenuAppBar from '../components/MenuAppBar'; +import WiFiNetworkScanner from '../containers/WiFiNetworkScanner'; +import WiFiSettings from '../containers/WiFiSettings'; +import WiFiStatus from '../containers/WiFiStatus'; + +class WiFiConnection extends Component { + + constructor(props) { + super(props); + this.state = { + selectedNetwork: null + }; + this.selectNetwork = this.selectNetwork.bind(this); + this.deselectNetwork = this.deselectNetwork.bind(this); + } + + selectNetwork(network) { + this.setState({ selectedNetwork: network }); + this.props.history.push('/wifi/settings'); + } + + deselectNetwork(network) { + this.setState({ selectedNetwork: null }); + } + + handleTabChange = (event, path) => { + this.props.history.push(path); + }; + + render() { + const ConfiguredWiFiNetworkScanner = (props) => { + return ( + + ); + }; + const ConfiguredWiFiSettings = (props) => { + return ( + + ); + }; + return ( + + + + + + + + + + + + + + ) + } +} + +export default WiFiConnection; From 9ee9596b7264e0bcbedb9a61f4eab90ce7664701 Mon Sep 17 00:00:00 2001 From: Rick Watson Date: Sun, 26 May 2019 21:27:35 +0100 Subject: [PATCH 27/62] Rework routing --- interface/src/AppRouting.js | 11 +++--- interface/src/components/MenuAppBar.js | 4 +- interface/src/containers/APConfiguration.js | 39 -------------------- interface/src/containers/NTPConfiguration.js | 37 ------------------- interface/src/forms/UserForm.js | 4 +- interface/src/sections/AccessPoint.js | 35 ++++++++++++++++++ interface/src/sections/NetworkTime.js | 35 ++++++++++++++++++ 7 files changed, 79 insertions(+), 86 deletions(-) delete mode 100644 interface/src/containers/APConfiguration.js delete mode 100644 interface/src/containers/NTPConfiguration.js create mode 100644 interface/src/sections/AccessPoint.js create mode 100644 interface/src/sections/NetworkTime.js diff --git a/interface/src/AppRouting.js b/interface/src/AppRouting.js index 48f95ea..2795482 100644 --- a/interface/src/AppRouting.js +++ b/interface/src/AppRouting.js @@ -2,19 +2,18 @@ import React, { Component } from 'react'; import { Redirect, Switch } from 'react-router'; -// authentication import * as Authentication from './authentication/Authentication'; import AuthenticationWrapper from './authentication/AuthenticationWrapper'; import AuthenticatedRoute from './authentication/AuthenticatedRoute'; import UnauthenticatedRoute from './authentication/UnauthenticatedRoute'; -import NTPConfiguration from './containers/NTPConfiguration'; import OTAConfiguration from './containers/OTAConfiguration'; -import APConfiguration from './containers/APConfiguration'; import SignInPage from './containers/SignInPage'; -import Security from './sections/Security'; import WiFiConnection from './sections/WiFiConnection'; +import AccessPoint from './sections/AccessPoint'; +import NetworkTime from './sections/NetworkTime'; +import Security from './sections/Security'; class AppRouting extends Component { @@ -28,8 +27,8 @@ class AppRouting extends Component { - - + + diff --git a/interface/src/components/MenuAppBar.js b/interface/src/components/MenuAppBar.js index 711289c..8bdb6d8 100644 --- a/interface/src/components/MenuAppBar.js +++ b/interface/src/components/MenuAppBar.js @@ -119,13 +119,13 @@ class MenuAppBar extends React.Component { - + - + diff --git a/interface/src/containers/APConfiguration.js b/interface/src/containers/APConfiguration.js deleted file mode 100644 index b811e68..0000000 --- a/interface/src/containers/APConfiguration.js +++ /dev/null @@ -1,39 +0,0 @@ -import React, { Component } from 'react'; - -import Tabs from '@material-ui/core/Tabs'; -import Tab from '@material-ui/core/Tab'; - -import MenuAppBar from '../components/MenuAppBar'; -import APSettings from './APSettings'; -import APStatus from './APStatus'; - -class APConfiguration extends Component { - - constructor(props) { - super(props); - this.state = { - selectedTab: "apStatus", - selectedNetwork: null - }; - } - - handleTabChange = (event, selectedTab) => { - this.setState({ selectedTab }); - }; - - render() { - const { selectedTab } = this.state; - return ( - - - - - - {selectedTab === "apStatus" && } - {selectedTab === "apSettings" && } - - ) - } -} - -export default APConfiguration; diff --git a/interface/src/containers/NTPConfiguration.js b/interface/src/containers/NTPConfiguration.js deleted file mode 100644 index 811ba63..0000000 --- a/interface/src/containers/NTPConfiguration.js +++ /dev/null @@ -1,37 +0,0 @@ -import React, { Component } from 'react'; -import MenuAppBar from '../components/MenuAppBar'; -import NTPSettings from './NTPSettings'; -import NTPStatus from './NTPStatus'; - -import Tabs from '@material-ui/core/Tabs'; -import Tab from '@material-ui/core/Tab'; - -class NTPConfiguration extends Component { - - constructor(props) { - super(props); - this.state = { - selectedTab: "ntpStatus" - }; - } - - handleTabChange = (event, selectedTab) => { - this.setState({ selectedTab }); - }; - - render() { - const { selectedTab } = this.state; - return ( - - - - - - {selectedTab === "ntpStatus" && } - {selectedTab === "ntpSettings" && } - - ) - } -} - -export default NTPConfiguration diff --git a/interface/src/forms/UserForm.js b/interface/src/forms/UserForm.js index 225a0bf..a2e2f5d 100644 --- a/interface/src/forms/UserForm.js +++ b/interface/src/forms/UserForm.js @@ -43,12 +43,12 @@ class UserForm extends React.Component { const { classes, user, creating, handleValueChange, handleCheckboxChange, onDoneEditing, onCancelEditing } = this.props; return ( - + {creating ? 'Add' : 'Modify'} User { + this.props.history.push(path); + }; + + render() { + return ( + + + + + + + + + + + + ) + } +} + +export default AccessPoint; diff --git a/interface/src/sections/NetworkTime.js b/interface/src/sections/NetworkTime.js new file mode 100644 index 0000000..0e36b27 --- /dev/null +++ b/interface/src/sections/NetworkTime.js @@ -0,0 +1,35 @@ +import React, { Component } from 'react'; +import { Redirect, Switch } from 'react-router-dom' + +import Tabs from '@material-ui/core/Tabs'; +import Tab from '@material-ui/core/Tab'; + +import AuthenticatedRoute from '../authentication/AuthenticatedRoute'; +import MenuAppBar from '../components/MenuAppBar'; +import NTPSettings from '../containers/NTPSettings'; +import NTPStatus from '../containers/NTPStatus'; + +class NetworkTime extends Component { + + handleTabChange = (event, path) => { + this.props.history.push(path); + }; + + render() { + return ( + + + + + + + + + + + + ) + } +} + +export default NetworkTime From d9ad598e0f363c760087e6ebba27ed308bfc59e6 Mon Sep 17 00:00:00 2001 From: Rick Watson Date: Sun, 26 May 2019 22:02:27 +0100 Subject: [PATCH 28/62] Add placeholder system section, for status page and reset feature. --- interface/src/AppRouting.js | 4 +-- interface/src/components/MenuAppBar.js | 30 ++++++++--------- interface/src/containers/APStatus.js | 4 +-- interface/src/containers/NTPStatus.js | 13 +++++--- interface/src/containers/OTAConfiguration.js | 15 --------- interface/src/sections/System.js | 34 ++++++++++++++++++++ 6 files changed, 61 insertions(+), 39 deletions(-) delete mode 100644 interface/src/containers/OTAConfiguration.js create mode 100644 interface/src/sections/System.js diff --git a/interface/src/AppRouting.js b/interface/src/AppRouting.js index 2795482..3217c1c 100644 --- a/interface/src/AppRouting.js +++ b/interface/src/AppRouting.js @@ -7,13 +7,13 @@ import AuthenticationWrapper from './authentication/AuthenticationWrapper'; import AuthenticatedRoute from './authentication/AuthenticatedRoute'; import UnauthenticatedRoute from './authentication/UnauthenticatedRoute'; -import OTAConfiguration from './containers/OTAConfiguration'; import SignInPage from './containers/SignInPage'; import WiFiConnection from './sections/WiFiConnection'; import AccessPoint from './sections/AccessPoint'; import NetworkTime from './sections/NetworkTime'; import Security from './sections/Security'; +import System from './sections/System'; class AppRouting extends Component { @@ -29,7 +29,7 @@ class AppRouting extends Component { - + diff --git a/interface/src/components/MenuAppBar.js b/interface/src/components/MenuAppBar.js index 8bdb6d8..1d36edb 100644 --- a/interface/src/components/MenuAppBar.js +++ b/interface/src/components/MenuAppBar.js @@ -1,6 +1,6 @@ import React from 'react'; import PropTypes from 'prop-types'; -import { Link } from 'react-router-dom'; +import { Link, withRouter } from 'react-router-dom'; import { withStyles } from '@material-ui/core/styles'; import Drawer from '@material-ui/core/Drawer'; @@ -13,23 +13,19 @@ import Divider from '@material-ui/core/Divider'; import Grow from '@material-ui/core/Grow'; import MenuItem from '@material-ui/core/MenuItem'; import MenuList from '@material-ui/core/MenuList'; - import List from '@material-ui/core/List'; import ListItem from '@material-ui/core/ListItem'; import ListItemIcon from '@material-ui/core/ListItemIcon'; import ListItemText from '@material-ui/core/ListItemText'; - import Popper from '@material-ui/core/Popper'; import MenuIcon from '@material-ui/icons/Menu'; import WifiIcon from '@material-ui/icons/Wifi'; -import SystemUpdateIcon from '@material-ui/icons/SystemUpdate'; +import SettingsIcon from '@material-ui/icons/Settings'; import AccessTimeIcon from '@material-ui/icons/AccessTime'; import AccountCircleIcon from '@material-ui/icons/AccountCircle'; import SettingsInputAntennaIcon from '@material-ui/icons/SettingsInputAntenna'; import LockIcon from '@material-ui/icons/Lock'; - import ClickAwayListener from '@material-ui/core/ClickAwayListener'; - import Paper from '@material-ui/core/Paper'; import { APP_NAME } from '../constants/App'; @@ -102,7 +98,7 @@ class MenuAppBar extends React.Component { render() { const { classes, theme, children, sectionTitle, authenticationContext } = this.props; const { mobileOpen, authMenuOpen } = this.state; - + const path = this.props.match.url; const drawer = (
@@ -113,31 +109,31 @@ class MenuAppBar extends React.Component { - + - + - + - + - + - + - + @@ -241,4 +237,8 @@ MenuAppBar.propTypes = { sectionTitle: PropTypes.string.isRequired, }; -export default withAuthenticationContext(withStyles(styles, { withTheme: true })(MenuAppBar)); +export default withAuthenticationContext( + withRouter( + withStyles(styles, { withTheme: true })(MenuAppBar) + ) +); diff --git a/interface/src/containers/APStatus.js b/interface/src/containers/APStatus.js index 41d9abe..0621601 100644 --- a/interface/src/containers/APStatus.js +++ b/interface/src/containers/APStatus.js @@ -118,7 +118,7 @@ class APStatus extends Component { Loading... - +
: data ? this.renderAPStatus(data, classes) @@ -129,7 +129,7 @@ class APStatus extends Component { +
} diff --git a/interface/src/containers/NTPStatus.js b/interface/src/containers/NTPStatus.js index 0ddee74..df6cbec 100644 --- a/interface/src/containers/NTPStatus.js +++ b/interface/src/containers/NTPStatus.js @@ -79,7 +79,8 @@ class NTPStatus extends Component { - + + 0 ? unixTimeToTimeAndDate(data.last_sync) : "never"} />
@@ -98,7 +99,8 @@ class NTPStatus extends Component { - + +
@@ -106,7 +108,8 @@ class NTPStatus extends Component { - + + @@ -138,7 +141,7 @@ class NTPStatus extends Component { Loading... - +
: data ? this.renderNTPStatus(data, classes) @@ -149,7 +152,7 @@ class NTPStatus extends Component { + } diff --git a/interface/src/containers/OTAConfiguration.js b/interface/src/containers/OTAConfiguration.js deleted file mode 100644 index 66dbf3f..0000000 --- a/interface/src/containers/OTAConfiguration.js +++ /dev/null @@ -1,15 +0,0 @@ -import React, { Component } from 'react'; -import MenuAppBar from '../components/MenuAppBar'; -import OTASettings from './OTASettings'; - -class OTAConfiguration extends Component { - render() { - return ( - - - - ) - } -} - -export default OTAConfiguration diff --git a/interface/src/sections/System.js b/interface/src/sections/System.js new file mode 100644 index 0000000..de79200 --- /dev/null +++ b/interface/src/sections/System.js @@ -0,0 +1,34 @@ +import React, { Component } from 'react'; +import { Redirect, Switch } from 'react-router-dom' + +import Tabs from '@material-ui/core/Tabs'; +import Tab from '@material-ui/core/Tab'; + +import AuthenticatedRoute from '../authentication/AuthenticatedRoute'; +import MenuAppBar from '../components/MenuAppBar'; +import OTASettings from '../containers/OTASettings'; + +class System extends Component { + + handleTabChange = (event, path) => { + this.props.history.push(path); + }; + + render() { + return ( + + + + + + + + + + + + ) + } +} + +export default System From 90bf97aa2bcaffe0768b8f5a67ac3041d7fe0e97 Mon Sep 17 00:00:00 2001 From: Rick Watson Date: Sun, 26 May 2019 22:05:58 +0100 Subject: [PATCH 29/62] Rename for consistency --- interface/src/sections/System.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/interface/src/sections/System.js b/interface/src/sections/System.js index de79200..ed9f120 100644 --- a/interface/src/sections/System.js +++ b/interface/src/sections/System.js @@ -19,7 +19,7 @@ class System extends Component { - + From 218904ed88494d84c1ae12081adab82a13f03d05 Mon Sep 17 00:00:00 2001 From: Rick Watson Date: Sun, 26 May 2019 22:07:16 +0100 Subject: [PATCH 30/62] More renames --- interface/src/sections/AccessPoint.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/interface/src/sections/AccessPoint.js b/interface/src/sections/AccessPoint.js index 55c166f..36ef1a1 100644 --- a/interface/src/sections/AccessPoint.js +++ b/interface/src/sections/AccessPoint.js @@ -17,10 +17,10 @@ class AccessPoint extends Component { render() { return ( - + - - + + From b11c508d77f4edd7d5f9ceda1b8d3a0b67f132bc Mon Sep 17 00:00:00 2001 From: Rick Watson Date: Mon, 27 May 2019 00:04:29 +0100 Subject: [PATCH 31/62] introduce basic system status page --- interface/src/AppRouting.js | 2 +- interface/src/components/MenuAppBar.js | 12 +- interface/src/constants/Endpoints.js | 1 + interface/src/containers/SystemStatus.js | 141 +++++++++++++++++++++++ interface/src/sections/System.js | 3 +- src/SystemStatus.cpp | 24 ++++ src/SystemStatus.h | 33 ++++++ src/main.cpp | 3 +- 8 files changed, 210 insertions(+), 9 deletions(-) create mode 100644 interface/src/containers/SystemStatus.js create mode 100644 src/SystemStatus.cpp create mode 100644 src/SystemStatus.h diff --git a/interface/src/AppRouting.js b/interface/src/AppRouting.js index 3217c1c..10670f1 100644 --- a/interface/src/AppRouting.js +++ b/interface/src/AppRouting.js @@ -29,8 +29,8 @@ class AppRouting extends Component { - + diff --git a/interface/src/components/MenuAppBar.js b/interface/src/components/MenuAppBar.js index 1d36edb..674e804 100644 --- a/interface/src/components/MenuAppBar.js +++ b/interface/src/components/MenuAppBar.js @@ -127,18 +127,18 @@ class MenuAppBar extends React.Component { - - - - - - + + + + + +
); diff --git a/interface/src/constants/Endpoints.js b/interface/src/constants/Endpoints.js index c9874b6..b3efbfa 100644 --- a/interface/src/constants/Endpoints.js +++ b/interface/src/constants/Endpoints.js @@ -9,6 +9,7 @@ export const LIST_NETWORKS_ENDPOINT = ENDPOINT_ROOT + "listNetworks"; export const WIFI_SETTINGS_ENDPOINT = ENDPOINT_ROOT + "wifiSettings"; export const WIFI_STATUS_ENDPOINT = ENDPOINT_ROOT + "wifiStatus"; export const OTA_SETTINGS_ENDPOINT = ENDPOINT_ROOT + "otaSettings"; +export const SYSTEM_STATUS_ENDPOINT = ENDPOINT_ROOT + "systemStatus"; export const SIGN_IN_ENDPOINT = ENDPOINT_ROOT + "signIn"; export const VERIFY_AUTHORIZATION_ENDPOINT = ENDPOINT_ROOT + "verifyAuthorization"; export const USERS_ENDPOINT = ENDPOINT_ROOT + "users"; diff --git a/interface/src/containers/SystemStatus.js b/interface/src/containers/SystemStatus.js new file mode 100644 index 0000000..ae287df --- /dev/null +++ b/interface/src/containers/SystemStatus.js @@ -0,0 +1,141 @@ +import React, { Component, Fragment } from 'react'; + +import { withStyles } from '@material-ui/core/styles'; +import Button from '@material-ui/core/Button'; +import LinearProgress from '@material-ui/core/LinearProgress'; +import Typography from '@material-ui/core/Typography'; +import List from '@material-ui/core/List'; +import ListItem from '@material-ui/core/ListItem'; +import ListItemAvatar from '@material-ui/core/ListItemAvatar'; +import ListItemText from '@material-ui/core/ListItemText'; +import Avatar from '@material-ui/core/Avatar'; +import Divider from '@material-ui/core/Divider'; +import DevicesIcon from '@material-ui/icons/Devices'; +import MemoryIcon from '@material-ui/icons/Memory'; +import ShowChartIcon from '@material-ui/icons/ShowChart'; +import SdStorageIcon from '@material-ui/icons/SdStorage'; +import DataUsageIcon from '@material-ui/icons/DataUsage'; + + +import { SYSTEM_STATUS_ENDPOINT } from '../constants/Endpoints'; +import { restComponent } from '../components/RestComponent'; +import SectionContent from '../components/SectionContent'; + +const styles = theme => ({ + fetching: { + margin: theme.spacing.unit * 4, + textAlign: "center" + }, + button: { + marginRight: theme.spacing.unit * 2, + marginTop: theme.spacing.unit * 2, + } +}); + +class SystemStatus extends Component { + + componentDidMount() { + this.props.loadData(); + } + /* + { + "sdk_version": "v3.2-18-g977854975", + "flash_chip_size": 4194304, + "flash_chip_speed": 40000000 + } +*/ + createListItems(data, classes) { + return ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ); + } + + renderNTPStatus(data, classes) { + return ( +
+ + {this.createListItems(data, classes)} + + +
+ ); + } + + render() { + const { data, fetched, errorMessage, classes } = this.props; + return ( + + { + !fetched ? +
+ + + Loading... + +
+ : + data ? this.renderNTPStatus(data, classes) + : +
+ + {errorMessage} + + +
+ } +
+ ) + } +} + +export default restComponent(SYSTEM_STATUS_ENDPOINT, withStyles(styles)(SystemStatus)); diff --git a/interface/src/sections/System.js b/interface/src/sections/System.js index ed9f120..f34c9b6 100644 --- a/interface/src/sections/System.js +++ b/interface/src/sections/System.js @@ -7,6 +7,7 @@ import Tab from '@material-ui/core/Tab'; import AuthenticatedRoute from '../authentication/AuthenticatedRoute'; import MenuAppBar from '../components/MenuAppBar'; import OTASettings from '../containers/OTASettings'; +import SystemStatus from '../containers/SystemStatus'; class System extends Component { @@ -22,7 +23,7 @@ class System extends Component { - + diff --git a/src/SystemStatus.cpp b/src/SystemStatus.cpp new file mode 100644 index 0000000..de99a3d --- /dev/null +++ b/src/SystemStatus.cpp @@ -0,0 +1,24 @@ +#include + + SystemStatus::SystemStatus(AsyncWebServer *server) : _server(server) { + _server->on(SYSTEM_STATUS_SERVICE_PATH, HTTP_GET, std::bind(&SystemStatus::systemStatus, this, std::placeholders::_1)); +} + + void SystemStatus::systemStatus(AsyncWebServerRequest *request) { + AsyncJsonResponse * response = new AsyncJsonResponse(MAX_ESP_STATUS_SIZE); + JsonObject root = response->getRoot(); +#if defined(ESP8266) + root["esp_platform"] = "esp8266"; +#elif defined(ESP_PLATFORM) + root["esp_platform"] = "esp32"; +#endif + root["cpu_freq_mhz"] = ESP.getCpuFreqMHz(); + root["free_heap"] = ESP.getFreeHeap(); + root["sketch_size"] = ESP.getSketchSize(); + root["free_sketch_space"] = ESP.getFreeSketchSpace(); + root["sdk_version"] = ESP.getSdkVersion(); + root["flash_chip_size"] = ESP.getFlashChipSize(); + root["flash_chip_speed"] = ESP.getFlashChipSpeed(); + response->setLength(); + request->send(response); +} diff --git a/src/SystemStatus.h b/src/SystemStatus.h new file mode 100644 index 0000000..2ae4f90 --- /dev/null +++ b/src/SystemStatus.h @@ -0,0 +1,33 @@ +#ifndef SystemStatus_h +#define SystemStatus_h + +#if defined(ESP8266) + #include + #include +#elif defined(ESP_PLATFORM) + #include + #include +#endif + +#include +#include +#include + +#define MAX_ESP_STATUS_SIZE 1024 +#define SYSTEM_STATUS_SERVICE_PATH "/rest/systemStatus" + +class SystemStatus { + + public: + + SystemStatus(AsyncWebServer *server); + + private: + + AsyncWebServer* _server; + + void systemStatus(AsyncWebServerRequest *request); + +}; + +#endif // end SystemStatus_h \ No newline at end of file diff --git a/src/main.cpp b/src/main.cpp index ea0a4c5..694fde9 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -21,7 +21,7 @@ #include #include #include - +#include #define SERIAL_BAUD_RATE 115200 @@ -39,6 +39,7 @@ WiFiScanner wifiScanner = WiFiScanner(&server); WiFiStatus wifiStatus = WiFiStatus(&server); NTPStatus ntpStatus = NTPStatus(&server); APStatus apStatus = APStatus(&server); +SystemStatus systemStatus = SystemStatus(&server); void setup() { // Disable wifi config persistance From fa3132a2fa45cf2a08ef1c54caebcb069bc75bd1 Mon Sep 17 00:00:00 2001 From: Rick Watson Date: Mon, 27 May 2019 00:04:56 +0100 Subject: [PATCH 32/62] remove comment, checked in by mistake. --- interface/src/containers/SystemStatus.js | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/interface/src/containers/SystemStatus.js b/interface/src/containers/SystemStatus.js index ae287df..a6b63a2 100644 --- a/interface/src/containers/SystemStatus.js +++ b/interface/src/containers/SystemStatus.js @@ -37,13 +37,7 @@ class SystemStatus extends Component { componentDidMount() { this.props.loadData(); } - /* - { - "sdk_version": "v3.2-18-g977854975", - "flash_chip_size": 4194304, - "flash_chip_speed": 40000000 - } -*/ + createListItems(data, classes) { return ( From c8857f06ac9d04ac931cf4ba4afe7fd9663d6f58 Mon Sep 17 00:00:00 2001 From: Rick Watson Date: Mon, 27 May 2019 21:01:00 +0100 Subject: [PATCH 33/62] look and feel tweeks --- interface/src/components/MenuAppBar.js | 62 ++++++++++++--------- interface/src/forms/ManageUsersForm.js | 2 +- interface/src/forms/SecuritySettingsForm.js | 2 +- interface/src/forms/UserForm.js | 2 +- 4 files changed, 39 insertions(+), 29 deletions(-) diff --git a/interface/src/components/MenuAppBar.js b/interface/src/components/MenuAppBar.js index 674e804..2fb2952 100644 --- a/interface/src/components/MenuAppBar.js +++ b/interface/src/components/MenuAppBar.js @@ -10,13 +10,12 @@ import Typography from '@material-ui/core/Typography'; import IconButton from '@material-ui/core/IconButton'; import Hidden from '@material-ui/core/Hidden'; import Divider from '@material-ui/core/Divider'; -import Grow from '@material-ui/core/Grow'; -import MenuItem from '@material-ui/core/MenuItem'; -import MenuList from '@material-ui/core/MenuList'; +import Button from '@material-ui/core/Button'; import List from '@material-ui/core/List'; import ListItem from '@material-ui/core/ListItem'; import ListItemIcon from '@material-ui/core/ListItemIcon'; import ListItemText from '@material-ui/core/ListItemText'; +import ListItemAvatar from '@material-ui/core/ListItemAvatar'; import Popper from '@material-ui/core/Popper'; import MenuIcon from '@material-ui/icons/Menu'; import WifiIcon from '@material-ui/icons/Wifi'; @@ -26,7 +25,10 @@ import AccountCircleIcon from '@material-ui/icons/AccountCircle'; import SettingsInputAntennaIcon from '@material-ui/icons/SettingsInputAntenna'; import LockIcon from '@material-ui/icons/Lock'; import ClickAwayListener from '@material-ui/core/ClickAwayListener'; -import Paper from '@material-ui/core/Paper'; +import Card from '@material-ui/core/Card'; +import CardContent from '@material-ui/core/CardContent'; +import CardActions from '@material-ui/core/CardActions'; +import Avatar from '@material-ui/core/Avatar'; import { APP_NAME } from '../constants/App'; import { withAuthenticationContext } from '../authentication/Context.js'; @@ -66,9 +68,16 @@ const styles = theme => ({ flexGrow: 1, padding: theme.spacing(), }, - popper: { - zIndex: 3300 - } + authMenu: { + zIndex: theme.zIndex.tooltip, + maxWidth: 400, + }, + authMenuActions: { + padding: theme.spacing(2), + "& > * + *" :{ + marginLeft: theme.spacing(2), + } + }, }); class MenuAppBar extends React.Component { @@ -169,26 +178,27 @@ class MenuAppBar extends React.Component { > - - {({ TransitionProps, placement }) => ( - - - - - - + + + + + + + + - - - - - - - - )} + + + + +
+ + + + + + + diff --git a/interface/src/forms/ManageUsersForm.js b/interface/src/forms/ManageUsersForm.js index 7702cde..6423736 100644 --- a/interface/src/forms/ManageUsersForm.js +++ b/interface/src/forms/ManageUsersForm.js @@ -192,7 +192,7 @@ class ManageUsersForm extends React.Component { { this.noAdminConfigured() && - + You must have at least one admin user configured. diff --git a/interface/src/forms/SecuritySettingsForm.js b/interface/src/forms/SecuritySettingsForm.js index 32c16e7..7420885 100644 --- a/interface/src/forms/SecuritySettingsForm.js +++ b/interface/src/forms/SecuritySettingsForm.js @@ -59,7 +59,7 @@ class SecuritySettingsForm extends React.Component { margin="normal" /> - + If you modify the JWT Secret, all users will be logged out. diff --git a/interface/src/forms/UserForm.js b/interface/src/forms/UserForm.js index a2e2f5d..3aee089 100644 --- a/interface/src/forms/UserForm.js +++ b/interface/src/forms/UserForm.js @@ -74,7 +74,7 @@ class UserForm extends React.Component { /> - + From 71e5830d6c9f81e49b87359e702121a1fcd9fa8a Mon Sep 17 00:00:00 2001 From: Rick Watson Date: Mon, 27 May 2019 21:21:05 +0100 Subject: [PATCH 34/62] rename endpoint --- interface/src/constants/Endpoints.js | 2 +- interface/src/containers/ManageUsers.js | 4 ++-- interface/src/containers/SecuritySettings.js | 4 ++-- src/SecurityManager.cpp | 3 +-- src/SecurityManager.h | 2 +- 5 files changed, 7 insertions(+), 8 deletions(-) diff --git a/interface/src/constants/Endpoints.js b/interface/src/constants/Endpoints.js index b3efbfa..e253c16 100644 --- a/interface/src/constants/Endpoints.js +++ b/interface/src/constants/Endpoints.js @@ -12,4 +12,4 @@ export const OTA_SETTINGS_ENDPOINT = ENDPOINT_ROOT + "otaSettings"; export const SYSTEM_STATUS_ENDPOINT = ENDPOINT_ROOT + "systemStatus"; export const SIGN_IN_ENDPOINT = ENDPOINT_ROOT + "signIn"; export const VERIFY_AUTHORIZATION_ENDPOINT = ENDPOINT_ROOT + "verifyAuthorization"; -export const USERS_ENDPOINT = ENDPOINT_ROOT + "users"; +export const SECURITY_SETTINGS_ENDPOINT = ENDPOINT_ROOT + "securitySettings"; diff --git a/interface/src/containers/ManageUsers.js b/interface/src/containers/ManageUsers.js index 3541728..6615054 100644 --- a/interface/src/containers/ManageUsers.js +++ b/interface/src/containers/ManageUsers.js @@ -1,6 +1,6 @@ import React, { Component } from 'react'; -import { USERS_ENDPOINT } from '../constants/Endpoints'; +import { SECURITY_SETTINGS_ENDPOINT } from '../constants/Endpoints'; import { restComponent } from '../components/RestComponent'; import ManageUsersForm from '../forms/ManageUsersForm'; import SectionContent from '../components/SectionContent'; @@ -30,4 +30,4 @@ class ManageUsers extends Component { } -export default restComponent(USERS_ENDPOINT, ManageUsers); +export default restComponent(SECURITY_SETTINGS_ENDPOINT, ManageUsers); diff --git a/interface/src/containers/SecuritySettings.js b/interface/src/containers/SecuritySettings.js index 642c9fb..f6adb11 100644 --- a/interface/src/containers/SecuritySettings.js +++ b/interface/src/containers/SecuritySettings.js @@ -1,6 +1,6 @@ import React, { Component } from 'react'; -import { USERS_ENDPOINT } from '../constants/Endpoints'; +import { SECURITY_SETTINGS_ENDPOINT } from '../constants/Endpoints'; import { restComponent } from '../components/RestComponent'; import SecuritySettingsForm from '../forms/SecuritySettingsForm'; import SectionContent from '../components/SectionContent'; @@ -29,4 +29,4 @@ class SecuritySettings extends Component { } -export default restComponent(USERS_ENDPOINT, SecuritySettings); +export default restComponent(SECURITY_SETTINGS_ENDPOINT, SecuritySettings); diff --git a/src/SecurityManager.cpp b/src/SecurityManager.cpp index 510e2c5..36bd636 100644 --- a/src/SecurityManager.cpp +++ b/src/SecurityManager.cpp @@ -1,6 +1,6 @@ #include -SecurityManager::SecurityManager(AsyncWebServer* server, FS* fs) : SettingsService(server, fs, USERS_PATH, SECURITY_SETTINGS_FILE) {} +SecurityManager::SecurityManager(AsyncWebServer* server, FS* fs) : SettingsService(server, fs, SECURITY_SETTINGS_PATH, SECURITY_SETTINGS_FILE) {} SecurityManager::~SecurityManager() {} void SecurityManager::readFromJsonObject(JsonObject& root) { @@ -33,7 +33,6 @@ void SecurityManager::writeToJsonObject(JsonObject& root) { } void SecurityManager::begin() { - // read config readFromFS(); } diff --git a/src/SecurityManager.h b/src/SecurityManager.h index d3ac577..c289b81 100644 --- a/src/SecurityManager.h +++ b/src/SecurityManager.h @@ -12,7 +12,7 @@ #define SECURITY_SETTINGS_FILE "/config/securitySettings.json" -#define USERS_PATH "/rest/users" +#define SECURITY_SETTINGS_PATH "/rest/securitySettings" #define AUTHORIZATION_HEADER "Authorization" #define AUTHORIZATION_HEADER_PREFIX "Bearer " From 73433586b6426cc5813c12a163cbe7e309b35914 Mon Sep 17 00:00:00 2001 From: Rick Watson Date: Wed, 29 May 2019 23:48:16 +0100 Subject: [PATCH 35/62] add security to all admin endpoints --- .../src/authentication/Authentication.js | 2 +- interface/src/components/RestComponent.js | 88 +++++++------- .../src/containers/WiFiNetworkScanner.js | 5 +- src/APSettingsService.cpp | 2 +- src/APSettingsService.h | 4 +- src/ArduinoJsonJWT.cpp | 6 +- src/ArduinoJsonJWT.h | 2 + src/AsyncAuthJsonWebHandler.h | 52 -------- src/AuthenticationService.cpp | 4 +- src/AuthenticationService.h | 3 + src/NTPSettingsService.cpp | 2 +- src/NTPSettingsService.h | 4 +- src/OTASettingsService.cpp | 2 +- src/OTASettingsService.h | 4 +- src/SecurityManager.cpp | 48 ++------ src/SecurityManager.h | 51 ++++---- src/SecuritySettingsService.cpp | 35 ++++++ src/SecuritySettingsService.h | 26 ++++ src/SettingsService.h | 114 ++++++++++++------ src/WiFiScanner.cpp | 10 +- src/WiFiScanner.h | 3 +- src/WiFiSettingsService.cpp | 2 +- src/WiFiSettingsService.h | 4 +- src/main.cpp | 21 ++-- 24 files changed, 264 insertions(+), 230 deletions(-) delete mode 100644 src/AsyncAuthJsonWebHandler.h create mode 100644 src/SecuritySettingsService.cpp create mode 100644 src/SecuritySettingsService.h diff --git a/interface/src/authentication/Authentication.js b/interface/src/authentication/Authentication.js index d379fb2..2de39e7 100644 --- a/interface/src/authentication/Authentication.js +++ b/interface/src/authentication/Authentication.js @@ -47,7 +47,7 @@ export function redirectingAuthorizedFetch(url, params) { return new Promise(function (resolve, reject) { authorizedFetch(url, params).then(response => { if (response.status === 401) { - history.go("/"); + history.push("/"); } else { resolve(response); } diff --git a/interface/src/components/RestComponent.js b/interface/src/components/RestComponent.js index 4d29d40..288bd35 100644 --- a/interface/src/components/RestComponent.js +++ b/interface/src/components/RestComponent.js @@ -1,6 +1,6 @@ import React from 'react'; -import {withNotifier} from '../components/SnackbarNotification'; - +import { withNotifier } from '../components/SnackbarNotification'; +import { redirectingAuthorizedFetch } from '../authentication/Authentication'; /* * It is unlikely this application will grow complex enough to require redux. * @@ -16,11 +16,11 @@ export const restComponent = (endpointUrl, FormComponent) => { constructor(props) { super(props); - this.state={ - data:null, - fetched: false, - errorMessage:null - }; + this.state = { + data: null, + fetched: false, + errorMessage: null + }; this.setState = this.setState.bind(this); this.loadData = this.loadData.bind(this); @@ -30,78 +30,78 @@ export const restComponent = (endpointUrl, FormComponent) => { setData(data) { this.setState({ - data:data, - fetched: true, - errorMessage:null - }); + data: data, + fetched: true, + errorMessage: null + }); } loadData() { this.setState({ - data:null, - fetched: false, - errorMessage:null - }); - fetch(endpointUrl) + data: null, + fetched: false, + errorMessage: null + }); + redirectingAuthorizedFetch(endpointUrl) .then(response => { if (response.status === 200) { return response.json(); } throw Error("Invalid status code: " + response.status); }) - .then(json => {this.setState({data: json, fetched:true})}) - .catch(error =>{ + .then(json => { this.setState({ data: json, fetched: true }) }) + .catch(error => { this.props.raiseNotification("Problem fetching: " + error.message); - this.setState({data: null, fetched:true, errorMessage:error.message}); + this.setState({ data: null, fetched: true, errorMessage: error.message }); }); } saveData(e) { - this.setState({fetched: false}); - fetch(endpointUrl, { + this.setState({ fetched: false }); + redirectingAuthorizedFetch(endpointUrl, { method: 'POST', body: JSON.stringify(this.state.data), headers: new Headers({ 'Content-Type': 'application/json' }) }) - .then(response => { - if (response.status === 200) { - return response.json(); - } - throw Error("Invalid status code: " + response.status); - }) - .then(json => { - this.props.raiseNotification("Changes successfully applied."); - this.setState({data: json, fetched:true}); - }).catch(error => { - this.props.raiseNotification("Problem saving: " + error.message); - this.setState({data: null, fetched:true, errorMessage:error.message}); - }); + .then(response => { + if (response.status === 200) { + return response.json(); + } + throw Error("Invalid status code: " + response.status); + }) + .then(json => { + this.props.raiseNotification("Changes successfully applied."); + this.setState({ data: json, fetched: true }); + }).catch(error => { + this.props.raiseNotification("Problem saving: " + error.message); + this.setState({ data: null, fetched: true, errorMessage: error.message }); + }); } handleValueChange = name => event => { const { data } = this.state; data[name] = event.target.value; - this.setState({data}); + this.setState({ data }); }; handleCheckboxChange = name => event => { const { data } = this.state; data[name] = event.target.checked; - this.setState({data}); + this.setState({ data }); } render() { return ; + handleValueChange={this.handleValueChange} + handleCheckboxChange={this.handleCheckboxChange} + setData={this.setData} + saveData={this.saveData} + loadData={this.loadData} + {...this.state} + {...this.props} + />; } } diff --git a/interface/src/containers/WiFiNetworkScanner.js b/interface/src/containers/WiFiNetworkScanner.js index e32e222..0f064d5 100644 --- a/interface/src/containers/WiFiNetworkScanner.js +++ b/interface/src/containers/WiFiNetworkScanner.js @@ -5,6 +5,7 @@ import { SCAN_NETWORKS_ENDPOINT, LIST_NETWORKS_ENDPOINT } from '../constants/E import SectionContent from '../components/SectionContent'; import WiFiNetworkSelector from '../forms/WiFiNetworkSelector'; import {withNotifier} from '../components/SnackbarNotification'; +import { redirectingAuthorizedFetch } from '../authentication/Authentication'; const NUM_POLLS = 10 const POLLING_FREQUENCY = 500 @@ -38,7 +39,7 @@ class WiFiNetworkScanner extends Component { scanNetworks() { this.pollCount = 0; this.setState({scanningForNetworks:true, networkList: null, errorMessage:null}); - fetch(SCAN_NETWORKS_ENDPOINT).then(response => { + redirectingAuthorizedFetch(SCAN_NETWORKS_ENDPOINT).then(response => { if (response.status === 202) { this.schedulePollTimeout(); return; @@ -70,7 +71,7 @@ class WiFiNetworkScanner extends Component { } pollNetworkList() { - fetch(LIST_NETWORKS_ENDPOINT) + redirectingAuthorizedFetch(LIST_NETWORKS_ENDPOINT) .then(response => { if (response.status === 200) { return response.json(); diff --git a/src/APSettingsService.cpp b/src/APSettingsService.cpp index 895766d..a5f966d 100644 --- a/src/APSettingsService.cpp +++ b/src/APSettingsService.cpp @@ -1,6 +1,6 @@ #include -APSettingsService::APSettingsService(AsyncWebServer* server, FS* fs) : SettingsService(server, fs, AP_SETTINGS_SERVICE_PATH, AP_SETTINGS_FILE) { +APSettingsService::APSettingsService(AsyncWebServer* server, FS* fs, SecurityManager* securityManager) : AdminSettingsService(server, fs, securityManager, AP_SETTINGS_SERVICE_PATH, AP_SETTINGS_FILE) { onConfigUpdated(); } diff --git a/src/APSettingsService.h b/src/APSettingsService.h index 3fcd2a7..252df7f 100644 --- a/src/APSettingsService.h +++ b/src/APSettingsService.h @@ -19,11 +19,11 @@ #define AP_SETTINGS_FILE "/config/apSettings.json" #define AP_SETTINGS_SERVICE_PATH "/rest/apSettings" -class APSettingsService : public SettingsService { +class APSettingsService : public AdminSettingsService { public: - APSettingsService(AsyncWebServer* server, FS* fs); + APSettingsService(AsyncWebServer* server, FS* fs, SecurityManager* securityManager); ~APSettingsService(); void loop(); diff --git a/src/ArduinoJsonJWT.cpp b/src/ArduinoJsonJWT.cpp index fddfc03..0c945dc 100644 --- a/src/ArduinoJsonJWT.cpp +++ b/src/ArduinoJsonJWT.cpp @@ -3,7 +3,11 @@ ArduinoJsonJWT::ArduinoJsonJWT(String secret) : _secret(secret) { } void ArduinoJsonJWT::setSecret(String secret){ - _secret = secret; + _secret = secret; +} + +String ArduinoJsonJWT::getSecret(){ + return _secret; } /* diff --git a/src/ArduinoJsonJWT.h b/src/ArduinoJsonJWT.h index 829041b..8d29e39 100644 --- a/src/ArduinoJsonJWT.h +++ b/src/ArduinoJsonJWT.h @@ -31,6 +31,8 @@ public: ArduinoJsonJWT(String secret); void setSecret(String secret); + String getSecret(); + String buildJWT(JsonObject &payload); void parseJWT(String jwt, JsonDocument &jsonDocument); }; diff --git a/src/AsyncAuthJsonWebHandler.h b/src/AsyncAuthJsonWebHandler.h deleted file mode 100644 index a767a9a..0000000 --- a/src/AsyncAuthJsonWebHandler.h +++ /dev/null @@ -1,52 +0,0 @@ -#ifndef AsyncAuthJsonWebHandler_H_ -#define AsyncAuthJsonWebHandler_H_ - -#include -#include -#include -#include - -typedef std::function AuthenticationJsonRequestCallback; - -/** - * Extends AsyncJsonWebHandler with a wrapper which verifies the user is authenticated. - * - * TODO - Extend with role checking support, possibly with a callback to verify the user. - */ -class AsyncAuthJsonWebHandler: public AsyncJsonWebHandler { - - private: - SecurityManager *_securityManager; - using AsyncJsonWebHandler::onRequest; - - public: - - AsyncAuthJsonWebHandler() : - AsyncJsonWebHandler(), _securityManager(NULL) {} - - ~AsyncAuthJsonWebHandler() {} - - void setSecurityManager(SecurityManager *securityManager) { - _securityManager = securityManager; - } - - void onRequest(AuthenticationJsonRequestCallback callback) { - AsyncJsonWebHandler::onRequest([this, callback](AsyncWebServerRequest *request, JsonDocument &jsonDocument) { - if(!_securityManager) { - Serial.print("Security manager not configured for endpoint: "); - Serial.println(_uri); - request->send(500); - return; - } - Authentication authentication = _securityManager->authenticateRequest(request); - if (!authentication.isAuthenticated()) { - request->send(401); - return; - } - callback(request, jsonDocument, authentication); - }); - } - -}; - -#endif // end AsyncAuthJsonWebHandler_H_ \ No newline at end of file diff --git a/src/AuthenticationService.cpp b/src/AuthenticationService.cpp index 1a9e321..c67f091 100644 --- a/src/AuthenticationService.cpp +++ b/src/AuthenticationService.cpp @@ -6,7 +6,7 @@ AuthenticationService::AuthenticationService(AsyncWebServer* server, SecurityMan _signInHandler.setUri(SIGN_IN_PATH); _signInHandler.setMethod(HTTP_POST); - _signInHandler.setMaxContentLength(MAX_SECURITY_MANAGER_SETTINGS_SIZE); + _signInHandler.setMaxContentLength(MAX_AUTHENTICATION_SIZE); _signInHandler.onRequest(std::bind(&AuthenticationService::signIn, this, std::placeholders::_1, std::placeholders::_2)); server->addHandler(&_signInHandler); } @@ -31,7 +31,7 @@ void AuthenticationService::signIn(AsyncWebServerRequest *request, JsonDocument Authentication authentication = _securityManager->authenticate(username, password); if (authentication.isAuthenticated()) { User* user = authentication.getUser(); - AsyncJsonResponse * response = new AsyncJsonResponse(MAX_USERS_SIZE); + AsyncJsonResponse * response = new AsyncJsonResponse(MAX_AUTHENTICATION_SIZE); JsonObject jsonObject = response->getRoot(); jsonObject["access_token"] = _securityManager->generateJWT(user); response->setLength(); diff --git a/src/AuthenticationService.h b/src/AuthenticationService.h index 71d44f9..15d2941 100644 --- a/src/AuthenticationService.h +++ b/src/AuthenticationService.h @@ -2,6 +2,9 @@ #define AuthenticationService_H_ #include +#include +#include +#include #define VERIFY_AUTHORIZATION_PATH "/rest/verifyAuthorization" #define SIGN_IN_PATH "/rest/signIn" diff --git a/src/NTPSettingsService.cpp b/src/NTPSettingsService.cpp index 99962a2..b09e025 100644 --- a/src/NTPSettingsService.cpp +++ b/src/NTPSettingsService.cpp @@ -1,6 +1,6 @@ #include -NTPSettingsService::NTPSettingsService(AsyncWebServer* server, FS* fs) : SettingsService(server, fs, NTP_SETTINGS_SERVICE_PATH, NTP_SETTINGS_FILE) { +NTPSettingsService::NTPSettingsService(AsyncWebServer* server, FS* fs, SecurityManager* securityManager) : AdminSettingsService(server, fs, securityManager, NTP_SETTINGS_SERVICE_PATH, NTP_SETTINGS_FILE) { #if defined(ESP8266) _onStationModeDisconnectedHandler = WiFi.onStationModeDisconnected(std::bind(&NTPSettingsService::onStationModeDisconnected, this, std::placeholders::_1)); diff --git a/src/NTPSettingsService.h b/src/NTPSettingsService.h index c3624e7..e24f237 100644 --- a/src/NTPSettingsService.h +++ b/src/NTPSettingsService.h @@ -17,11 +17,11 @@ #define NTP_SETTINGS_FILE "/config/ntpSettings.json" #define NTP_SETTINGS_SERVICE_PATH "/rest/ntpSettings" -class NTPSettingsService : public SettingsService { +class NTPSettingsService : public AdminSettingsService { public: - NTPSettingsService(AsyncWebServer* server, FS* fs); + NTPSettingsService(AsyncWebServer* server, FS* fs, SecurityManager* securityManager); ~NTPSettingsService(); void loop(); diff --git a/src/OTASettingsService.cpp b/src/OTASettingsService.cpp index 64e98c2..2c9490a 100644 --- a/src/OTASettingsService.cpp +++ b/src/OTASettingsService.cpp @@ -1,6 +1,6 @@ #include -OTASettingsService::OTASettingsService(AsyncWebServer* server, FS* fs) : SettingsService(server, fs, OTA_SETTINGS_SERVICE_PATH, OTA_SETTINGS_FILE) { +OTASettingsService::OTASettingsService(AsyncWebServer* server, FS* fs, SecurityManager* securityManager) : AdminSettingsService(server, fs, securityManager, OTA_SETTINGS_SERVICE_PATH, OTA_SETTINGS_FILE) { #if defined(ESP8266) _onStationModeGotIPHandler = WiFi.onStationModeGotIP(std::bind(&OTASettingsService::onStationModeGotIP, this, std::placeholders::_1)); #elif defined(ESP_PLATFORM) diff --git a/src/OTASettingsService.h b/src/OTASettingsService.h index 32e76ed..27993a8 100644 --- a/src/OTASettingsService.h +++ b/src/OTASettingsService.h @@ -19,11 +19,11 @@ #define OTA_SETTINGS_FILE "/config/otaSettings.json" #define OTA_SETTINGS_SERVICE_PATH "/rest/otaSettings" -class OTASettingsService : public SettingsService { +class OTASettingsService : public AdminSettingsService { public: - OTASettingsService(AsyncWebServer* server, FS* fs); + OTASettingsService(AsyncWebServer* server, FS* fs, SecurityManager* securityManager); ~OTASettingsService(); void loop(); diff --git a/src/SecurityManager.cpp b/src/SecurityManager.cpp index 36bd636..e973d0d 100644 --- a/src/SecurityManager.cpp +++ b/src/SecurityManager.cpp @@ -1,41 +1,5 @@ #include -SecurityManager::SecurityManager(AsyncWebServer* server, FS* fs) : SettingsService(server, fs, SECURITY_SETTINGS_PATH, SECURITY_SETTINGS_FILE) {} -SecurityManager::~SecurityManager() {} - -void SecurityManager::readFromJsonObject(JsonObject& root) { - // secret - _jwtSecret = root["jwt_secret"] | DEFAULT_JWT_SECRET; - _jwtHandler.setSecret(_jwtSecret); - - // users - _users.clear(); - if (root["users"].is()) { - for (JsonVariant user : root["users"].as()) { - _users.push_back(User(user["username"], user["password"], user["admin"])); - } - } -} - - -void SecurityManager::writeToJsonObject(JsonObject& root) { - // secret - root["jwt_secret"] = _jwtSecret; - - // users - JsonArray users = root.createNestedArray("users"); - for (User _user : _users) { - JsonObject user = users.createNestedObject(); - user["username"] = _user.getUsername(); - user["password"] = _user.getPassword(); - user["admin"] = _user.isAdmin(); - } -} - -void SecurityManager::begin() { - readFromFS(); -} - Authentication SecurityManager::authenticateRequest(AsyncWebServerRequest *request) { AsyncWebHeader* authorizationHeader = request->getHeader(AUTHORIZATION_HEADER); if (authorizationHeader) { @@ -90,3 +54,15 @@ String SecurityManager::generateJWT(User *user) { populateJWTPayload(payload, user); return _jwtHandler.buildJWT(payload); } + +ArRequestHandlerFunction SecurityManager::wrapRequest(ArRequestHandlerFunction onRequest, AuthenticationPredicate predicate) { + return [this, onRequest, predicate](AsyncWebServerRequest *request){ + Authentication authentication = authenticateRequest(request); + if (!predicate(authentication)) { + request->send(401); + return; + } + onRequest(request); + }; +} + \ No newline at end of file diff --git a/src/SecurityManager.h b/src/SecurityManager.h index c289b81..0b35fb9 100644 --- a/src/SecurityManager.h +++ b/src/SecurityManager.h @@ -2,27 +2,16 @@ #define SecurityManager_h #include - -#include -#include -#include #include +#include #define DEFAULT_JWT_SECRET "esp8266-react" -#define SECURITY_SETTINGS_FILE "/config/securitySettings.json" - -#define SECURITY_SETTINGS_PATH "/rest/securitySettings" - #define AUTHORIZATION_HEADER "Authorization" #define AUTHORIZATION_HEADER_PREFIX "Bearer " #define AUTHORIZATION_HEADER_PREFIX_LEN 7 #define MAX_JWT_SIZE 128 -#define MAX_SECURITY_MANAGER_SETTINGS_SIZE 512 -#define SECURITY_MANAGER_MAX_USERS 5 - -#define MAX_USERS_SIZE 1024 class User { private: @@ -62,15 +51,25 @@ class Authentication { } }; -class SecurityManager : public SettingsService { +typedef std::function AuthenticationPredicate; + +class AuthenticationPredicates { + public: + static bool NONE_REQUIRED(Authentication &authentication) { + return true; + }; + static bool IS_AUTHENTICATED(Authentication &authentication) { + return authentication.isAuthenticated(); + }; + static bool IS_ADMIN(Authentication &authentication) { + return authentication.isAuthenticated() && authentication.getUser()->isAdmin(); + }; +}; + +class SecurityManager { public: - SecurityManager(AsyncWebServer* server, FS* fs); - ~SecurityManager(); - - void begin(); - /* * Authenticate, returning the user if found */ @@ -86,21 +85,17 @@ class SecurityManager : public SettingsService { */ String generateJWT(User *user); + /** + * Wrap the provided request to provide validation against an AuthenticationPredicate. + */ + ArRequestHandlerFunction wrapRequest(ArRequestHandlerFunction onRequest, AuthenticationPredicate predicate); + protected: - void readFromJsonObject(JsonObject& root); - void writeToJsonObject(JsonObject& root); - - private: - // jwt handler ArduinoJsonJWT _jwtHandler = ArduinoJsonJWT(DEFAULT_JWT_SECRET); - - // access point settings - String _jwtSecret; std::list _users; - // endpoint functions - void fetchUsers(AsyncWebServerRequest *request); + private: /* * Lookup the user by JWT diff --git a/src/SecuritySettingsService.cpp b/src/SecuritySettingsService.cpp new file mode 100644 index 0000000..51c355d --- /dev/null +++ b/src/SecuritySettingsService.cpp @@ -0,0 +1,35 @@ +#include + +SecuritySettingsService::SecuritySettingsService(AsyncWebServer* server, FS* fs) : AdminSettingsService(server, fs, this, SECURITY_SETTINGS_PATH, SECURITY_SETTINGS_FILE), SecurityManager() {} +SecuritySettingsService::~SecuritySettingsService() {} + +void SecuritySettingsService::readFromJsonObject(JsonObject& root) { + // secret + _jwtHandler.setSecret(root["jwt_secret"] | DEFAULT_JWT_SECRET); + + // users + _users.clear(); + if (root["users"].is()) { + for (JsonVariant user : root["users"].as()) { + _users.push_back(User(user["username"], user["password"], user["admin"])); + } + } +} + +void SecuritySettingsService::writeToJsonObject(JsonObject& root) { + // secret + root["jwt_secret"] = _jwtHandler.getSecret(); + + // users + JsonArray users = root.createNestedArray("users"); + for (User _user : _users) { + JsonObject user = users.createNestedObject(); + user["username"] = _user.getUsername(); + user["password"] = _user.getPassword(); + user["admin"] = _user.isAdmin(); + } +} + +void SecuritySettingsService::begin() { + readFromFS(); +} diff --git a/src/SecuritySettingsService.h b/src/SecuritySettingsService.h new file mode 100644 index 0000000..7e5b622 --- /dev/null +++ b/src/SecuritySettingsService.h @@ -0,0 +1,26 @@ +#ifndef SecuritySettingsService_h +#define SecuritySettingsService_h + +#include +#include + +#define SECURITY_SETTINGS_FILE "/config/securitySettings.json" +#define SECURITY_SETTINGS_PATH "/rest/securitySettings" + +class SecuritySettingsService : public AdminSettingsService, public SecurityManager { + + public: + + SecuritySettingsService(AsyncWebServer* server, FS* fs); + ~SecuritySettingsService(); + + void begin(); + + protected: + + void readFromJsonObject(JsonObject& root); + void writeToJsonObject(JsonObject& root); + +}; + +#endif // end SecuritySettingsService_h \ No newline at end of file diff --git a/src/SettingsService.h b/src/SettingsService.h index 5d7cab0..ecf0d6a 100644 --- a/src/SettingsService.h +++ b/src/SettingsService.h @@ -9,54 +9,19 @@ #include #endif +#include #include #include #include #include #include + /* * Abstraction of a service which stores it's settings as JSON in a file system. */ class SettingsService : public SettingsPersistence { -private: - - AsyncJsonWebHandler _updateHandler; - - void fetchConfig(AsyncWebServerRequest *request){ - AsyncJsonResponse * response = new AsyncJsonResponse(MAX_SETTINGS_SIZE); - JsonObject jsonObject = response->getRoot(); - writeToJsonObject(jsonObject); - response->setLength(); - request->send(response); - } - - void updateConfig(AsyncWebServerRequest *request, JsonDocument &jsonDocument) { - if (jsonDocument.is()){ - JsonObject newConfig = jsonDocument.as(); - readFromJsonObject(newConfig); - writeToFS(); - - // write settings back with a callback to reconfigure the wifi - AsyncJsonCallbackResponse * response = new AsyncJsonCallbackResponse([this] () {onConfigUpdated();}, MAX_SETTINGS_SIZE); - JsonObject jsonObject = response->getRoot(); - writeToJsonObject(jsonObject); - response->setLength(); - request->send(response); - } else { - request->send(400); - } - } - - protected: - - // will serve setting endpoints from here - AsyncWebServer* _server; - - // implement to perform action when config has been updated - virtual void onConfigUpdated(){} - public: SettingsService(AsyncWebServer* server, FS* fs, char const* servicePath, char const* filePath): @@ -79,6 +44,81 @@ private: readFromFS(); } +protected: + // will serve setting endpoints from here + AsyncWebServer* _server; + + AsyncJsonWebHandler _updateHandler; + + virtual void fetchConfig(AsyncWebServerRequest *request) { + // handle the request + AsyncJsonResponse * response = new AsyncJsonResponse(MAX_SETTINGS_SIZE); + JsonObject jsonObject = response->getRoot(); + writeToJsonObject(jsonObject); + response->setLength(); + request->send(response); + } + + virtual void updateConfig(AsyncWebServerRequest *request, JsonDocument &jsonDocument) { + // handle the request + if (jsonDocument.is()){ + JsonObject newConfig = jsonDocument.as(); + readFromJsonObject(newConfig); + writeToFS(); + + // write settings back with a callback to reconfigure the wifi + AsyncJsonCallbackResponse * response = new AsyncJsonCallbackResponse([this] () {onConfigUpdated();}, MAX_SETTINGS_SIZE); + JsonObject jsonObject = response->getRoot(); + writeToJsonObject(jsonObject); + response->setLength(); + request->send(response); + } else { + request->send(400); + } + } + + // implement to perform action when config has been updated + virtual void onConfigUpdated(){} + +}; + +class AdminSettingsService : public SettingsService { + public: + AdminSettingsService(AsyncWebServer* server, FS* fs, SecurityManager* securityManager, char const* servicePath, char const* filePath): + SettingsService(server, fs, servicePath, filePath), _securityManager(securityManager) { + } + + protected: + // will validate the requests with the security manager + SecurityManager* _securityManager; + + void fetchConfig(AsyncWebServerRequest *request) { + // verify the request against the predicate + Authentication authentication = _securityManager->authenticateRequest(request); + if (!getAuthenticationPredicate()(authentication)) { + request->send(401); + return; + } + // delegate to underlying implemetation + SettingsService::fetchConfig(request); + } + + void updateConfig(AsyncWebServerRequest *request, JsonDocument &jsonDocument) { + // verify the request against the predicate + Authentication authentication = _securityManager->authenticateRequest(request); + if (!getAuthenticationPredicate()(authentication)) { + request->send(401); + return; + } + // delegate to underlying implemetation + SettingsService::updateConfig(request, jsonDocument); + } + + // override to override the default authentication predicate, IS_ADMIN + AuthenticationPredicate getAuthenticationPredicate() { + return AuthenticationPredicates::IS_ADMIN; + } + }; #endif // end SettingsService diff --git a/src/WiFiScanner.cpp b/src/WiFiScanner.cpp index 7bf1591..e3277a5 100644 --- a/src/WiFiScanner.cpp +++ b/src/WiFiScanner.cpp @@ -1,8 +1,12 @@ #include -WiFiScanner::WiFiScanner(AsyncWebServer *server) : _server(server) { - _server->on(SCAN_NETWORKS_SERVICE_PATH, HTTP_GET, std::bind(&WiFiScanner::scanNetworks, this, std::placeholders::_1)); - _server->on(LIST_NETWORKS_SERVICE_PATH, HTTP_GET, std::bind(&WiFiScanner::listNetworks, this, std::placeholders::_1)); +WiFiScanner::WiFiScanner(AsyncWebServer *server, SecurityManager* securityManager) : _server(server) { + _server->on(SCAN_NETWORKS_SERVICE_PATH, HTTP_GET, + securityManager->wrapRequest(std::bind(&WiFiScanner::scanNetworks, this, std::placeholders::_1), AuthenticationPredicates::IS_ADMIN) + ); + _server->on(LIST_NETWORKS_SERVICE_PATH, HTTP_GET, + securityManager->wrapRequest(std::bind(&WiFiScanner::listNetworks, this, std::placeholders::_1), AuthenticationPredicates::IS_ADMIN) + ); } void WiFiScanner::scanNetworks(AsyncWebServerRequest *request) { diff --git a/src/WiFiScanner.h b/src/WiFiScanner.h index 10c4d7a..ca14db0 100644 --- a/src/WiFiScanner.h +++ b/src/WiFiScanner.h @@ -13,6 +13,7 @@ #include #include #include +#include #define SCAN_NETWORKS_SERVICE_PATH "/rest/scanNetworks" #define LIST_NETWORKS_SERVICE_PATH "/rest/listNetworks" @@ -23,7 +24,7 @@ class WiFiScanner { public: - WiFiScanner(AsyncWebServer *server); + WiFiScanner(AsyncWebServer *server, SecurityManager* securityManager); private: diff --git a/src/WiFiSettingsService.cpp b/src/WiFiSettingsService.cpp index 2f65d5e..9e6c5c2 100644 --- a/src/WiFiSettingsService.cpp +++ b/src/WiFiSettingsService.cpp @@ -1,6 +1,6 @@ #include -WiFiSettingsService::WiFiSettingsService(AsyncWebServer* server, FS* fs) : SettingsService(server, fs, WIFI_SETTINGS_SERVICE_PATH, WIFI_SETTINGS_FILE) {} +WiFiSettingsService::WiFiSettingsService(AsyncWebServer* server, FS* fs, SecurityManager* securityManager) : AdminSettingsService(server, fs, securityManager, WIFI_SETTINGS_SERVICE_PATH, WIFI_SETTINGS_FILE) {} WiFiSettingsService::~WiFiSettingsService() {} diff --git a/src/WiFiSettingsService.h b/src/WiFiSettingsService.h index 18949c6..1675471 100644 --- a/src/WiFiSettingsService.h +++ b/src/WiFiSettingsService.h @@ -7,11 +7,11 @@ #define WIFI_SETTINGS_FILE "/config/wifiSettings.json" #define WIFI_SETTINGS_SERVICE_PATH "/rest/wifiSettings" -class WiFiSettingsService : public SettingsService { +class WiFiSettingsService : public AdminSettingsService { public: - WiFiSettingsService(AsyncWebServer* server, FS* fs); + WiFiSettingsService(AsyncWebServer* server, FS* fs, SecurityManager* securityManager); ~WiFiSettingsService(); void begin(); diff --git a/src/main.cpp b/src/main.cpp index 694fde9..9bfbe87 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -11,7 +11,7 @@ #include -#include +#include #include #include #include @@ -27,15 +27,14 @@ AsyncWebServer server(80); -SecurityManager securityManager = SecurityManager(&server, &SPIFFS); +SecuritySettingsService securitySettingsService = SecuritySettingsService(&server, &SPIFFS); +WiFiSettingsService wifiSettingsService = WiFiSettingsService(&server, &SPIFFS, &securitySettingsService); +APSettingsService apSettingsService = APSettingsService(&server, &SPIFFS, &securitySettingsService); +NTPSettingsService ntpSettingsService = NTPSettingsService(&server, &SPIFFS, &securitySettingsService); +OTASettingsService otaSettingsService = OTASettingsService(&server, &SPIFFS, &securitySettingsService); +AuthenticationService authenticationService = AuthenticationService(&server, &securitySettingsService); -WiFiSettingsService wifiSettingsService = WiFiSettingsService(&server, &SPIFFS); -APSettingsService apSettingsService = APSettingsService(&server, &SPIFFS); -NTPSettingsService ntpSettingsService = NTPSettingsService(&server, &SPIFFS); -OTASettingsService otaSettingsService = OTASettingsService(&server, &SPIFFS); -AuthenticationService authenticationService = AuthenticationService(&server, &securityManager); - -WiFiScanner wifiScanner = WiFiScanner(&server); +WiFiScanner wifiScanner = WiFiScanner(&server, &securitySettingsService); WiFiStatus wifiStatus = WiFiStatus(&server); NTPStatus ntpStatus = NTPStatus(&server); APStatus apStatus = APStatus(&server); @@ -48,8 +47,8 @@ void setup() { Serial.begin(SERIAL_BAUD_RATE); SPIFFS.begin(); - // start security manager - securityManager.begin(); + // start security settings service first + securitySettingsService.begin(); // start services ntpSettingsService.begin(); From 3009e120a6a84ccb8cf2befbab691cec9e4b698c Mon Sep 17 00:00:00 2001 From: Rick Watson Date: Wed, 29 May 2019 23:59:57 +0100 Subject: [PATCH 36/62] fix ui --- interface/src/components/RestComponent.js | 4 ++-- interface/src/containers/WiFiNetworkScanner.js | 1 - 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/interface/src/components/RestComponent.js b/interface/src/components/RestComponent.js index 288bd35..3edfe1d 100644 --- a/interface/src/components/RestComponent.js +++ b/interface/src/components/RestComponent.js @@ -61,9 +61,9 @@ export const restComponent = (endpointUrl, FormComponent) => { redirectingAuthorizedFetch(endpointUrl, { method: 'POST', body: JSON.stringify(this.state.data), - headers: new Headers({ + headers: { 'Content-Type': 'application/json' - }) + } }) .then(response => { if (response.status === 200) { diff --git a/interface/src/containers/WiFiNetworkScanner.js b/interface/src/containers/WiFiNetworkScanner.js index 0f064d5..fccfbc6 100644 --- a/interface/src/containers/WiFiNetworkScanner.js +++ b/interface/src/containers/WiFiNetworkScanner.js @@ -91,7 +91,6 @@ class WiFiNetworkScanner extends Component { this.setState({scanningForNetworks:false, networkList: json, errorMessage:null}) }) .catch(error => { - console.log(error.message); if (error.name !== RETRY_EXCEPTION_TYPE) { this.props.raiseNotification("Problem scanning: " + error.message); this.setState({scanningForNetworks:false, networkList: null, errorMessage:error.message}); From 0708a54780d20d2f1e125e6750f6dcb16e28a5f3 Mon Sep 17 00:00:00 2001 From: Rick Watson Date: Fri, 31 May 2019 19:58:33 +0100 Subject: [PATCH 37/62] secure remaining endpoints to authenticated users --- src/APStatus.cpp | 6 ++++-- src/APStatus.h | 4 +++- src/NTPStatus.cpp | 6 ++++-- src/NTPStatus.h | 4 +++- src/SystemStatus.cpp | 6 ++++-- src/SystemStatus.h | 4 +++- src/WiFiStatus.cpp | 6 ++++-- src/WiFiStatus.h | 4 +++- src/main.cpp | 8 ++++---- 9 files changed, 32 insertions(+), 16 deletions(-) diff --git a/src/APStatus.cpp b/src/APStatus.cpp index 35a7b4f..d11cb4d 100644 --- a/src/APStatus.cpp +++ b/src/APStatus.cpp @@ -1,7 +1,9 @@ #include -APStatus::APStatus(AsyncWebServer *server) : _server(server) { - _server->on(AP_STATUS_SERVICE_PATH, HTTP_GET, std::bind(&APStatus::apStatus, this, std::placeholders::_1)); +APStatus::APStatus(AsyncWebServer *server, SecurityManager* securityManager) : _server(server), _securityManager(securityManager) { + _server->on(AP_STATUS_SERVICE_PATH, HTTP_GET, + _securityManager->wrapRequest(std::bind(&APStatus::apStatus, this, std::placeholders::_1), AuthenticationPredicates::IS_AUTHENTICATED) + ); } void APStatus::apStatus(AsyncWebServerRequest *request) { diff --git a/src/APStatus.h b/src/APStatus.h index 8c32fc8..0b69a43 100644 --- a/src/APStatus.h +++ b/src/APStatus.h @@ -13,6 +13,7 @@ #include #include #include +#include #define MAX_AP_STATUS_SIZE 1024 #define AP_STATUS_SERVICE_PATH "/rest/apStatus" @@ -21,11 +22,12 @@ class APStatus { public: - APStatus(AsyncWebServer *server); + APStatus(AsyncWebServer *server, SecurityManager* securityManager); private: AsyncWebServer* _server; + SecurityManager* _securityManager; void apStatus(AsyncWebServerRequest *request); diff --git a/src/NTPStatus.cpp b/src/NTPStatus.cpp index 50dbc37..21ac627 100644 --- a/src/NTPStatus.cpp +++ b/src/NTPStatus.cpp @@ -1,7 +1,9 @@ #include -NTPStatus::NTPStatus(AsyncWebServer *server) : _server(server) { - _server->on(NTP_STATUS_SERVICE_PATH, HTTP_GET, std::bind(&NTPStatus::ntpStatus, this, std::placeholders::_1)); +NTPStatus::NTPStatus(AsyncWebServer *server, SecurityManager* securityManager) : _server(server), _securityManager(securityManager) { + _server->on(NTP_STATUS_SERVICE_PATH, HTTP_GET, + _securityManager->wrapRequest(std::bind(&NTPStatus::ntpStatus, this, std::placeholders::_1), AuthenticationPredicates::IS_AUTHENTICATED) + ); } void NTPStatus::ntpStatus(AsyncWebServerRequest *request) { diff --git a/src/NTPStatus.h b/src/NTPStatus.h index 086407f..82c00fa 100644 --- a/src/NTPStatus.h +++ b/src/NTPStatus.h @@ -14,6 +14,7 @@ #include #include #include +#include #define MAX_NTP_STATUS_SIZE 1024 #define NTP_STATUS_SERVICE_PATH "/rest/ntpStatus" @@ -22,11 +23,12 @@ class NTPStatus { public: - NTPStatus(AsyncWebServer *server); + NTPStatus(AsyncWebServer *server, SecurityManager* securityManager); private: AsyncWebServer* _server; + SecurityManager* _securityManager; void ntpStatus(AsyncWebServerRequest *request); diff --git a/src/SystemStatus.cpp b/src/SystemStatus.cpp index de99a3d..a529c4a 100644 --- a/src/SystemStatus.cpp +++ b/src/SystemStatus.cpp @@ -1,7 +1,9 @@ #include - SystemStatus::SystemStatus(AsyncWebServer *server) : _server(server) { - _server->on(SYSTEM_STATUS_SERVICE_PATH, HTTP_GET, std::bind(&SystemStatus::systemStatus, this, std::placeholders::_1)); + SystemStatus::SystemStatus(AsyncWebServer *server, SecurityManager* securityManager) : _server(server), _securityManager(securityManager) { + _server->on(SYSTEM_STATUS_SERVICE_PATH, HTTP_GET, + _securityManager->wrapRequest(std::bind(&SystemStatus::systemStatus, this, std::placeholders::_1), AuthenticationPredicates::IS_AUTHENTICATED) + ); } void SystemStatus::systemStatus(AsyncWebServerRequest *request) { diff --git a/src/SystemStatus.h b/src/SystemStatus.h index 2ae4f90..4556ea8 100644 --- a/src/SystemStatus.h +++ b/src/SystemStatus.h @@ -12,6 +12,7 @@ #include #include #include +#include #define MAX_ESP_STATUS_SIZE 1024 #define SYSTEM_STATUS_SERVICE_PATH "/rest/systemStatus" @@ -20,11 +21,12 @@ class SystemStatus { public: - SystemStatus(AsyncWebServer *server); + SystemStatus(AsyncWebServer *server, SecurityManager* securityManager); private: AsyncWebServer* _server; + SecurityManager* _securityManager; void systemStatus(AsyncWebServerRequest *request); diff --git a/src/WiFiStatus.cpp b/src/WiFiStatus.cpp index 5f27c38..3e6273c 100644 --- a/src/WiFiStatus.cpp +++ b/src/WiFiStatus.cpp @@ -1,7 +1,9 @@ #include -WiFiStatus::WiFiStatus(AsyncWebServer *server) : _server(server) { - _server->on(WIFI_STATUS_SERVICE_PATH, HTTP_GET, std::bind(&WiFiStatus::wifiStatus, this, std::placeholders::_1)); +WiFiStatus::WiFiStatus(AsyncWebServer *server, SecurityManager* securityManager) : _server(server), _securityManager(securityManager) { + _server->on(WIFI_STATUS_SERVICE_PATH, HTTP_GET, + _securityManager->wrapRequest(std::bind(&WiFiStatus::wifiStatus, this, std::placeholders::_1), AuthenticationPredicates::IS_AUTHENTICATED) + ); #if defined(ESP8266) _onStationModeConnectedHandler = WiFi.onStationModeConnected(onStationModeConnected); _onStationModeDisconnectedHandler = WiFi.onStationModeDisconnected(onStationModeDisconnected); diff --git a/src/WiFiStatus.h b/src/WiFiStatus.h index dca96d8..d2372a6 100644 --- a/src/WiFiStatus.h +++ b/src/WiFiStatus.h @@ -13,6 +13,7 @@ #include #include #include +#include #define MAX_WIFI_STATUS_SIZE 1024 #define WIFI_STATUS_SERVICE_PATH "/rest/wifiStatus" @@ -21,11 +22,12 @@ class WiFiStatus { public: - WiFiStatus(AsyncWebServer *server); + WiFiStatus(AsyncWebServer *server, SecurityManager* securityManager); private: AsyncWebServer* _server; + SecurityManager* _securityManager; #if defined(ESP8266) // handler refrences for logging important WiFi events over serial diff --git a/src/main.cpp b/src/main.cpp index 9bfbe87..d3256fb 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -35,10 +35,10 @@ OTASettingsService otaSettingsService = OTASettingsService(&server, &SPIFFS, &se AuthenticationService authenticationService = AuthenticationService(&server, &securitySettingsService); WiFiScanner wifiScanner = WiFiScanner(&server, &securitySettingsService); -WiFiStatus wifiStatus = WiFiStatus(&server); -NTPStatus ntpStatus = NTPStatus(&server); -APStatus apStatus = APStatus(&server); -SystemStatus systemStatus = SystemStatus(&server); +WiFiStatus wifiStatus = WiFiStatus(&server, &securitySettingsService); +NTPStatus ntpStatus = NTPStatus(&server, &securitySettingsService); +APStatus apStatus = APStatus(&server, &securitySettingsService); +SystemStatus systemStatus = SystemStatus(&server, &securitySettingsService);; void setup() { // Disable wifi config persistance From d5efbe4b18a6d46b8ce975958692c4d1610624ff Mon Sep 17 00:00:00 2001 From: Rick Watson Date: Fri, 31 May 2019 20:12:04 +0100 Subject: [PATCH 38/62] remove redundant label from auth panel --- interface/src/components/MenuAppBar.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/interface/src/components/MenuAppBar.js b/interface/src/components/MenuAppBar.js index 2fb2952..2678d42 100644 --- a/interface/src/components/MenuAppBar.js +++ b/interface/src/components/MenuAppBar.js @@ -189,7 +189,7 @@ class MenuAppBar extends React.Component { - + From 22d922c6991ce0a46b043d2edc9c4efd3ccdb112 Mon Sep 17 00:00:00 2001 From: Rick Watson Date: Fri, 31 May 2019 20:55:06 +0100 Subject: [PATCH 39/62] rename jwt to user in authentication context, in prepartion for filtering display by user level --- .../src/authentication/AuthenticatedRoute.js | 2 +- .../authentication/AuthenticationWrapper.js | 36 +++++++++++-------- .../authentication/UnauthenticatedRoute.js | 4 +-- interface/src/components/MenuAppBar.js | 2 +- 4 files changed, 26 insertions(+), 18 deletions(-) diff --git a/interface/src/authentication/AuthenticatedRoute.js b/interface/src/authentication/AuthenticatedRoute.js index 231eead..8461bad 100644 --- a/interface/src/authentication/AuthenticatedRoute.js +++ b/interface/src/authentication/AuthenticatedRoute.js @@ -13,7 +13,7 @@ export class AuthenticatedRoute extends React.Component { const { raiseNotification, authenticationContext, component: Component, ...rest } = this.props; const { location } = this.props; const renderComponent = (props) => { - if (authenticationContext.jwt) { + if (authenticationContext.isAuthenticated()) { return ( ); diff --git a/interface/src/authentication/AuthenticationWrapper.js b/interface/src/authentication/AuthenticationWrapper.js index 81b3fa0..258ae8e 100644 --- a/interface/src/authentication/AuthenticationWrapper.js +++ b/interface/src/authentication/AuthenticationWrapper.js @@ -27,14 +27,13 @@ class AuthenticationWrapper extends React.Component { constructor(props) { super(props); - this.refresh = this.refresh.bind(this); - this.signIn = this.signIn.bind(this); - this.signOut = this.signOut.bind(this); this.state = { context: { refresh: this.refresh, signIn: this.signIn, - signOut: this.signOut + signOut: this.signOut, + isAuthenticated: this.isAuthenticated, + isAdmin: this.isAdmin }, initialized: false }; @@ -72,44 +71,53 @@ class AuthenticationWrapper extends React.Component { ); } - refresh() { + refresh = () => { var accessToken = localStorage.getItem(ACCESS_TOKEN); if (accessToken) { authorizedFetch(VERIFY_AUTHORIZATION_ENDPOINT) .then(response => { - const jwt = response.status === 200 ? jwtDecode(accessToken) : undefined; - this.setState({ initialized: true, context: { ...this.state.context, jwt } }); + const user = response.status === 200 ? jwtDecode(accessToken) : undefined; + this.setState({ initialized: true, context: { ...this.state.context, user } }); }).catch(error => { - this.setState({ initialized: true, context: { ...this.state.context, jwt: undefined } }); + this.setState({ initialized: true, context: { ...this.state.context, user: undefined } }); this.props.raiseNotification("Error verifying authorization: " + error.message); }); } else { - this.setState({ initialized: true, context: { ...this.state.context, jwt: undefined } }); + this.setState({ initialized: true, context: { ...this.state.context, user: undefined } }); } } - signIn(accessToken) { + signIn = (accessToken) => { try { - this.setState({ context: { ...this.state.context, jwt: jwtDecode(accessToken) } }); + this.setState({ context: { ...this.state.context, user: jwtDecode(accessToken) } }); localStorage.setItem(ACCESS_TOKEN, accessToken); } catch (err) { - this.setState({ initialized: true, context: { ...this.state.context, jwt: undefined } }); + this.setState({ initialized: true, context: { ...this.state.context, user: undefined } }); this.props.raiseNotification("Failed to parse JWT " + err.message); } } - signOut() { + signOut = () => { localStorage.removeItem(ACCESS_TOKEN); this.setState({ context: { ...this.state.context, - jwt: undefined + user: undefined } }); this.props.raiseNotification("You have signed out."); history.push('/'); } + isAuthenticated = () => { + return this.state.context.user; + } + + isAdmin = () => { + const { context } = this.state; + return context.user && context.user.admin; + } + } export default withStyles(styles)(withNotifier(AuthenticationWrapper)) diff --git a/interface/src/authentication/UnauthenticatedRoute.js b/interface/src/authentication/UnauthenticatedRoute.js index 28fbbd6..321cdd2 100644 --- a/interface/src/authentication/UnauthenticatedRoute.js +++ b/interface/src/authentication/UnauthenticatedRoute.js @@ -8,9 +8,9 @@ import * as Authentication from './Authentication'; class UnauthenticatedRoute extends React.Component { render() { - const { component:Component, ...rest } = this.props; + const { authenticationContext, component:Component, ...rest } = this.props; const renderComponent = (props) => { - if (this.props.authenticationContext.jwt) { + if (authenticationContext.isAuthenticated()) { return (); } return (); diff --git a/interface/src/components/MenuAppBar.js b/interface/src/components/MenuAppBar.js index 2678d42..593cd49 100644 --- a/interface/src/components/MenuAppBar.js +++ b/interface/src/components/MenuAppBar.js @@ -189,7 +189,7 @@ class MenuAppBar extends React.Component { - + From d7d33a50c81da7354eeeaea52876049b4cdd72a2 Mon Sep 17 00:00:00 2001 From: Rick Watson Date: Fri, 31 May 2019 21:33:12 +0100 Subject: [PATCH 40/62] disable buttons which are not accessable when non-admin user is authenticated --- interface/src/components/MenuAppBar.js | 14 +++++++------- interface/src/sections/AccessPoint.js | 8 +++++--- interface/src/sections/NetworkTime.js | 6 ++++-- interface/src/sections/System.js | 6 ++++-- interface/src/sections/WiFiConnection.js | 8 +++++--- 5 files changed, 25 insertions(+), 17 deletions(-) diff --git a/interface/src/components/MenuAppBar.js b/interface/src/components/MenuAppBar.js index 593cd49..f3f0f15 100644 --- a/interface/src/components/MenuAppBar.js +++ b/interface/src/components/MenuAppBar.js @@ -74,7 +74,7 @@ const styles = theme => ({ }, authMenuActions: { padding: theme.spacing(2), - "& > * + *" :{ + "& > * + *": { marginLeft: theme.spacing(2), } }, @@ -118,31 +118,31 @@ class MenuAppBar extends React.Component { - + - + - + - + - + @@ -189,7 +189,7 @@ class MenuAppBar extends React.Component { - + diff --git a/interface/src/sections/AccessPoint.js b/interface/src/sections/AccessPoint.js index 36ef1a1..011b673 100644 --- a/interface/src/sections/AccessPoint.js +++ b/interface/src/sections/AccessPoint.js @@ -8,6 +8,7 @@ import AuthenticatedRoute from '../authentication/AuthenticatedRoute'; import MenuAppBar from '../components/MenuAppBar'; import APSettings from '../containers/APSettings'; import APStatus from '../containers/APStatus'; +import { withAuthenticationContext } from '../authentication/Context.js'; class AccessPoint extends Component { @@ -16,20 +17,21 @@ class AccessPoint extends Component { }; render() { + const { authenticationContext } = this.props; return ( - + - + ) } } -export default AccessPoint; +export default withAuthenticationContext(AccessPoint); diff --git a/interface/src/sections/NetworkTime.js b/interface/src/sections/NetworkTime.js index 0e36b27..d695859 100644 --- a/interface/src/sections/NetworkTime.js +++ b/interface/src/sections/NetworkTime.js @@ -8,6 +8,7 @@ import AuthenticatedRoute from '../authentication/AuthenticatedRoute'; import MenuAppBar from '../components/MenuAppBar'; import NTPSettings from '../containers/NTPSettings'; import NTPStatus from '../containers/NTPStatus'; +import { withAuthenticationContext } from '../authentication/Context.js'; class NetworkTime extends Component { @@ -16,11 +17,12 @@ class NetworkTime extends Component { }; render() { + const { authenticationContext } = this.props; return ( - + @@ -32,4 +34,4 @@ class NetworkTime extends Component { } } -export default NetworkTime +export default withAuthenticationContext(NetworkTime) diff --git a/interface/src/sections/System.js b/interface/src/sections/System.js index f34c9b6..2aca1cd 100644 --- a/interface/src/sections/System.js +++ b/interface/src/sections/System.js @@ -8,6 +8,7 @@ import AuthenticatedRoute from '../authentication/AuthenticatedRoute'; import MenuAppBar from '../components/MenuAppBar'; import OTASettings from '../containers/OTASettings'; import SystemStatus from '../containers/SystemStatus'; +import { withAuthenticationContext } from '../authentication/Context.js'; class System extends Component { @@ -16,11 +17,12 @@ class System extends Component { }; render() { + const { authenticationContext } = this.props; return ( - + @@ -32,4 +34,4 @@ class System extends Component { } } -export default System +export default withAuthenticationContext(System); diff --git a/interface/src/sections/WiFiConnection.js b/interface/src/sections/WiFiConnection.js index a40a788..1bb2b9b 100644 --- a/interface/src/sections/WiFiConnection.js +++ b/interface/src/sections/WiFiConnection.js @@ -9,6 +9,7 @@ import MenuAppBar from '../components/MenuAppBar'; import WiFiNetworkScanner from '../containers/WiFiNetworkScanner'; import WiFiSettings from '../containers/WiFiSettings'; import WiFiStatus from '../containers/WiFiStatus'; +import { withAuthenticationContext } from '../authentication/Context.js'; class WiFiConnection extends Component { @@ -35,6 +36,7 @@ class WiFiConnection extends Component { }; render() { + const { authenticationContext } = this.props; const ConfiguredWiFiNetworkScanner = (props) => { return ( - - + + @@ -69,4 +71,4 @@ class WiFiConnection extends Component { } } -export default WiFiConnection; +export default withAuthenticationContext(WiFiConnection); From 370fef48e824cd72a24ae39104fa17e885184afa Mon Sep 17 00:00:00 2001 From: Rick Watson Date: Fri, 31 May 2019 23:28:39 +0100 Subject: [PATCH 41/62] begin updating readme --- README.md | 49 ++++++++++++++---------------------- screenshots/screenshots.png | Bin 46043 -> 106112 bytes 2 files changed, 19 insertions(+), 30 deletions(-) diff --git a/README.md b/README.md index bfde374..b607f37 100644 --- a/README.md +++ b/README.md @@ -1,30 +1,25 @@ # ESP8266 React -A simple, extensible framework for getting up and running with the ESP8266/ESP32 microchip and a react front end. +A simple, extensible framework for IoT projects built on ESP8266/ESP32 platforms with responsive React front-end. -Designed to work with the PlatformIO IDE with limited setup. - -This project supports ESP8266 and ESP32 devices, see build instruction below for more details. - -## Why I made this project - -I found I was repeating a lot of work when starting new IoT projects with the ESP8266 chip. - -Most of my IoT projects have required: - -* Configurable WiFi -* Configurable access point -* Synchronization with NTP -* The ability to perform OTA updates - -I also wanted to adopt a decent client side framework so the back end could be simplified to a set of REST endpoints. - -All of the above features are included in this framework, which I plan to use as a basis for my IoT projects. - -The interface is responsive and should work well on mobile devices. It also has the prerequisite manifest/icon file, so it can be added to the home screen if desired. +Designed to work with the PlatformIO IDE with limited setup, please read below for build and flash instructions. ![Screenshots](/screenshots/screenshots.png?raw=true "Screenshots") +## Features + +Provides many of the features required for IoT projects: + +* Configurable WiFi - Network scanner and WiFi connection screen +* Configurable Access Point - Can be continuous or automatically enabled when WiFi connection fails +* Network Time - Synchronization with NTP +* Remote Firmware Updates - Enable secured OTA updates +* Security - Protected RESTful endpoints and a secured user interface + +The back-end is provided by a set of RESTful endpoints and the React based front-end is responsive and scales well to various screen sizes. + +The file system artefact has the prerequisite manifest/icon file, so it can be added to the home screen of a mobile device if required. + ## Getting Started ### Prerequisites @@ -32,14 +27,14 @@ The interface is responsive and should work well on mobile devices. It also has You will need the following before you can get started. * [PlatformIO](https://platformio.org/) - IDE for development -* [NPM](https://www.npmjs.com/) - For building the interface +* [Node.js](https://nodejs.org) - For building the interface with npm * Bash shell, or Git Bash if you are under windows ### Installing in PlatformIO -Pull the project and add it to PlatformIO as a project folder (File > Add Project Folder). +Pull the project and open it in PlatformIO. PlatformIO should download the ESP8266 platform and the project library dependencies automatically. -PlatformIO should download the ESP8266 platform and the project library dependencies automatically. +**NB: If building under Windows you need to delete .piolibdeps/Time/Time.h - due [filesystem case insensitivity](https://github.com/me-no-dev/ESPAsyncWebServer/issues/96)* Once the platform and libraries are downloaded the back end should be compiling. @@ -99,12 +94,6 @@ platform = espressif32 board = node32s ``` -Microcontroller ESP8266 -Frequency 80MHz -Flash 4MBl - -**NB: If building under Windows you need to delete .piolibdeps/Time/Time.h - due [filesystem case insensitivity](https://github.com/me-no-dev/ESPAsyncWebServer/issues/96)* - ## Configuration & Deployment Standard configuration settings, such as build flags, libraries and device configuration can be found in platformio.ini. See the [PlatformIO docs](http://docs.platformio.org/en/latest/projectconf.html) for full details on what you can do with this. diff --git a/screenshots/screenshots.png b/screenshots/screenshots.png index 2aa03d68df29a3a7c713d635163a1078a077e1e2..0f3e11cf84400d5a54611c7f6c7bbce72b95005a 100644 GIT binary patch literal 106112 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

H`RadD}Vlu(y+94&tOhCe+Kosm08+mES`D8+8- zf(8sz(78~XAu_K(|CE9BpxSdBIi(v+as37-TSo+)A>2B8X$pBHF(VQCUz%Lv*>sp{ z!Xa8kSU%~4LpMO$hf|IGg#U9%JxA2^+B9i$V})CUq=v+-MulKF7o;XrnX*y&iO`SU z59xic&w$y0y1_%YZf%ql`a7*~7L_T{J};{P`7ct;CFl2{OKoVNqjFA$8K+x8t}8*! zvj2`a)&E~-(Bub_YDo*Uaic_BPB8}oun6+MrPl*+Ptnq^M5;D-6~Kb!Q%4)YMR<2< z(Ei)ucdN)9Kr(V@8dQ_&V@;WC<~FBM9pFuSH`et`zw)VxOm1@eJ)sEv?#c(-x4wS* z1UWgZP}>(&He>LoXhSNaVW^|I>&~xM*Tv&INV=bXqq1z+Ou)7YK zupguI1^-;ix3SE%zM2wT`gx#sK^ZylBYPVeN1-z8N zy#Nc3qB@K(bn?CHdFB)&{X$nuHX9GzJ4x-ljB{k&l?&?ZZpALhNqZh`Xz(^GglA>n zuf4b`lhEMVr;nx66yv@AlsnplYv$(uJ{14l`CiTBEtq1k>G5iDcsKm+9uAL8OtT(Q zL5$z5gvFn~_7y&x`@$E@5CR56RBdakxVIH3BXyRc@i!y?30PAmo;~D_!gd(F|Kn}R zgp)wJGeKZ!wM!&pmufGv#X?|~QKuSlT{juDFybVMee{4@V0^n3vEU-}iEif3iC_tg zl1s2i*$aXrfyT#GKf8|Z56^XkR4UVUH%TkSWs2cQ{QZJAuWtzwPZOryr2)(@YZ1)A zds-_04_%BXKHTJ_jq|tZ6hM?gAF#bw! z{=c3mNB|-}+}@=(5Euc%ebL1m_MZ)-r-{&4GD@wU0{@4F1(kB{m7)4|kb9gL(QMx; z8g|}!Kf4M(fkrgN)TLaCm1l?X-sPPrrtp6pO(;UZx2k-*23IR=z7| zg(WaEn=gS8`5`f}j`@jMstDh@dJ>80f%n!QZEgYKNxwE`8#zyOigO{9R-uE7+q8rX z?0U%v#;63^{S0~@b2k{XBu-)>b@ce<`_FXCrei()1x3a*8>mCSmrS)>To&!~aHPvs z4Pxs~G8`E?)F7F5Wj%jCyw1zLwh^C-CQ;&{J-1ZLL8R<tCob)2J_Ek?TkJ5&@c*+Vci9xpPY1Qss zZ()!VjVN=tkFLchkiLt4-IE+eW|oYC{L|CoB?H|HKm&UI^k3x2fy@eJ&~%LRU=b=nIdPAO05z>5<9B3)@L%>kAliQ<~ zdIw)B6`s0M>ZvCz=_5sSR_Mf&QjYZu^|C(|IHIwk|e# z3G=(3a)w1 zI~owi%?TrmpH--%2E6LHL7vJ2PGn$BK*>Ld(pK9@+!LhsEJQg=(~`Q#^hBr0)K->H zIZoVLfD$GG|IK03S%oPz@)Odbn(25jjOm;_b9�IHi!g2il~S;efYr16>My5)_ow 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

d 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

Gka!qm5k%8mp+36!8GA-T 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 XZFR_ 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 YcqP~yp@;@+z6bm%$f!z}NSOxyAMM^yz5oCK From d5b313876cf222433122416089974e56c643cd47 Mon Sep 17 00:00:00 2001 From: Rick Watson Date: Fri, 31 May 2019 23:30:29 +0100 Subject: [PATCH 42/62] minor modification to readme --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index b607f37..1519fab 100644 --- a/README.md +++ b/README.md @@ -16,9 +16,9 @@ Provides many of the features required for IoT projects: * Remote Firmware Updates - Enable secured OTA updates * Security - Protected RESTful endpoints and a secured user interface -The back-end is provided by a set of RESTful endpoints and the React based front-end is responsive and scales well to various screen sizes. +The back end is provided by a set of RESTful endpoints and the React based front end is responsive and scales well to various screen sizes. -The file system artefact has the prerequisite manifest/icon file, so it can be added to the home screen of a mobile device if required. +The front end has the prerequisite manifest/icon file, so it can be added to the home screen of a mobile device if required. ## Getting Started From 18d3d5db977d8feb5edc9034c74aedca86a26741 Mon Sep 17 00:00:00 2001 From: Rick Watson Date: Fri, 31 May 2019 23:32:50 +0100 Subject: [PATCH 43/62] use alternative formatting for notes --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 1519fab..026ee2a 100644 --- a/README.md +++ b/README.md @@ -34,7 +34,7 @@ You will need the following before you can get started. Pull the project and open it in PlatformIO. PlatformIO should download the ESP8266 platform and the project library dependencies automatically. -**NB: If building under Windows you need to delete .piolibdeps/Time/Time.h - due [filesystem case insensitivity](https://github.com/me-no-dev/ESPAsyncWebServer/issues/96)* +> **WINDOWS USERS**: If building under Windows you need to delete .piolibdeps/Time/Time.h - due to a [filesystem case insensitivity issue](https://github.com/me-no-dev/ESPAsyncWebServer/issues/96)* Once the platform and libraries are downloaded the back end should be compiling. From fd4b8743d0a6875fe645e26a662e7910068932c4 Mon Sep 17 00:00:00 2001 From: Rick Watson Date: Fri, 31 May 2019 23:43:02 +0100 Subject: [PATCH 44/62] more readme changes --- README.md | 27 ++++++++++++++++++++++----- 1 file changed, 22 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 026ee2a..038c1c5 100644 --- a/README.md +++ b/README.md @@ -30,11 +30,20 @@ You will need the following before you can get started. * [Node.js](https://nodejs.org) - For building the interface with npm * Bash shell, or Git Bash if you are under windows -### Installing in PlatformIO +### Building in PlatformIO Pull the project and open it in PlatformIO. PlatformIO should download the ESP8266 platform and the project library dependencies automatically. -> **WINDOWS USERS**: If building under Windows you need to delete .piolibdeps/Time/Time.h - due to a [filesystem case insensitivity issue](https://github.com/me-no-dev/ESPAsyncWebServer/issues/96)* +The projects directory structure is as follows: + +Directory | Description +---- | ----------- +/data/ | The file system image directory +/interface/ | React based front end +/src/ | C++ back end for the ESP8266 device +/platformio.ini | PlatformIO project configuration file + +> **WINDOWS BUILDS**: If building under Windows you need to delete .piolibdeps/Time/Time.h - due to a [file system case insensitivity issue](https://github.com/me-no-dev/ESPAsyncWebServer/issues/96) Once the platform and libraries are downloaded the back end should be compiling. @@ -42,7 +51,13 @@ Once the platform and libraries are downloaded the back end should be compiling. The interface has been configured with create-react-app and react-app-rewired so the build can customized for the target device. The large artefacts are gzipped and source maps and service worker are excluded from the production build. -You will find the interface code in the ./interface directory. Change to this directory with your bash shell (or Git Bash) and use the standard commands you would with any react app built with create-react-app: +Change to this directory with your bash shell (or Git Bash) and use the standard commands you would with any react app built with create-react-app: + +#### Change to interface directory + +```bash +cd interface +``` #### Download and install the node modules @@ -56,15 +71,17 @@ npm install npm run build ``` -**NB: The build command will also delete the previously built interface (the ./data/www directory) and replace it with the freshly built one, ready for upload to the device.** +> **Note**: The build command will also delete the previously built interface (the ./data/www directory) and replace it with the freshly built one, ready for upload to the device. #### Running the interface locally +You can run a local development server during development to preview changes to the front end them without uploading a file system image to the device. + ```bash npm start ``` -**NB: To run the interface locally you will need to modify the endpoint root path and enable CORS.** +> **Note**: To run the interface locally you will need to modify the endpoint root path and enable CORS. The endpoint root path can be found in .env.development, defined as the environment variable 'REACT_APP_ENDPOINT_ROOT'. This needs to be the root URL of the device running the back end, for example: From be3814e3b7debe606533c84c8208824a36288d00 Mon Sep 17 00:00:00 2001 From: Rick Watson Date: Fri, 31 May 2019 23:43:43 +0100 Subject: [PATCH 45/62] make minor readme update --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 038c1c5..92ddcc3 100644 --- a/README.md +++ b/README.md @@ -34,7 +34,7 @@ You will need the following before you can get started. Pull the project and open it in PlatformIO. PlatformIO should download the ESP8266 platform and the project library dependencies automatically. -The projects directory structure is as follows: +The project directory structure is as follows: Directory | Description ---- | ----------- From a17f8d8cb548624dcee27b38976715694f8cade5 Mon Sep 17 00:00:00 2001 From: Rick Watson Date: Sat, 1 Jun 2019 10:39:57 +0100 Subject: [PATCH 46/62] more updates to readme --- README.md | 30 ++++++++++++++++++------- media/esp12e.jpg | Bin 0 -> 123677 bytes {screenshots => media}/screenshots.png | Bin 3 files changed, 22 insertions(+), 8 deletions(-) create mode 100644 media/esp12e.jpg rename {screenshots => media}/screenshots.png (100%) diff --git a/README.md b/README.md index 92ddcc3..64a6a4a 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ A simple, extensible framework for IoT projects built on ESP8266/ESP32 platforms Designed to work with the PlatformIO IDE with limited setup, please read below for build and flash instructions. -![Screenshots](/screenshots/screenshots.png?raw=true "Screenshots") +![Screenshots](/media/screenshots.png?raw=true "Screenshots") ## Features @@ -43,10 +43,10 @@ Directory | Description /src/ | C++ back end for the ESP8266 device /platformio.ini | PlatformIO project configuration file -> **WINDOWS BUILDS**: If building under Windows you need to delete .piolibdeps/Time/Time.h - due to a [file system case insensitivity issue](https://github.com/me-no-dev/ESPAsyncWebServer/issues/96) - Once the platform and libraries are downloaded the back end should be compiling. +> **WINDOWS BUILDS**: If building under Windows you need to delete .piolibdeps/Time/Time.h - due to a [file system case insensitivity issue](https://github.com/me-no-dev/ESPAsyncWebServer/issues/96) + ### Building the interface The interface has been configured with create-react-app and react-app-rewired so the build can customized for the target device. The large artefacts are gzipped and source maps and service worker are excluded from the production build. @@ -91,11 +91,23 @@ REACT_APP_ENDPOINT_ROOT=http://192.168.0.6/rest/ CORS can be enabled on the back end by uncommenting the -D ENABLE_CORS build flag in platformio.ini and re-deploying. +## Renaming the application + +The app name displayed on the login page and on the menu bar can be modified by editing the REACT_APP_NAME property in './interface/.env + +``` +REACT_APP_NAME=ESP8266 React +``` + ## Building for different devices -This project supports ESP8266 and ESP32 platforms however your target device will need at least a 1MB flash chip to support OTA programming. +This project supports ESP8266 and ESP32 platforms. To support OTA programming, enough free space to upload the new sketch and file system image will be required. It is recommended that a board with at least 2mb of flash is used. -By default this project is configured to build for the esp12e device. This is an esp8266 device with 4MB of flash. The following config in platformio.ini configures the build: +By default, the target device is "esp12e". This is a common ESP8266 variant with 4mb of flash: + +![ESP12E](/media/esp12e.jpg?raw=true "ESP12E") + +The settings file platformio.ini configures the platform and board: ``` [env:esp12e] @@ -103,7 +115,7 @@ platform = espressif8266 board = esp12e ``` -If you want to build for an ESP32 device, all you need to do is re-configure playformio.ini with your devices settings: +If you want to build for an ESP32 device, all you need to do is re-configure playformio.ini with your devices settings. Building for the common esp32 "node32s" board for example requires the following configuration: ``` [env:node32s] @@ -115,7 +127,8 @@ board = node32s Standard configuration settings, such as build flags, libraries and device configuration can be found in platformio.ini. See the [PlatformIO docs](http://docs.platformio.org/en/latest/projectconf.html) for full details on what you can do with this. -By default, the target device is "esp12e". This is a common ESP8266 variant with 4mb of flash though any device with at least 2mb of flash should be fine. The settings configure the interface to upload via serial by default, you can change the upload mechanism to OTA by uncommenting the relevant lines. +***** TODO ****** +The project is configured to upload via serial by default, you can change the upload mechanism to OTA by uncommenting the relevant lines. As well as containing the interface, the SPIFFS image (in the ./data folder) contains a JSON settings file for each of the configurable features. The config files can be found in the ./data/config directory: @@ -123,7 +136,8 @@ File | Description ---- | ----------- apSettings.json | Access point settings ntpSettings.json | NTP synchronization settings -otaSettings.json | OTA Update configuration +otaSettings.json | OTA update configuration +securitySettings.json | Security settings and user credentials wifiSettings.json | WiFi connection settings The default settings configure the device to bring up an access point on start up which can be used to configure the device: diff --git a/media/esp12e.jpg b/media/esp12e.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9bc4519d5b706c8e6938e4fb4ba5a9f7824c70da GIT binary patch literal 123677 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 z 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 z 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 Tw%Nx3@## Date: Sat, 1 Jun 2019 14:57:00 +0100 Subject: [PATCH 47/62] more readme changes --- README.md | 59 ++++++++++++++++++++++++++++++++++++++++++----- media/esp12e.jpg | Bin 123677 -> 109117 bytes media/esp32.jpg | Bin 0 -> 113940 bytes 3 files changed, 53 insertions(+), 6 deletions(-) create mode 100644 media/esp32.jpg diff --git a/README.md b/README.md index 64a6a4a..e4b1c86 100644 --- a/README.md +++ b/README.md @@ -85,18 +85,61 @@ npm start The endpoint root path can be found in .env.development, defined as the environment variable 'REACT_APP_ENDPOINT_ROOT'. This needs to be the root URL of the device running the back end, for example: -``` +```js REACT_APP_ENDPOINT_ROOT=http://192.168.0.6/rest/ ``` CORS can be enabled on the back end by uncommenting the -D ENABLE_CORS build flag in platformio.ini and re-deploying. -## Renaming the application +## Customizing and theming -The app name displayed on the login page and on the menu bar can be modified by editing the REACT_APP_NAME property in './interface/.env +The framework, and MaterialUI allows for a good degree of custoimzation with little effort. +### Theming the app + +The app can be easily themed by editing the [MaterialUI theme](https://material-ui.com/customization/themes/). Edit the theme in ./interface/src/App.js as you desire: + +```js +const theme = createMuiTheme({ + palette: { + primary: red, + secondary: deepOrange, + highlight_idle: blueGrey[900], + highlight_warn: orange[500], + highlight_error: red[500], + highlight_success: green[500], + }, +}); ``` -REACT_APP_NAME=ESP8266 React + +### Changing the app icon + +You can replace the app icon is located at [./interface/public/app/icon.png](interface/public/app/icon.png) with one of your preference. A 256 x 256 PNG is recommended for best compatibility. + + +### Changing the app name + +The app name displayed on the login page and on the menu bar can be modified by editing the REACT_APP_NAME property in [./interface/.env](interface/.env) + +```js +REACT_APP_NAME=Funky IoT Project +``` + +There is also a manifest file which contains the app name to use when adding the app to a mobile device, so you may wish to also edit [./interface/public/app/manifest.json](interface/public/app/manifest.json): + +```json +{ + "name":"Funky IoT Project", + "icons":[ + { + "src":"/app/icon.png", + "sizes":"48x48 72x72 96x96 128x128 256x256" + } + ], + "start_url":"/", + "display":"fullscreen", + "orientation":"any" +} ``` ## Building for different devices @@ -115,7 +158,11 @@ platform = espressif8266 board = esp12e ``` -If you want to build for an ESP32 device, all you need to do is re-configure playformio.ini with your devices settings. Building for the common esp32 "node32s" board for example requires the following configuration: +If you want to build for an ESP32 device, all you need to do is re-configure playformio.ini with your devices settings. + +![ESP32](/media/esp32.jpg?raw=true "ESP32") + +Building for the common esp32 "node32s" board for example requires the following configuration: ``` [env:node32s] @@ -228,7 +275,7 @@ I've tried to keep the use of libraries to a minimum to reduce the artefact size - [x] Access point should provide captive portal - [ ] Perhaps have more configuration options for Access point: IP address, Subnet, etc - [ ] Enable configurable mDNS -- [ ] Introduce authentication to secure the device +- [x] Introduce authentication to secure the device ## Libraries Used diff --git a/media/esp12e.jpg b/media/esp12e.jpg index 9bc4519d5b706c8e6938e4fb4ba5a9f7824c70da..65efba9885c73da53942d5d6a6a7e3b87601f76a 100644 GIT binary patch literal 109117 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�fmsfDC;t8Uu9cBRaE^D6XUV_ySBw1v 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 Q>W~6-2ZLQ*T|giI*_}YU`v3p{ literal 123677 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 z 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 z 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 z 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 E*}cerlmGw# literal 0 HcmV?d00001 From 3d41e4f37d4a82b73d809e8482a8103c1e2a3dee Mon Sep 17 00:00:00 2001 From: Rick Watson Date: Sat, 1 Jun 2019 18:47:37 +0100 Subject: [PATCH 48/62] testing a styling change in readme --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index e4b1c86..083b7cd 100644 --- a/README.md +++ b/README.md @@ -18,7 +18,7 @@ Provides many of the features required for IoT projects: The back end is provided by a set of RESTful endpoints and the React based front end is responsive and scales well to various screen sizes. -The front end has the prerequisite manifest/icon file, so it can be added to the home screen of a mobile device if required. +The front end has the prerequisite manifest file and icon, so it can be added to the home screen of a mobile device if required. ## Getting Started @@ -28,7 +28,7 @@ You will need the following before you can get started. * [PlatformIO](https://platformio.org/) - IDE for development * [Node.js](https://nodejs.org) - For building the interface with npm -* Bash shell, or Git Bash if you are under windows +* Bash shell, or [Git Bash](https://gitforwindows.org/) if you are under windows ### Building in PlatformIO @@ -71,7 +71,7 @@ npm install npm run build ``` -> **Note**: The build command will also delete the previously built interface (the ./data/www directory) and replace it with the freshly built one, ready for upload to the device. +> **Note**: The build command will also delete the previously built interface (the ['data/www'](data/www) directory) and replace it with the freshly built one, ready for upload to the device. #### Running the interface locally From e66deb9dc71d1477d1a2fcf45546f9330514cd3d Mon Sep 17 00:00:00 2001 From: Rick Watson Date: Sat, 1 Jun 2019 18:49:53 +0100 Subject: [PATCH 49/62] more readme changes --- README.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 083b7cd..83eec5d 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ A simple, extensible framework for IoT projects built on ESP8266/ESP32 platforms with responsive React front-end. -Designed to work with the PlatformIO IDE with limited setup, please read below for build and flash instructions. +Designed to work with the PlatformIO IDE with limited setup, please read below for build and upload instructions. ![Screenshots](/media/screenshots.png?raw=true "Screenshots") @@ -38,10 +38,10 @@ The project directory structure is as follows: Directory | Description ---- | ----------- -/data/ | The file system image directory -/interface/ | React based front end -/src/ | C++ back end for the ESP8266 device -/platformio.ini | PlatformIO project configuration file +[data/](data) | The file system image directory +[interface/](interface) | React based front end +[src/](src) | C++ back end for the ESP8266 device +[platformio.ini](platformio.ini) | PlatformIO project configuration file Once the platform and libraries are downloaded the back end should be compiling. @@ -71,7 +71,7 @@ npm install npm run build ``` -> **Note**: The build command will also delete the previously built interface (the ['data/www'](data/www) directory) and replace it with the freshly built one, ready for upload to the device. +> **Note**: The build command will also delete the previously built interface, in the ['data/www'](data/www) directory, replacing it with the freshly built one ready to upload to the device. #### Running the interface locally From 1098b99301474b1e9aa79d3318982963ff215350 Mon Sep 17 00:00:00 2001 From: Rick Watson Date: Sat, 1 Jun 2019 19:27:08 +0100 Subject: [PATCH 50/62] WIP readme --- README.md | 144 +++++++++++++++++++++++++++-------------------- media/upload.png | Bin 0 -> 12477 bytes 2 files changed, 84 insertions(+), 60 deletions(-) create mode 100644 media/upload.png diff --git a/README.md b/README.md index 83eec5d..ade2cef 100644 --- a/README.md +++ b/README.md @@ -30,28 +30,44 @@ You will need the following before you can get started. * [Node.js](https://nodejs.org) - For building the interface with npm * Bash shell, or [Git Bash](https://gitforwindows.org/) if you are under windows -### Building in PlatformIO +### Building and uploading the firmware Pull the project and open it in PlatformIO. PlatformIO should download the ESP8266 platform and the project library dependencies automatically. -The project directory structure is as follows: +The project structure is as follows: -Directory | Description +Resource | Description ---- | ----------- [data/](data) | The file system image directory [interface/](interface) | React based front end [src/](src) | C++ back end for the ESP8266 device [platformio.ini](platformio.ini) | PlatformIO project configuration file +#### Building the firmware + Once the platform and libraries are downloaded the back end should be compiling. > **WINDOWS BUILDS**: If building under Windows you need to delete .piolibdeps/Time/Time.h - due to a [file system case insensitivity issue](https://github.com/me-no-dev/ESPAsyncWebServer/issues/96) +#### Uploading the firmware + +Standard configuration settings, such as build flags, libraries and device configuration can be found in ['platformio.ini'](platformio.ini). The project is configured to upload via serial by default, you can change the upload mechanism to OTA by uncommenting the relevant lines. + +See the [PlatformIO docs](http://docs.platformio.org/en/latest/projectconf.html) for full details on what you can do with this. + +Click the upload button in PlatformIO, or type the upload command if prefer the command line approach: + +```bash +platformio run -t upload +``` + +![upload](/media/upload.png?raw=true "upload") + ### Building the interface -The interface has been configured with create-react-app and react-app-rewired so the build can customized for the target device. The large artefacts are gzipped and source maps and service worker are excluded from the production build. +The interface has been configured with create-react-app and react-app-rewired so the build can customized for the target device. The large artefacts are gzipped and source maps and service worker are excluded from the production build. This reduces the production build to around ~200k, which easily fits on the device. -Change to this directory with your bash shell (or Git Bash) and use the standard commands you would with any react app built with create-react-app: +Change to the ['interface'](interface) directory with your bash shell (or Git Bash) and use the standard commands you would with any react app built with create-react-app: #### Change to interface directory @@ -73,9 +89,9 @@ npm run build > **Note**: The build command will also delete the previously built interface, in the ['data/www'](data/www) directory, replacing it with the freshly built one ready to upload to the device. -#### Running the interface locally +### Running the interface locally -You can run a local development server during development to preview changes to the front end them without uploading a file system image to the device. +You can run a local development server during development to preview changes to the front end them without the need to upload a file system image to the device after each change. ```bash npm start @@ -83,13 +99,67 @@ npm start > **Note**: To run the interface locally you will need to modify the endpoint root path and enable CORS. -The endpoint root path can be found in .env.development, defined as the environment variable 'REACT_APP_ENDPOINT_ROOT'. This needs to be the root URL of the device running the back end, for example: +#### Changing the endpoint root + +The endpoint root path can be found in ['interface/.env.development'](interface/.env.development), defined as the environment variable 'REACT_APP_ENDPOINT_ROOT'. This needs to be the root URL of the device running the back end, for example: ```js REACT_APP_ENDPOINT_ROOT=http://192.168.0.6/rest/ ``` -CORS can be enabled on the back end by uncommenting the -D ENABLE_CORS build flag in platformio.ini and re-deploying. +#### Enabling CORS + +You can enable CORS on the back end by uncommenting the -D ENABLE_CORS build flag in ['platformio.ini'](platformio.ini) then re-building and uploading the firmware to the device. The default settings assume you will be accessing the development server on the default port on [http://localhost:3000](http://localhost:3000) this can also be changed if required: + +``` +-D ENABLE_CORS +-D CORS_ORIGIN=\"http://localhost:3000\" +``` + +## Device Configuration + +As well as containing the interface, the SPIFFS image (in the ['data'](data) folder) contains a JSON settings file for each of the configurable features. The config files can be found in the ['data/config'](data/config) directory: + +File | Description +---- | ----------- +[apSettings.json](data/config/apSettings.json) | Access point settings +[ntpSettings.json](data/config/ntpSettings.json) | NTP synchronization settings +[otaSettings.json](data/config/otaSettings.json) | OTA update configuration +[securitySettings.json](data/config/securitySettings.json) | Security settings and user credentials +[wifiSettings.json](data/config/wifiSettings.json) | WiFi connection settings + +The default settings configure the device to bring up an access point on start up which can be used to configure the device: + +* SSID: ESP8266-React +* Password: esp-react + +### Building for different devices + +This project supports ESP8266 and ESP32 platforms. To support OTA programming, enough free space to upload the new sketch and file system image will be required. It is recommended that a board with at least 2mb of flash is used. + +By default, the target device is "esp12e". This is a common ESP8266 variant with 4mb of flash: + +![ESP12E](/media/esp12e.jpg?raw=true "ESP12E") + +The settings file ['platformio.ini'](platformio.ini) configures the platform and board: + +``` +[env:esp12e] +platform = espressif8266 +board = esp12e +``` + +If you want to build for an ESP32 device, all you need to do is re-configure ['platformio.ini'](platformio.ini) with your devices settings. + +![ESP32](/media/esp32.jpg?raw=true "ESP32") + +Building for the common esp32 "node32s" board for example requires the following configuration: + +``` +[env:node32s] +platform = espressif32 +board = node32s +``` ## Customizing and theming @@ -97,7 +167,7 @@ The framework, and MaterialUI allows for a good degree of custoimzation with lit ### Theming the app -The app can be easily themed by editing the [MaterialUI theme](https://material-ui.com/customization/themes/). Edit the theme in ./interface/src/App.js as you desire: +The app can be easily themed by editing the [MaterialUI theme](https://material-ui.com/customization/themes/). Edit the theme in ['interface/src/App.js'](interface/src/App.js) as you desire: ```js const theme = createMuiTheme({ @@ -114,18 +184,18 @@ const theme = createMuiTheme({ ### Changing the app icon -You can replace the app icon is located at [./interface/public/app/icon.png](interface/public/app/icon.png) with one of your preference. A 256 x 256 PNG is recommended for best compatibility. +You can replace the app icon is located at ['interface/public/app/icon.png'](interface/public/app/icon.png) with one of your preference. A 256 x 256 PNG is recommended for best compatibility. ### Changing the app name -The app name displayed on the login page and on the menu bar can be modified by editing the REACT_APP_NAME property in [./interface/.env](interface/.env) +The app name displayed on the login page and on the menu bar can be modified by editing the REACT_APP_NAME property in ['interface/.env'](interface/.env) ```js REACT_APP_NAME=Funky IoT Project ``` -There is also a manifest file which contains the app name to use when adding the app to a mobile device, so you may wish to also edit [./interface/public/app/manifest.json](interface/public/app/manifest.json): +There is also a manifest file which contains the app name to use when adding the app to a mobile device, so you may wish to also edit ['interface/public/app/manifest.json'](interface/public/app/manifest.json): ```json { @@ -142,55 +212,9 @@ There is also a manifest file which contains the app name to use when adding the } ``` -## Building for different devices -This project supports ESP8266 and ESP32 platforms. To support OTA programming, enough free space to upload the new sketch and file system image will be required. It is recommended that a board with at least 2mb of flash is used. -By default, the target device is "esp12e". This is a common ESP8266 variant with 4mb of flash: - -![ESP12E](/media/esp12e.jpg?raw=true "ESP12E") - -The settings file platformio.ini configures the platform and board: - -``` -[env:esp12e] -platform = espressif8266 -board = esp12e -``` - -If you want to build for an ESP32 device, all you need to do is re-configure playformio.ini with your devices settings. - -![ESP32](/media/esp32.jpg?raw=true "ESP32") - -Building for the common esp32 "node32s" board for example requires the following configuration: - -``` -[env:node32s] -platform = espressif32 -board = node32s -``` - -## Configuration & Deployment - -Standard configuration settings, such as build flags, libraries and device configuration can be found in platformio.ini. See the [PlatformIO docs](http://docs.platformio.org/en/latest/projectconf.html) for full details on what you can do with this. - -***** TODO ****** -The project is configured to upload via serial by default, you can change the upload mechanism to OTA by uncommenting the relevant lines. - -As well as containing the interface, the SPIFFS image (in the ./data folder) contains a JSON settings file for each of the configurable features. The config files can be found in the ./data/config directory: - -File | Description ----- | ----------- -apSettings.json | Access point settings -ntpSettings.json | NTP synchronization settings -otaSettings.json | OTA update configuration -securitySettings.json | Security settings and user credentials -wifiSettings.json | WiFi connection settings - -The default settings configure the device to bring up an access point on start up which can be used to configure the device: - -* SSID: ESP8266-React -* Password: esp-react +******* ## Software Overview diff --git a/media/upload.png b/media/upload.png new file mode 100644 index 0000000000000000000000000000000000000000..64d1448ebbeb9a62d75ea4efb50d4c2d890688ce GIT binary patch literal 12477 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 XcxRSt^-W(6^G97RqX&rl&N2TB58<*j literal 0 HcmV?d00001 From 856c2bc050ea257427511e75fa9850a54ce03789 Mon Sep 17 00:00:00 2001 From: Rick Watson Date: Sat, 1 Jun 2019 19:34:14 +0100 Subject: [PATCH 51/62] use smaller images in docs --- media/esp12e.jpg | Bin 109117 -> 17509 bytes media/esp32.jpg | Bin 113940 -> 26212 bytes media/upload.png | Bin 12477 -> 11165 bytes 3 files changed, 0 insertions(+), 0 deletions(-) diff --git a/media/esp12e.jpg b/media/esp12e.jpg index 65efba9885c73da53942d5d6a6a7e3b87601f76a..5b9b58ca6804aca5f02d4665c510a4ba3259daf2 100644 GIT binary patch delta 17470 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 NkMn;j>M&fH|JfvOE4Bat literal 109117 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�fmsfDC;t8Uu9cBRaE^D6XUV_ySBw1v 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 Q>W~6-2ZLQ*T|giI*_}YU`v3p{ diff --git a/media/esp32.jpg b/media/esp32.jpg index 4737af09133ea883ee6ae4bd217b45eeccb8c500..f1da1222488a40c7a8a848412f4aeda5bcbaad40 100644 GIT binary patch literal 26212 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�%d0c>oV_YpXmkd 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 daismMx4|Jfa=Jf;8u literal 113940 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 z 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 E*}cerlmGw# diff --git a/media/upload.png b/media/upload.png index 64d1448ebbeb9a62d75ea4efb50d4c2d890688ce..b6d70e73bb9743a8ed712eaad1bb8a019584ec8f 100644 GIT binary patch literal 11165 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 bcEDkE*_C)FDE-M{VA0cgs9k=?F5-Uyzenni literal 12477 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 XcxRSt^-W(6^G97RqX&rl&N2TB58<*j From 1b701dc1987864b8f99d78db29aad6a1d98eb0ba Mon Sep 17 00:00:00 2001 From: Rick Watson Date: Sat, 1 Jun 2019 19:53:42 +0100 Subject: [PATCH 52/62] add comments to platformio.ini more work on readme --- README.md | 27 ++++----------------------- platformio.ini | 8 ++++++-- 2 files changed, 10 insertions(+), 25 deletions(-) diff --git a/README.md b/README.md index ade2cef..aadd5f1 100644 --- a/README.md +++ b/README.md @@ -212,17 +212,13 @@ There is also a manifest file which contains the app name to use when adding the } ``` - - -******* - -## Software Overview - -### Back End +## Back End Overview The back end is a set of REST endpoints hosted by a [ESPAsyncWebServer](https://github.com/me-no-dev/ESPAsyncWebServer) instance. The source is split up by feature, for example [WiFiScanner.h](src/WiFiScanner.h) implements the end points for scanning for available networks. -There is an abstract class [SettingsService.h](src/SettingsService.h) that provides an easy means of adding configurable services/features to the device. It takes care of writing the settings as JSON to SPIFFS. All you need to do is extend the class with your required configuration and implement the functions which serialize the settings to/from JSON. JSON serialization utilizes the excellent [ArduinoJson](https://github.com/bblanchon/ArduinoJson) library. Here is a example of a service with username and password settings: +There is an abstract class [SettingsService.h](src/SettingsService.h) that provides an easy means of adding configurable services/features to the device. It takes care of writing the settings as JSON to SPIFFS. All you need to do is extend the class with your required configuration and implement the functions which serialize the settings to/from JSON. JSON serialization utilizes the excellent [ArduinoJson](https://github.com/bblanchon/ArduinoJson) library. + +Here is a example of a service with username and password settings: ```cpp #include @@ -286,21 +282,6 @@ void reconfigureTheService() { ``` -### Front End - -The front end is a bit of a work in progress (as are my react skills), but it has been designed to be a "mobile first" interface and as such should feel very much like an App. - -I've tried to keep the use of libraries to a minimum to reduce the artefact size (it's about 150k gzipped ATM). - -## Future Improvements - -- [x] Reduce boilerplate in interface -- [ ] Provide an emergency config reset feature, via a pin held low for a few seconds -- [x] Access point should provide captive portal -- [ ] Perhaps have more configuration options for Access point: IP address, Subnet, etc -- [ ] Enable configurable mDNS -- [x] Introduce authentication to secure the device - ## Libraries Used * [React](https://reactjs.org/) diff --git a/platformio.ini b/platformio.ini index 37d9480..5eb4f29 100644 --- a/platformio.ini +++ b/platformio.ini @@ -7,18 +7,22 @@ ; ; Please visit documentation for the other options and examples ; http://docs.platformio.org/page/projectconf.html + [env:node32s] platform = espressif32 board = node32s framework = arduino +monitor_speed = 115200 + +; Uncomment & modify the lines below in order to configure OTA updates ;upload_flags = --port=8266 --auth=esp-react ;upload_port = 192.168.0.6 -monitor_speed = 115200 build_flags= -D NO_GLOBAL_ARDUINOOTA - -D ENABLE_CORS + ; Uncomment ENABLE_CORS to enable Cross-Origin Resource Sharing (required for local React development) + ;-D ENABLE_CORS -D CORS_ORIGIN=\"http://localhost:3000\" lib_deps = NtpClientLib@>=2.5.1,<3.0.0 From 5d9ccd3095cf19a47e648de855cdfefe766a51f6 Mon Sep 17 00:00:00 2001 From: rjwats Date: Sun, 2 Jun 2019 19:01:06 +0100 Subject: [PATCH 53/62] don't use deprecated theme spacing --- .../src/authentication/AuthenticationWrapper.js | 4 ++-- interface/src/components/SectionContent.js | 4 ++-- interface/src/components/SnackbarNotification.js | 2 +- interface/src/containers/APStatus.js | 6 +++--- interface/src/containers/NTPStatus.js | 6 +++--- interface/src/containers/SignInPage.js | 12 ++++++------ interface/src/containers/SystemStatus.js | 6 +++--- interface/src/containers/WiFiStatus.js | 6 +++--- interface/src/forms/APSettingsForm.js | 12 ++++++------ interface/src/forms/ManageUsersForm.js | 10 +++++----- interface/src/forms/NTPSettingsForm.js | 8 ++++---- interface/src/forms/OTASettingsForm.js | 12 ++++++------ interface/src/forms/SecuritySettingsForm.js | 8 ++++---- interface/src/forms/UserForm.js | 2 +- interface/src/forms/WiFiNetworkSelector.js | 6 +++--- interface/src/forms/WiFiSettingsForm.js | 8 ++++---- platformio.ini | 6 ++++-- 17 files changed, 60 insertions(+), 58 deletions(-) diff --git a/interface/src/authentication/AuthenticationWrapper.js b/interface/src/authentication/AuthenticationWrapper.js index 258ae8e..3494fd2 100644 --- a/interface/src/authentication/AuthenticationWrapper.js +++ b/interface/src/authentication/AuthenticationWrapper.js @@ -11,7 +11,7 @@ import { withStyles } from '@material-ui/core/styles'; const styles = theme => ({ loadingPanel: { - padding: theme.spacing.unit * 2, + padding: theme.spacing(2), display: "flex", alignItems: "center", justifyContent: "center", @@ -19,7 +19,7 @@ const styles = theme => ({ flexDirection: "column" }, progress: { - margin: theme.spacing.unit * 4, + margin: theme.spacing(4), } }); diff --git a/interface/src/components/SectionContent.js b/interface/src/components/SectionContent.js index 0881112..71e82c0 100644 --- a/interface/src/components/SectionContent.js +++ b/interface/src/components/SectionContent.js @@ -7,8 +7,8 @@ import Typography from '@material-ui/core/Typography'; const styles = theme => ({ content: { - padding: theme.spacing.unit * 2, - margin: theme.spacing.unit * 2, + padding: theme.spacing(2), + margin: theme.spacing(2), } }); diff --git a/interface/src/components/SnackbarNotification.js b/interface/src/components/SnackbarNotification.js index c866c0e..f62c661 100644 --- a/interface/src/components/SnackbarNotification.js +++ b/interface/src/components/SnackbarNotification.js @@ -7,7 +7,7 @@ import CloseIcon from '@material-ui/icons/Close'; const styles = theme => ({ close: { - padding: theme.spacing.unit / 2, + padding: theme.spacing(0.5), }, }); diff --git a/interface/src/containers/APStatus.js b/interface/src/containers/APStatus.js index 0621601..95d3d64 100644 --- a/interface/src/containers/APStatus.js +++ b/interface/src/containers/APStatus.js @@ -28,12 +28,12 @@ const styles = theme => ({ backgroundColor: theme.palette.highlight_idle }, fetching: { - margin: theme.spacing.unit * 4, + margin: theme.spacing(4), textAlign: "center" }, button: { - marginRight: theme.spacing.unit * 2, - marginTop: theme.spacing.unit * 2, + marginRight: theme.spacing(2), + marginTop: theme.spacing(2), } }); diff --git a/interface/src/containers/NTPStatus.js b/interface/src/containers/NTPStatus.js index df6cbec..a9b5270 100644 --- a/interface/src/containers/NTPStatus.js +++ b/interface/src/containers/NTPStatus.js @@ -37,12 +37,12 @@ const styles = theme => ({ backgroundColor: theme.palette.highlight_warn }, fetching: { - margin: theme.spacing.unit * 4, + margin: theme.spacing(4), textAlign: "center" }, button: { - marginRight: theme.spacing.unit * 2, - marginTop: theme.spacing.unit * 2, + marginRight: theme.spacing(2), + marginTop: theme.spacing(2), } }); diff --git a/interface/src/containers/SignInPage.js b/interface/src/containers/SignInPage.js index f03da23..518a73d 100644 --- a/interface/src/containers/SignInPage.js +++ b/interface/src/containers/SignInPage.js @@ -17,30 +17,30 @@ const styles = theme => { display: "flex", height: "100vh", margin: "auto", - padding: theme.spacing.unit * 2, + padding: theme.spacing(2), justifyContent: "center", flexDirection: "column", maxWidth: theme.breakpoints.values.sm }, loginPanel: { textAlign: "center", - padding: theme.spacing.unit * 2, + padding: theme.spacing(2), paddingTop: "200px", backgroundImage: 'url("/app/icon.png")', backgroundRepeat: "no-repeat", - backgroundPosition: "50% " + theme.spacing.unit * 2 + "px", + backgroundPosition: "50% " + theme.spacing(2) + "px", backgroundSize: "auto 150px", width: "100%" }, extendedIcon: { - marginRight: theme.spacing.unit, + marginRight: theme.spacing(0.5), }, textField: { width: "100%" }, button: { - marginRight: theme.spacing.unit * 2, - marginTop: theme.spacing.unit * 2, + marginRight: theme.spacing(2), + marginTop: theme.spacing(2), } } } diff --git a/interface/src/containers/SystemStatus.js b/interface/src/containers/SystemStatus.js index a6b63a2..20728f5 100644 --- a/interface/src/containers/SystemStatus.js +++ b/interface/src/containers/SystemStatus.js @@ -23,12 +23,12 @@ import SectionContent from '../components/SectionContent'; const styles = theme => ({ fetching: { - margin: theme.spacing.unit * 4, + margin: theme.spacing(4), textAlign: "center" }, button: { - marginRight: theme.spacing.unit * 2, - marginTop: theme.spacing.unit * 2, + marginRight: theme.spacing(2), + marginTop: theme.spacing(2), } }); diff --git a/interface/src/containers/WiFiStatus.js b/interface/src/containers/WiFiStatus.js index 9cdac05..773e958 100644 --- a/interface/src/containers/WiFiStatus.js +++ b/interface/src/containers/WiFiStatus.js @@ -38,12 +38,12 @@ const styles = theme => ({ backgroundColor: theme.palette.highlight_warn }, fetching: { - margin: theme.spacing.unit * 4, + margin: theme.spacing(4), textAlign: "center" }, button: { - marginRight: theme.spacing.unit * 2, - marginTop: theme.spacing.unit * 2, + marginRight: theme.spacing(2), + marginTop: theme.spacing(2), } }); diff --git a/interface/src/forms/APSettingsForm.js b/interface/src/forms/APSettingsForm.js index de9771a..3447616 100644 --- a/interface/src/forms/APSettingsForm.js +++ b/interface/src/forms/APSettingsForm.js @@ -14,10 +14,10 @@ import PasswordValidator from '../components/PasswordValidator'; const styles = theme => ({ loadingSettings: { - margin: theme.spacing.unit, + margin: theme.spacing(0.5), }, loadingSettingsDetails: { - margin: theme.spacing.unit * 4, + margin: theme.spacing(4), textAlign: "center" }, textField: { @@ -25,12 +25,12 @@ const styles = theme => ({ }, selectField:{ width: "100%", - marginTop: theme.spacing.unit * 2, - marginBottom: theme.spacing.unit + marginTop: theme.spacing(2), + marginBottom: theme.spacing(0.5) }, button: { - marginRight: theme.spacing.unit * 2, - marginTop: theme.spacing.unit * 2, + marginRight: theme.spacing(2), + marginTop: theme.spacing(2), } }); diff --git a/interface/src/forms/ManageUsersForm.js b/interface/src/forms/ManageUsersForm.js index 6423736..c2e2768 100644 --- a/interface/src/forms/ManageUsersForm.js +++ b/interface/src/forms/ManageUsersForm.js @@ -26,18 +26,18 @@ import { withAuthenticationContext } from '../authentication/Context'; const styles = theme => ({ loadingSettings: { - margin: theme.spacing.unit, + margin: theme.spacing(0.5), }, loadingSettingsDetails: { - margin: theme.spacing.unit * 4, + margin: theme.spacing(4), textAlign: "center" }, button: { - marginRight: theme.spacing.unit * 2, - marginTop: theme.spacing.unit * 2, + marginRight: theme.spacing(2), + marginTop: theme.spacing(2), }, table: { - '& td, & th': { padding: theme.spacing.unit } + '& td, & th': { padding: theme.spacing(0.5) } }, actions: { whiteSpace: "nowrap" diff --git a/interface/src/forms/NTPSettingsForm.js b/interface/src/forms/NTPSettingsForm.js index 32bc92c..ba89b9c 100644 --- a/interface/src/forms/NTPSettingsForm.js +++ b/interface/src/forms/NTPSettingsForm.js @@ -13,18 +13,18 @@ import or from '../validators/or'; const styles = theme => ({ loadingSettings: { - margin: theme.spacing.unit, + margin: theme.spacing(0.5), }, loadingSettingsDetails: { - margin: theme.spacing.unit * 4, + margin: theme.spacing(4), textAlign: "center" }, textField: { width: "100%" }, button: { - marginRight: theme.spacing.unit * 2, - marginTop: theme.spacing.unit * 2, + marginRight: theme.spacing(2), + marginTop: theme.spacing(2), } }); diff --git a/interface/src/forms/OTASettingsForm.js b/interface/src/forms/OTASettingsForm.js index 6381bc0..5681f64 100644 --- a/interface/src/forms/OTASettingsForm.js +++ b/interface/src/forms/OTASettingsForm.js @@ -16,23 +16,23 @@ import PasswordValidator from '../components/PasswordValidator'; const styles = theme => ({ loadingSettings: { - margin: theme.spacing.unit, + margin: theme.spacing(0.5), }, loadingSettingsDetails: { - margin: theme.spacing.unit * 4, + margin: theme.spacing(4), textAlign: "center" }, switchControl: { width: "100%", - marginTop: theme.spacing.unit * 2, - marginBottom: theme.spacing.unit + marginTop: theme.spacing(2), + marginBottom: theme.spacing(0.5) }, textField: { width: "100%" }, button: { - marginRight: theme.spacing.unit * 2, - marginTop: theme.spacing.unit * 2, + marginRight: theme.spacing(2), + marginTop: theme.spacing(2), } }); diff --git a/interface/src/forms/SecuritySettingsForm.js b/interface/src/forms/SecuritySettingsForm.js index 7420885..387cb41 100644 --- a/interface/src/forms/SecuritySettingsForm.js +++ b/interface/src/forms/SecuritySettingsForm.js @@ -13,18 +13,18 @@ import { withAuthenticationContext } from '../authentication/Context'; const styles = theme => ({ loadingSettings: { - margin: theme.spacing.unit, + margin: theme.spacing(0.5), }, loadingSettingsDetails: { - margin: theme.spacing.unit * 4, + margin: theme.spacing(4), textAlign: "center" }, textField: { width: "100%" }, button: { - marginRight: theme.spacing.unit * 2, - marginTop: theme.spacing.unit * 2, + marginRight: theme.spacing(2), + marginTop: theme.spacing(2), } }); diff --git a/interface/src/forms/UserForm.js b/interface/src/forms/UserForm.js index 3aee089..a75fe62 100644 --- a/interface/src/forms/UserForm.js +++ b/interface/src/forms/UserForm.js @@ -20,7 +20,7 @@ const styles = theme => ({ width: "100%" }, button: { - margin: theme.spacing.unit + margin: theme.spacing(0.5) } }); diff --git a/interface/src/forms/WiFiNetworkSelector.js b/interface/src/forms/WiFiNetworkSelector.js index 3a63232..cc4d75e 100644 --- a/interface/src/forms/WiFiNetworkSelector.js +++ b/interface/src/forms/WiFiNetworkSelector.js @@ -23,12 +23,12 @@ import { isNetworkOpen, networkSecurityMode } from '../constants/WiFiSecurityMod const styles = theme => ({ scanningProgress: { - margin: theme.spacing.unit * 4, + margin: theme.spacing(4), textAlign: "center" }, button: { - marginRight: theme.spacing.unit * 2, - marginTop: theme.spacing.unit * 2, + marginRight: theme.spacing(2), + marginTop: theme.spacing(2), } }); diff --git a/interface/src/forms/WiFiSettingsForm.js b/interface/src/forms/WiFiSettingsForm.js index dbad740..33e1ab9 100644 --- a/interface/src/forms/WiFiSettingsForm.js +++ b/interface/src/forms/WiFiSettingsForm.js @@ -29,10 +29,10 @@ import PasswordValidator from '../components/PasswordValidator'; const styles = theme => ({ loadingSettings: { - margin: theme.spacing.unit, + margin: theme.spacing(0.5), }, loadingSettingsDetails: { - margin: theme.spacing.unit * 4, + margin: theme.spacing(4), textAlign: "center" }, textField: { @@ -42,8 +42,8 @@ const styles = theme => ({ width: "100%" }, button: { - marginRight: theme.spacing.unit * 2, - marginTop: theme.spacing.unit * 2, + marginRight: theme.spacing(2), + marginTop: theme.spacing(2), } }); diff --git a/platformio.ini b/platformio.ini index 9ff77aa..2f81ad3 100644 --- a/platformio.ini +++ b/platformio.ini @@ -18,8 +18,10 @@ framework = arduino monitor_speed = 115200 ; Uncomment & modify the lines below in order to configure OTA updates -;upload_flags = --port=8266 --auth=esp-react -;upload_port = 192.168.0.6 +;upload_flags = +; --port=8266 +; --auth=esp-react +;upload_port = 192.168.0.11 build_flags= -D NO_GLOBAL_ARDUINOOTA From 9c680e8826cc775818cbbd939a3eb77f9cb34073 Mon Sep 17 00:00:00 2001 From: Rick Watson Date: Sun, 2 Jun 2019 23:15:56 +0100 Subject: [PATCH 54/62] Resolve some typos Use nullptr over NULL Fix confusing regexp Fix issue with non-compliant JWT encoding --- interface/src/forms/APSettingsForm.js | 4 +- interface/src/forms/OTASettingsForm.js | 2 +- interface/src/forms/SecuritySettingsForm.js | 2 +- interface/src/forms/UserForm.js | 4 +- interface/src/forms/WiFiSettingsForm.js | 230 ++++++++++---------- src/APSettingsService.cpp | 2 +- src/ArduinoJsonJWT.cpp | 10 +- src/AsyncArduinoJson6.h | 6 +- src/AsyncJsonWebHandler.h | 2 +- src/OTASettingsService.cpp | 2 +- src/SecurityManager.h | 6 +- 11 files changed, 134 insertions(+), 136 deletions(-) diff --git a/interface/src/forms/APSettingsForm.js b/interface/src/forms/APSettingsForm.js index 3447616..582241d 100644 --- a/interface/src/forms/APSettingsForm.js +++ b/interface/src/forms/APSettingsForm.js @@ -65,7 +65,7 @@ class APSettingsForm extends React.Component { isAPEnabled(apSettings.provision_mode) && @@ -84,57 +84,57 @@ class WiFiSettingsForm extends React.Component { return (

+ } ); } diff --git a/src/APSettingsService.cpp b/src/APSettingsService.cpp index a5f966d..98ceb58 100644 --- a/src/APSettingsService.cpp +++ b/src/APSettingsService.cpp @@ -46,7 +46,7 @@ void APSettingsService::stopAP() { Serial.println("Stopping captive portal"); _dnsServer->stop(); delete _dnsServer; - _dnsServer = NULL; + _dnsServer = nullptr; } Serial.println("Stopping software access point"); WiFi.softAPdisconnect(true); diff --git a/src/ArduinoJsonJWT.cpp b/src/ArduinoJsonJWT.cpp index 0c945dc..2a50d5d 100644 --- a/src/ArduinoJsonJWT.cpp +++ b/src/ArduinoJsonJWT.cpp @@ -69,14 +69,14 @@ void ArduinoJsonJWT::parseJWT(String jwt, JsonDocument &jsonDocument) { return; } // must have signature of correct length - int signatureDelimieterIndex = jwt.length() - JWT_SIG_SIZE - 1; - if (jwt.lastIndexOf('.') != signatureDelimieterIndex) { + int signatureDelimiterIndex = jwt.length() - JWT_SIG_SIZE - 1; + if (jwt.lastIndexOf('.') != signatureDelimiterIndex) { return; } // signature must be correct - String signature = jwt.substring(signatureDelimieterIndex + 1); - jwt = jwt.substring(0, signatureDelimieterIndex); + String signature = jwt.substring(signatureDelimiterIndex + 1); + jwt = jwt.substring(0, signatureDelimiterIndex); if (sign(jwt) != signature){ return; } @@ -115,7 +115,7 @@ String ArduinoJsonJWT::encode(const char *cstr, int inputLen) { String value = String(buffer); // remove padding and convert to URL safe form - while (value.charAt(value.length() - 1) == '='){ + while (value.length() > 0 && value.charAt(value.length() - 1) == '='){ value.remove(value.length() - 1); } value.replace('+', '-'); diff --git a/src/AsyncArduinoJson6.h b/src/AsyncArduinoJson6.h index f075d46..b95ea6c 100644 --- a/src/AsyncArduinoJson6.h +++ b/src/AsyncArduinoJson6.h @@ -109,7 +109,7 @@ public: } virtual void handleRequest(AsyncWebServerRequest *request) override final { if(_onRequest) { - if (request->_tempObject != NULL) { + if (request->_tempObject != nullptr) { DynamicJsonDocument _jsonDocument(_maxContentLength); DeserializationError err = deserializeJson(_jsonDocument, (uint8_t*)(request->_tempObject)); if (err == DeserializationError::Ok) { @@ -127,10 +127,10 @@ public: virtual void handleBody(AsyncWebServerRequest *request, uint8_t *data, size_t len, size_t index, size_t total) override final { if (_onRequest) { _contentLength = total; - if (total > 0 && request->_tempObject == NULL && total < _maxContentLength) { + if (total > 0 && request->_tempObject == nullptr && total < _maxContentLength) { request->_tempObject = malloc(total); } - if (request->_tempObject != NULL) { + if (request->_tempObject != nullptr) { memcpy((uint8_t*)(request->_tempObject) + index, data, len); } } diff --git a/src/AsyncJsonWebHandler.h b/src/AsyncJsonWebHandler.h index 8489f76..dde3470 100644 --- a/src/AsyncJsonWebHandler.h +++ b/src/AsyncJsonWebHandler.h @@ -31,7 +31,7 @@ class AsyncJsonWebHandler: public AsyncWebHandler { AsyncJsonWebHandler() : _method(HTTP_POST|HTTP_PUT|HTTP_PATCH), - _onRequest(NULL), + _onRequest(nullptr), _maxContentLength(ASYNC_JSON_REQUEST_DEFAULT_MAX_SIZE), _uri() {} diff --git a/src/OTASettingsService.cpp b/src/OTASettingsService.cpp index 2c9490a..f891448 100644 --- a/src/OTASettingsService.cpp +++ b/src/OTASettingsService.cpp @@ -40,7 +40,7 @@ void OTASettingsService::writeToJsonObject(JsonObject& root) { void OTASettingsService::configureArduinoOTA() { if (_arduinoOTA){ delete _arduinoOTA; - _arduinoOTA = NULL; + _arduinoOTA = nullptr; } if (_enabled) { Serial.println("Starting OTA Update Service"); diff --git a/src/SecurityManager.h b/src/SecurityManager.h index 0b35fb9..b8c514f 100644 --- a/src/SecurityManager.h +++ b/src/SecurityManager.h @@ -37,11 +37,9 @@ class Authentication { boolean _authenticated; public: Authentication(User& user): _user(new User(user)), _authenticated(true) {} - Authentication() : _user(NULL), _authenticated(false) {} + Authentication() : _user(nullptr), _authenticated(false) {} ~Authentication() { - if (_user != NULL){ - delete(_user); - } + delete(_user); } User* getUser() { return _user; From bfa94b79d1f284b23ac800b0ba3cd39c1d825bdf Mon Sep 17 00:00:00 2001 From: Rick Watson Date: Sun, 2 Jun 2019 23:31:00 +0100 Subject: [PATCH 55/62] resolve use of VLA in JWT encoder function --- src/ArduinoJsonJWT.cpp | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/ArduinoJsonJWT.cpp b/src/ArduinoJsonJWT.cpp index 2a50d5d..807127f 100644 --- a/src/ArduinoJsonJWT.cpp +++ b/src/ArduinoJsonJWT.cpp @@ -102,17 +102,21 @@ String ArduinoJsonJWT::encode(const char *cstr, int inputLen) { base64_init_encodestate(&_state); size_t encodedLength = base64_encode_expected_len(inputLen) + 1; #endif - - // prepare buffer of correct length - char buffer[encodedLength]; + // prepare buffer of correct length, returning an empty string on failure + char* buffer = (char*) malloc(encodedLength * sizeof(char)); + if (buffer == nullptr) { + return ""; + } // encode to buffer int len = base64_encode_block(cstr, inputLen, &buffer[0], &_state); len += base64_encode_blockend(&buffer[len], &_state); buffer[len] = 0; - // convert to arduino string + // convert to arduino string, freeing buffer String value = String(buffer); + free(buffer); + buffer=nullptr; // remove padding and convert to URL safe form while (value.length() > 0 && value.charAt(value.length() - 1) == '='){ From 03bae3ff2c0545625c38fdef23f11b285d3af125 Mon Sep 17 00:00:00 2001 From: Rick Watson Date: Sun, 2 Jun 2019 23:52:29 +0100 Subject: [PATCH 56/62] more work on readme --- README.md | 32 ++++++++++++++++++++++---------- media/screenshots.png | Bin 106112 -> 52362 bytes media/upload.png | Bin 11165 -> 0 bytes media/uploadfs.png | Bin 0 -> 8644 bytes media/uploadfw.png | Bin 0 -> 8823 bytes 5 files changed, 22 insertions(+), 10 deletions(-) delete mode 100644 media/upload.png create mode 100644 media/uploadfs.png create mode 100644 media/uploadfw.png diff --git a/README.md b/README.md index aadd5f1..712384f 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,8 @@ # ESP8266 React -A simple, extensible framework for IoT projects built on ESP8266/ESP32 platforms with responsive React front-end. +A simple, secure and extensible framework for IoT projects built on ESP8266/ESP32 platforms with responsive React front-end. -Designed to work with the PlatformIO IDE with limited setup, please read below for build and upload instructions. +Designed to work with the PlatformIO IDE with [limited setup](#getting-started). Please read below for setup, build and upload instructions. ![Screenshots](/media/screenshots.png?raw=true "Screenshots") @@ -10,7 +10,7 @@ Designed to work with the PlatformIO IDE with limited setup, please read below f Provides many of the features required for IoT projects: -* Configurable WiFi - Network scanner and WiFi connection screen +* Configurable WiFi - Network scanner and WiFi configuration screen * Configurable Access Point - Can be continuous or automatically enabled when WiFi connection fails * Network Time - Synchronization with NTP * Remote Firmware Updates - Enable secured OTA updates @@ -43,7 +43,7 @@ Resource | Description [src/](src) | C++ back end for the ESP8266 device [platformio.ini](platformio.ini) | PlatformIO project configuration file -#### Building the firmware +### Building the firmware Once the platform and libraries are downloaded the back end should be compiling. @@ -51,18 +51,18 @@ Once the platform and libraries are downloaded the back end should be compiling. #### Uploading the firmware -Standard configuration settings, such as build flags, libraries and device configuration can be found in ['platformio.ini'](platformio.ini). The project is configured to upload via serial by default, you can change the upload mechanism to OTA by uncommenting the relevant lines. +The project is configured to upload over a serial connection by default. You can change this to use OTA updates by uncommenting the relevant lines in ['platformio.ini'](platformio.ini). -See the [PlatformIO docs](http://docs.platformio.org/en/latest/projectconf.html) for full details on what you can do with this. +The firmware may be uploaded to the device by pressing the "Upload" button: -Click the upload button in PlatformIO, or type the upload command if prefer the command line approach: +![uploadfw](/media/uploadfw.png?raw=true "uploadfw") + +Alternatively run the 'upload' target: ```bash platformio run -t upload ``` -![upload](/media/upload.png?raw=true "upload") - ### Building the interface The interface has been configured with create-react-app and react-app-rewired so the build can customized for the target device. The large artefacts are gzipped and source maps and service worker are excluded from the production build. This reduces the production build to around ~200k, which easily fits on the device. @@ -89,9 +89,21 @@ npm run build > **Note**: The build command will also delete the previously built interface, in the ['data/www'](data/www) directory, replacing it with the freshly built one ready to upload to the device. +#### Uploading the file system image + +The compiled user interface may be uploaded to the device by pressing the "Upload File System image" button: + +![uploadfs](/media/uploadfs.png?raw=true "uploadfs") + +Alternatively run the 'uploadfs' target: + +```bash +platformio run -t uploadfs +``` + ### Running the interface locally -You can run a local development server during development to preview changes to the front end them without the need to upload a file system image to the device after each change. +You can run a local development server to allow you preview changes to the front end without the need to upload a file system image to the device after each change. Run the standard npm start command to start the development server: ```bash npm start diff --git a/media/screenshots.png b/media/screenshots.png index 0f3e11cf84400d5a54611c7f6c7bbce72b95005a..27a504e6a5bb1f910aafac307aa111335322cd4d 100644 GIT binary patch delta 1395 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�NGfRV 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 bcEDkE*_C)FDE-M{VA0cgs9k=?F5-Uyzenni diff --git a/media/uploadfs.png b/media/uploadfs.png new file mode 100644 index 0000000000000000000000000000000000000000..5b5ee688d8f4102d58cc8a61916845adfb5e695b GIT binary patch literal 8644 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 z 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 Date: Mon, 3 Jun 2019 00:01:19 +0100 Subject: [PATCH 57/62] add build command, remove windows warning --- README.md | 14 +++++++++++--- media/build.png | Bin 0 -> 8646 bytes 2 files changed, 11 insertions(+), 3 deletions(-) create mode 100644 media/build.png diff --git a/README.md b/README.md index 712384f..de8cdbd 100644 --- a/README.md +++ b/README.md @@ -45,9 +45,17 @@ Resource | Description ### Building the firmware -Once the platform and libraries are downloaded the back end should be compiling. +Once the platform and libraries are downloaded the back end should successfuly build within PlatformIO. -> **WINDOWS BUILDS**: If building under Windows you need to delete .piolibdeps/Time/Time.h - due to a [file system case insensitivity issue](https://github.com/me-no-dev/ESPAsyncWebServer/issues/96) +The firmware may be built by pressing the "Build" button: + +![build](/media/build.png?raw=true "build") + +Alternatively type the run command: + +```bash +platformio run +``` #### Uploading the firmware @@ -103,7 +111,7 @@ platformio run -t uploadfs ### Running the interface locally -You can run a local development server to allow you preview changes to the front end without the need to upload a file system image to the device after each change. Run the standard npm start command to start the development server: +You can run a local development server to allow you preview changes to the front end without the need to upload a file system image to the device after each change. Change to the interface directory and run the following command: ```bash npm start diff --git a/media/build.png b/media/build.png new file mode 100644 index 0000000000000000000000000000000000000000..33e807a93add396239ae3d22f59ffe568250b309 GIT binary patch literal 8646 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 Date: Mon, 3 Jun 2019 21:05:02 +0100 Subject: [PATCH 58/62] minor tweeks from code review --- src/ArduinoJsonJWT.cpp | 13 +++++-------- src/ArduinoJsonJWT.h | 7 ++----- 2 files changed, 7 insertions(+), 13 deletions(-) diff --git a/src/ArduinoJsonJWT.cpp b/src/ArduinoJsonJWT.cpp index 807127f..1018e52 100644 --- a/src/ArduinoJsonJWT.cpp +++ b/src/ArduinoJsonJWT.cpp @@ -60,21 +60,18 @@ void ArduinoJsonJWT::parseJWT(String jwt, JsonDocument &jsonDocument) { // clear json document before we begin, jsonDocument wil be null on failure jsonDocument.clear(); - // must be of minimum length or greater - if (jwt.length() <= JWT_SIG_SIZE + JWT_HEADER_SIZE + 2) { - return; - } // must have the correct header and delimiter if (!jwt.startsWith(JWT_HEADER) || jwt.indexOf('.') != JWT_HEADER_SIZE) { return; } - // must have signature of correct length - int signatureDelimiterIndex = jwt.length() - JWT_SIG_SIZE - 1; - if (jwt.lastIndexOf('.') != signatureDelimiterIndex) { + + // check there is a signature delimieter + int signatureDelimiterIndex = jwt.lastIndexOf('.'); + if (signatureDelimiterIndex == JWT_HEADER_SIZE) { return; } - // signature must be correct + // check the signature is valid String signature = jwt.substring(signatureDelimiterIndex + 1); jwt = jwt.substring(0, signatureDelimiterIndex); if (sign(jwt) != signature){ diff --git a/src/ArduinoJsonJWT.h b/src/ArduinoJsonJWT.h index 8d29e39..fdaeb0b 100644 --- a/src/ArduinoJsonJWT.h +++ b/src/ArduinoJsonJWT.h @@ -11,17 +11,14 @@ #include #endif -#define JWT_HEADER_SIZE 36 -#define JWT_SIG_SIZE 43 - class ArduinoJsonJWT { private: String _secret; - // {"alg": "HS256", "typ": "JWT"} const String JWT_HEADER = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9"; - + const size_t JWT_HEADER_SIZE = JWT_HEADER.length(); + String sign(String &value); static String encode(const char *cstr, int len); From 0da88878d5ae606f9c8dbddf5fb13b059cbd5454 Mon Sep 17 00:00:00 2001 From: Rick Watson Date: Mon, 3 Jun 2019 21:32:54 +0100 Subject: [PATCH 59/62] fix issue with authentication redirect loop --- interface/src/App.js | 33 +++++++++++-------- .../src/authentication/Authentication.js | 2 +- .../authentication/AuthenticationWrapper.js | 4 +-- interface/src/containers/SignInPage.js | 9 ++--- 4 files changed, 28 insertions(+), 20 deletions(-) diff --git a/interface/src/App.js b/interface/src/App.js index 1f5a7e2..231be0e 100644 --- a/interface/src/App.js +++ b/interface/src/App.js @@ -1,4 +1,5 @@ import React, { Component } from 'react'; +import { Redirect, Route, Switch } from 'react-router'; import AppRouting from './AppRouting'; import SnackbarNotification from './components/SnackbarNotification'; @@ -33,19 +34,25 @@ const theme = createMuiTheme({ // JSS instance const jss = create(jssPreset()); -class App extends Component { - render() { - return ( - - - - - - - - - ) - } +// this redirect forces a call to authenticationContext.refresh() which invalidates the JWT if it is invalid. +const unauthorizedRedirect = () => ; + +class App extends Component { + render() { + return ( + + + + + + + + + + + + ); + } } export default App diff --git a/interface/src/authentication/Authentication.js b/interface/src/authentication/Authentication.js index 2de39e7..eb3acdc 100644 --- a/interface/src/authentication/Authentication.js +++ b/interface/src/authentication/Authentication.js @@ -47,7 +47,7 @@ export function redirectingAuthorizedFetch(url, params) { return new Promise(function (resolve, reject) { authorizedFetch(url, params).then(response => { if (response.status === 401) { - history.push("/"); + history.push("/unauthorized"); } else { resolve(response); } diff --git a/interface/src/authentication/AuthenticationWrapper.js b/interface/src/authentication/AuthenticationWrapper.js index 3494fd2..c4429af 100644 --- a/interface/src/authentication/AuthenticationWrapper.js +++ b/interface/src/authentication/AuthenticationWrapper.js @@ -89,11 +89,11 @@ class AuthenticationWrapper extends React.Component { signIn = (accessToken) => { try { - this.setState({ context: { ...this.state.context, user: jwtDecode(accessToken) } }); localStorage.setItem(ACCESS_TOKEN, accessToken); + this.setState({ context: { ...this.state.context, user: jwtDecode(accessToken) } }); } catch (err) { this.setState({ initialized: true, context: { ...this.state.context, user: undefined } }); - this.props.raiseNotification("Failed to parse JWT " + err.message); + throw new Error("Failed to parse JWT " + err.message); } } diff --git a/interface/src/containers/SignInPage.js b/interface/src/containers/SignInPage.js index 518a73d..28cfa70 100644 --- a/interface/src/containers/SignInPage.js +++ b/interface/src/containers/SignInPage.js @@ -44,9 +44,9 @@ const styles = theme => { } } } - -class LoginPage extends Component { + +class SignInPage extends Component { constructor(props) { super(props); @@ -82,7 +82,6 @@ class LoginPage extends Component { } }).then(json => { authenticationContext.signIn(json.access_token); - this.setState({ processing: false }); }) .catch(error => { this.props.raiseNotification(error.message); @@ -132,4 +131,6 @@ class LoginPage extends Component { } -export default withAuthenticationContext(withNotifier(withStyles(styles)(LoginPage))); +export default withAuthenticationContext( + withNotifier(withStyles(styles)(SignInPage)) +); From 537b3951cf785aa16633b4df2f41684157dfb4b4 Mon Sep 17 00:00:00 2001 From: Rick Watson Date: Mon, 3 Jun 2019 21:58:07 +0100 Subject: [PATCH 60/62] more work on readme --- README.md | 15 ++++++++++++++- data/config/ntpSettings.json | 2 +- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index de8cdbd..45e7d7b 100644 --- a/README.md +++ b/README.md @@ -148,12 +148,25 @@ File | Description [securitySettings.json](data/config/securitySettings.json) | Security settings and user credentials [wifiSettings.json](data/config/wifiSettings.json) | WiFi connection settings +### Access point settings + The default settings configure the device to bring up an access point on start up which can be used to configure the device: * SSID: ESP8266-React * Password: esp-react -### Building for different devices +### Security settings and user credentials + +The security settings and user credentials provide the following users by default: + +Username | Password +-------- | -------- +admin | admin +guest | guest + +It is recomended that you change the JWT secret and user credentials from their defaults protect your device. You can do this in the user interface, or by modifying [securitySettings.json](data/config/securitySettings.json) before uploading the file system image. + +## Building for different devices This project supports ESP8266 and ESP32 platforms. To support OTA programming, enough free space to upload the new sketch and file system image will be required. It is recommended that a board with at least 2mb of flash is used. diff --git a/data/config/ntpSettings.json b/data/config/ntpSettings.json index 5767035..bd0147b 100644 --- a/data/config/ntpSettings.json +++ b/data/config/ntpSettings.json @@ -1,4 +1,4 @@ { "server":"pool.ntp.org", - "interval":60 + "interval":3600 } From 49132c66f8c5639271b1cfb5ca1b7e983b04ace9 Mon Sep 17 00:00:00 2001 From: Rick Watson Date: Mon, 3 Jun 2019 22:15:01 +0100 Subject: [PATCH 61/62] revert to esp8266 in platformio.ini latest build --- data/www/index.html | 2 +- data/www/js/0.439a.js.gz | Bin 0 -> 11163 bytes data/www/js/0.da55.js.gz | Bin 7625 -> 0 bytes data/www/js/2.8ca9.js.gz | Bin 0 -> 157772 bytes data/www/js/2.9881.js.gz | Bin 137639 -> 0 bytes platformio.ini | 8 ++++---- 6 files changed, 5 insertions(+), 5 deletions(-) create mode 100644 data/www/js/0.439a.js.gz delete mode 100644 data/www/js/0.da55.js.gz create mode 100644 data/www/js/2.8ca9.js.gz delete mode 100644 data/www/js/2.9881.js.gz diff --git a/data/www/index.html b/data/www/index.html index 44300bd..7abfc5e 100644 --- a/data/www/index.html +++ b/data/www/index.html @@ -1 +1 @@ -ESP8266 React
\ No newline at end of file +ESP8266 React
\ No newline at end of file diff --git a/data/www/js/0.439a.js.gz b/data/www/js/0.439a.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..a2b0ff8ca1bce1a46fb5ddf3a84b3663cad25930 GIT binary patch literal 11163 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 literal 0 HcmV?d00001 diff --git a/data/www/js/0.da55.js.gz b/data/www/js/0.da55.js.gz deleted file mode 100644 index d4d444197c4453c620fdf51d9607e74652e6f5fc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7625 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 diff --git a/data/www/js/2.8ca9.js.gz b/data/www/js/2.8ca9.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..7d566a49ac1c66a72875a9ff6aaa76f7d811cd59 GIT binary patch literal 157772 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
UURk#>x)kTUHPTPOXqtulpSm{E6Z$vH}^HM$Pv) zgj&7q;ocq}LTb+x_FeN{u9@}TmX-v?2Yf;nJjQn|o9y^wD$phDGH8wex;f9>H*Oth zGH2_O+&wsMIh`L0-Ub3*ddyV!Bxn?$ve8*(HYXhEp&?PK5Z)yX&E^kw@p?2)o_p(= z+}Jc6nbK>YE1U{nQ?leDeWl~TY0aUmZ#r@)6Z+Krjxp_Mf=ixgL>|zzwpJ&sN84-Q zTSOs%Sn#XPJX=~}_>^W4hTHQjOXK%3SECda0~&oWvn1S32W_i7NT2Xaldn}!5~3&% zsFQo6ylgW^qERauG$o2N45`vy<)dERh#yKD0?0kw*l22x>)@-#ug zR3{rHtQt6CB=xi|S=#^jHdLgGrv(v0wXWrc^(kXdStS<+%#0rcCg(Y1U9{VO0Bxgu zaY*AuP}|ZckC6i3`Egf1Uas}E`2fqU;?YyDtApTBa0n7X(Y|e(iM}ymP2^pGYtdf7 zxL>C1p7^;tBkKk>**y^w9}K>1(kBzrFF%-T{HvRIdXPVIg}DoWkqXpEe3(ZHp6!@i z!7Jx8!*`;f93Q-k2MWk!!7G)Dw%uK>GsuHL;q8*u-4Fo($;q<>q%(*Xq02kZ=k^_# zO2@>PCq-dFore#|K&eSf^~)}|Tk=E+1CRGb0Yh#~US8*fDeK0~S!K2?{Zs3h_XT;f zX?kWQDg+?`g$>vLT=8La%8zY0N~2>pvfTsFb+v@d!HC_ACtvr z9n4hgN#14x`{pT^*O#;^w`V2Du1ro2`4PQvcQmc;US9s3a=+r&-IA}b{R1=v=BXb1F9#x+^!&uOD(MF9CKA*_F5=OW(CB6weeq zo}$Y^+v!~-E{4guclM3t<@S9%8=Jc;Ds5dpPJgn`DmMwplJT1^Ti>NDeCF`hKK<4S zGeK#d4e4isde##8x-RJv3>C=DFWeEybB77m#WL4*Pn>pr$ZLE9cO))T-v`4 z>u|L?9eJ;6Y)-;@(o4QKOVUWSJ z=>ui_^F(}rUq9`S!8?V`BdTmvBC`^bGU0xOs4PG66GN${FPTsb0iKvijbdq4%Lcz3 zI#P!z;4j3Tb>iVFHv8JKJf`XX^aymEW$6?(ZStI9D{^cAt}_2oBX&Bs)kiSz+~{9r z=@|dL1l;JJ6_OqTo@Vn1Ccpe8>=kqsR|mKl3+%g^c3TP%HU^8VDT{OMJ=!2eUW+1< z_5@f`@INdH*gq`_+#$cu3w2}f@(Ct`h6B7QeRy6J5Y5_Rz8@4@eSRKGS4RTODGz@> z4^Ns8a987gnS&Es?h=*Z{Z7{vv^+aC&WhznF%4Vf(6FMyrh}f}Km=;fRoohG8()aA zw-EErMLT19zbCeG8_s&`>*>QRswFdxW-Gg~73uuJ)aodnpMSl=P_>VikfD916bS&d zo!cPE7KHcBf&k)$F+f7mXGL-(KU4Jn^rc*cUSFj7IQzTjWZi`s8lrg|?Ta6D_E3vi z`hNgbK&rpXFA+oue(Y@;Q}_NM_jaA+Cw2ghBU~=U$LbpBAy#L-x3eSG?4M41uilSZ zo*jSw8`D#0=brTHBGvM&SgJ3lu)EL9N||F8SlEc+Px|I zO@{uGb&jPtjQ=BelV9Xzj`m@HlG9HT{Y_!uagm~_ueCW8+?vZGo&1NLj@K@yHPF!x z_o5u41bKu{K}cI?c^O~Iak{t`*EZkP5MlZi+}m0Es=S^a z>8^dTc|HxhyU{1OM941cuL(>PAaekTr-0*R;xw@14Md;^r#_v5crmKaUL1E1qTHT9 z&}lU|3jxT_A9c4~TW-<{6&c*^(U-q{7C|Ae@#W@YO}bX(W-}2kX~z(y!geW=LJugq zLH5cNs2PREWq>il^c)UvrxKCm6Fk7#Wn?>X+$tU+ZcHx^#WNsB65_#ei5_+d`UFG?LOh&HozTOCE|f6z!3dUxmd4!;(HAlM{5F3h zucI5m5baph){b({MP>g*V^Q0G(M(kLUvv#C1S1l+qiGHu#D^{dE$4B&C*HZSJX8S~q(k9ogd9lmUU#DVqTiBI7Ozm=SAt$HqU@8t~ zU#Ir5=AKU7<pc&pIa97Nu z?Im&Ro}zz?K3bQ`TKfm+QX{Dgs{G3wGl37T7llkd&hTLn1R~^ z_fSqqM4VH$X9*!GKFSHHh;qvI{3;peH*-KW;hWJIam>OX`DKyJuD*z8w%{=qJO*SM z5kLtDpwl;i4BQX+P;J7Osvp0&cKEV&BT{$XAgh6|XSXXZNK8!FLrCyOF4Dl^CBFP%PII(@iQec;(e z8o|fn6}d#1JUJmLi)3EDy(;AVDxZ#hOukQeJc`d`$@F+KnadIu$3fxSJ;30fnblB} zhLf!a58pHho_1W3TAP?;8-OLT=*^)+c^Oh|jE#LH!705=;Scd_=to62UU2DBRC<|f z=c3zqF1qfy=$=I|+YLrNe&{t8?zx3~XAvwLY>!&ueq-UjTeyD~!P;sGB{YDdnA2fM zlq+g|m1jiTVvsCyh63qnwdg>79IFT-g@G11MqvoEA~0V>Z@Urkp{g%L?HR^KZ)vN2 z6ucF0>WK3wzrF_4`$FKF1NN)e+M@IN%Qq5s)0(Gmt(H#bqJC z0P_k~j&r2x> zw2Y)&gXHMYVyGEnbtwOBbin{MG~1>5p$^I{vJ`gf?Fz&1%Vj7soKKX)%a*Ni=soN> zS3>kwjMG9gZ!DOW0EPI9h^_#eeuF}SNDUV0Sdy%=x;CP7G}$(zD0P2Ci@Up*!d@J( zHP4aARF_KhW+`y<-$HiS@UKLPT%eSNpr5uA@z-;bnR(n!mf}#{rt_DwxRl5u<4K4n zkb>T89`-)Bv%{XP(1R6uw%Wm`wN6-lrQ5DN)9vo!GabzDH4w0+1kgK<1Nk|n&k1~@ z6d7HTGZnyut9!g*n3ub%D-30YfCXoe`LwaIp0#1%*fKOREZfvTRFZ6PVjlkr6+S7G zaxo{1NF?$&%!jQs9*au)B#hE{7NJbJ8rE_43`T_h1auJF8IB?>J1SOH$H{Q`6S2KvOFsCYuvN*Mr+G!D5r*28n_`i9iyRcbi8DJ zi2FQf005lR>6m7$CdAC<4|oz<+DeK$Gx*Bq)l<{<*4H2zqjSAI(C)9e#z2j4 z9>Bon!DY$T$<$HCrjA-Au812)8h^COaASqbhTeBc4B6@J`*b>e$E#Tz_y`S2O$s`t5BHjudkvZ$QXyZuWHYj-e8UzuA z@74Sd^+yEI_ZIU5iNv_=`hy|lXH~=02A5|1Gkhjv}hS8 zLhX4nktfxmOqQd#m{gP6DGCU};iU7y4+*jW4QzS`xODqqq+wP^oZEup_2 zu%Ii%*0rFzS`0h@MZ**ivg%agCX)Bfqk#)vUrVnB)+Q(W5!K05r_n3g*v|N#`t?+N zWjY^H1;Vh}k#wPvKELE5!O5e=mfbj2mDY!dtmbd(&;>^J?oBFxTSb*o*QSH1MYy1%;XjIAi-Gfy>v|4qZSDpo{eCuZ0iU z#!^P$T#IgF$wM{E(AX4Ty9fV5t&|t3T%9$?M#w1vHK8#rhuLxsyJvZ&Z&XzMi=lpT zMOy=dWbp7x3llQ(dz+#{mT(sx!`^aZgt~W8p_KD<1R+N7s}>@<7Iv9zK#utvGwTnN zftCWF&92(-UcEei_v-Dlr*Q{D&whK3pI!Wf$T!bl{TTOj022Bt55{k!6}kB8p`wu$ z$;e)X=IVGPmnO}+JH3!3B#Bvz0+PEOl8-9rwHQB@$tM$yLUM!_=EY4?jNiyfs|o$Go^Awd%M&Y7pQ$;2 z<2f0{+RzqqZ_6v#XwZT*=hS=2zov)$L~#lYAQ3@|e^l-K^%<#u?SwR-dhwTQMV9S_ z<=2ctG%_nER(Ef0+H_1lGf8IXj5XkJSzIs=cFS(rStS6onk;UI@ZbEL!npC+M{E-@{-?m-shLSIEhi>x+E4 zvBAH1R8j4EXoIZ)rf*~v=z}oY?Q}bRB5&%s$kNPIW!gnE`wf{U%Jsa;wue^u8?x~z z&T*rtocm~^zp2$CpQKYb3Y4w84Ul3*HoCb~Z3k%Kzag8tkW^(IfSN0EjTQwebUQul zb^*3F4w*sVIV`Tq3AaP@s2B5@%;vhnKEU0kY}fKSS6Oxd2sUMzCVzcVS#|+7K4A4> zyB3M(jQ-MB^{ujgx4MAA1y^M`n@5ixQL}#ljZ$1b8t0?=BjT!WjpYa?s357UVVZqn z0jD_Flr`Vt8_>Y~^bFH7EcEWpbAvgw95(W17ZAernxs=Ia-etT%2p(M6x9YN952c; zeuf=u1uxSqouqQSCO?lPN$;%XBU;t*U~NH+2)UN!+19nrIF_H*WcDd7@(jCz=GrLJ z1dyOL8t&S)oX?X>Nn-RUrO%4!YgckQgIsH{4KlbP=k36;LOzX8o&KM}Ht!5tx|>EL zy7lOP&L3ThI*WRGy4c)AJ9wdT$M;;%^4hOyK4rgM%krwoZ`Nd+)%V`!uk#roEONO- zhM1j;H@J#wEdK)*Vlx=5Ayg~Z{^#5uuO2DHJ$SP0M9sfCLu-N78$hS0%y0p$q&EI_ zLRm;L`3QZWD9eCOK9l~2XOalf#tfRa^%7Cs`qq&dz46FBg5Jit2?GzUgAC_=9)A`N z4-(+<-Q9(K9{h+6RHae>Gd15h?sn2St)@9ch)}!f^JYrE?vEJFCm8tQMJui9jg8Az zu)m|d3aTEpE3>NfoneT9ZW@Ia-7Zb+3N|~=2{$7tSlQOL@~uCo@`v-nos3W_c|tVX<6x4AQ9U))%n z$7HJzkVZrW;OG3DYyt9DzF;pu&USq3n*-Mlzj3h>W`4{K&s}i?LWJpLqS|ni5zI_B zHd=H3(#p(~0{wxMBo2a23ZOlV*XsR6pdtVD^QzD^nfFie`45d&hRQd3?E>jxr|>aw z8m5L0h%;j>ru+TWak3EeBjXfFo6cbL{d6#bn`3c0avvE-o4vDvQ`usP_rS)6^e9O? z1Jk&YVy+78z8=MtMxjh#efJ$7fGFn|XNku2ql6Z0t{(GJah~5~fbAc))edk>)xB{f zdFu+|`c%c#Yuy-%V-Pg_BYyPHN1JdHyd;C;y3SWtk{t&8QX8~V=5$^HZZ>OK6Yppj z6jk&jYk0GDMgT5p8!L=6R0&rQr=V|q8-ZP=3|HN9aUMArj+ikTWkMAMiie6t9cScE zTVx+gwa%2`k5W8BzysjaBmh8|Zv9uo6S4m*)!mqXzVq4EWy zAI2*x;6N<|7kLiEEdjqdJuwkWRBh|^u0C6YU`!Dl&<<8!H0R2Trn33QE;QAPPei%t z6?s7MYClBU1E<*lT*+Ea#n%!lxWvspHHO<-DZ*AV5;;UaQAaSsP8emOpdL`Js1p(ZYr(e$Q?#k2P?|;{LDbV7>5gRsX!e&R*?=l`K$P^MDwN4NXd6_N1 zkH!G52O;-2R!-f78jis6(GY0yoP#;1>#g4nL~zQnN|@jbQ(FZA#&D=gtii%vt-+q2 zqcdFv?lA~m(o&^sL5NOvBhkv+w9UK&#mtL&_dfdf!2m~qWm_9VYy?J zdx`L)7iigt;JaY61%r^GMK(|4=*&eo9SITi;T1w>=`M&IE4=+(r{mAL<9wQVP0VQ) zr9R3q=eEdS6(_$6PKY#ifW$z?U$3*Wsbx5Pfe$!v-ka=zEZJrtAu_EuY))G?zO>h2 zKTEyg1yIrjAc;T3mw;4!ZgmyNHh(N}q0>z?XbgBf$z!ZKTT!h*xcQeT<5vJWa;hX0Ptit( zY2dwK`#;lH+rR^|3LWhCx`7trdKcenHgj})oy?*JgDMI_TOY){2~LgBkXk{K&>%B= zOQEcLJg7Px*>f5hRblE;<5QPa!}h>}b*f9T)A?nr%xRxBaKilVm)vag9uy^V)TUpW z`hc7A?haP&iP0uprIO3jcx>DuQq(5syS45b|VX{V(NyyhM~PC za~Q_r91i1XF~zFLRQvczTF&7}oU5*|>2~Rddl&(PsZ7R)j4BBIzQAxEx-|#9u23dD z&Fh2H^a!d{otLOOuZzTzwufRpH_WN6VkY=uE5d0-zRA70KS6_V8)4VgTkTd?oGXM# zO*ryrqWj^;wZ0OK~1s=-FgK z(qZ?M;Vibu^XnPj&gm!l6A<*PotdiQ)$A?pmjcqB%8SKi#b-Iv=8*Iv`I0Zn2XxQP zXgm3G)pF=!n89X$L#_{suM9=ya!1g-(QE9qcFM>-s?m3R=C{i+88vND(~*Bz)wg3ySKX+2&s)vDLOKV3pPo?Qd&a!XBE?! zFFKU_=3C9BFK=sf<&?i5zafYkXw12#G1Z&)%Lt z$9K|Kk6)aeKRrHwb^P}H-O01_<2UCYj^CZXfBxdd`IBeoN6+6pdm7y`ug8K#o_}C*{#{#b6&WU|HnQ5f86u`Uha8ucb5QQ@9hN)Psw!glzAx&{8nt1F*>oQ z8S?-G*`5VR?^;ZlRCdflj3}e2ch$}k%7v+7nI)jQo;iBpC`_x*% z%|?qfKurhc;^f+$g{g1Y`qZk&QaOR;P&^*lVLbGGRQi$VfY!|YCk;?9V3uh(WV#M! z=z`s!f2JR2lF+x*SfV{|fNQC83Xh(P(A*Ch%HanZal>n^B>qmA>Ft`;@OcYt06JJ? zA2YZlx2VAY?gMpiy@j15%lHHpbQ-txSj@x~ZKR27&eib@$iP&s@^w5NILCx17>5tD z6dF?%gT>ulYk|jZ6ko%{kvB1I8I-iAyxvhwW{A%`)Yga_LL+_Da?&i&GO960sw}`^ zOA>3r_&Y>Ni!f5LEe_QR!O9s|V_|d(rOuYFavjfqt#QZSC!|Mcnx26Hiiy)|zpkw1 zx$+3;Xi%Py6*8dZ^XBBC%S1m{KB4DzcRLQp)Azdtn4)s$H%l&Qv!9gtY$nIZNQYaO zwiJ1`rq=-$Ufy9CV}&XlmY~OdRqA z3FN#cyQasexa$G(nL266k(u2Ge_@YZqk==N&iRusc+%^5BTDFY37sw3=P9mB6~w?4 z8+R_{+2E?4zOiwIMt0&DuB_G-X%Uvo;Dv4 zl)Zcv2j}O6sy|m2(Dm{CF4%l2o|n4DYDr!+P6ga(Q>ROB`kR94bLw_f^5jPv|mtcRTAU|Hj6y{^Vto9$%lj zx1%d}+Ht*+=`)DePe1Uv{Fd!``tGriA*->_@W!YCmg?M$nWsfpRaqi54EC{+-?j^fvvVF8V%i z&r3oAuzEqxr^`W@nG3p%U!dMBzlmvG+d=31a%*c4zHen{&OaD2To@DIhqIz5fXwv- zpz~fVE)Zq}gwUB${HkXgpP$g7R%IkrRFOEyjmuKa`M-5Bexi5jhLx!IA4cp?Ju^&f zT~Dws1VHZ?d-;G6*1jmm6;FOL7CFIG6gM)GzN$x7co?#K+Bzr?^dr&GM0u}4sqxE9`Y`d#t1EQX8mgL@Cv;sC5dh=QBg(>c>h!bK4#4qu0t-$Rk ztl{roTS6lP~%gZ~evP)!KN$^^WL$YE53x zN@8DSqvFe~q^~jlCFadEPauG@q>>$=WPI&J8t%e*jrn1DyJ@kn{N(dR9;k z&87SZ_2Lg^fwI#nhKYecUPBRd7HnJlluuzJsA4w>t16On-I7chh)gPtarK+Z3SpE> zW^JSfUr2e|5|EAyNp>5R;f6F0NB{ztF$45Wwv|ec=SzTy4# zloT8W3HO9@Zd7bZb(3`ACPBAGKpkzBoHd6Jx>SrHl7!kBy^^B)eL3uImFgwTfvD)F z?Y8b+bS_;XP!p|Rl|0wt#GWCaT^@Yb;*}0S*CLh~JyX#}kAV_3+Q5bsBNT9wjLA_j$8k%0(H&P( zhV`guoegeqmGs0G4ig}A)aaXN+*l>rd0j|P#EhLH5rvrN(~7)VCD9W;Q@Z3pZKgt3 zXe7(Xg9hfXzT8a*M&wBenRR@JqZkq7WFF_<0fGh?x?Uf+l3?R_A;~Eh5##YlF4NZ3ae5?fXFT_6*`lghf$9or2~xGqoV}-TVEhX1PFmEhas9Cm`UF`{O@&w5`g<%YGGRlQ|p+$V%+QcZ3I z(*E~sSL*SMIVZL0c6ln06Q8nd1RevsZK4KSJgbjBgG2%@;Zau)^u4hrBUnY}$clQ*vieaZ9SE>fr_!gYMEf#YfT;h=6`jVc0wr5Dj6}fkY zQ8cr0l_Os=FXPB<$3;b+JSQ1)BMX(ba@OtAqT@~=_L4lA^9)k#f~5HN?rb+f^{CMm z>I0?)nbaB14?rQlh$k{O^U%6Q%tgD!ovlo{lJV&Q8XoNJiGJ@)T+0|R)PPu zh(F=8fsC0`)1DOh_2E@g9HIe|elHZCVMkw(uh8en$ck=Pkk!$xqHUuf&z{%(aK`P!M06UA>{KCED$wcV3=u-qD24HN}-AwD*jS|I7VX z`a<720HtKIY6P78&><)S;G4#<6gQGs??#u1jceR0=CxGJYpNrN96y;?(mZXFtj!@E zMV*-%QrXvfy#p-t_jp=KkMT$H$4Wxeq2i`s$MxOy*y6>@3^&PMF{;D3~0K2^gtUjtvWp&d9Q5t`i z?doALeDG=^gbB4Ga86ei;C)dq!@EltTj~+;qvEj~(pJbw2dCZ|AYXc!Sy&eqnaBgR z$PJ}vSe9rTwl2w|ZjRU+(33e}^H}T{Aan{*4TXnjLcZ3Ojg4bTGRa7|hEWR$TSJq! zfZ8p>m1OBLA%ytqJaO=H(tsd>A|Ix-PvTt3cE`}n3Eq@6Eh;S(Ptau~(70igGx`Pl z?u#7y(t@k^0WGPTmlLv7SUDmpt>2?_baR!CuGC8i9^Ve!U#f_`A5=nb{t}oeuZ?_xz;^O(UO% zk!i4|L26`*?+d}*iwF7ROUfd2PKe_F90&RHW zrsX``go8urhJ_L{EM4~h8*1sb9G>IuitIXC zW-g`vMM4O_10C3+T^Nu>n`^il@#7jm;uU_dP8oi|shr>B#hCO+k)MbkbD0z)%2>)N z|9mE!IJ%WZLD4r-e)M%r|B{ZZ1-_DGup#(4#D4n^3|h6wydjsv_4ViSly}itx5 z&g-9p6Yyg+k)0?9F)v1nIevG?1Oi&^2ikN#L!a;2<-57&o|6KPT$LJ%KD}6C&k@*k95~a+)>#z9_<)nu%s)x3 zEnDQe$%+;d4OQfh!CQQR4aGg}$_!OtnBCI00VsrKj%zv=ngK$MS5i$6m>)>%j25Gu z;?+ICBBlHwgln{1;-%<4x0-V$tLLgx8Le*_8frpYvDL$9@m?@*YOtXTwdK&V6z#cT z0DA~l~`2fDBKgjse|JQ2&Ej<0_KmYmY?2-6RKGe9+pECYVKES-sk1O(34E+4OB3sSG z&u=R-HW~T(WmVf%Ge5tt&gdKZ`NxWkRZ~B*T$!)Y*iX44f0MbNY(?Ih!JlG9M$hC= zx+0Tj^d~R>HLE}9RjeXKN+Mr%vmmQ=xPgu+(L+FvKJ{c(i@Pd~G%p>|E=Oroo2_UX zhDFGTi9St8J`vG`jDAg7rFGv_vO>$ONsY+|zWz!;M8ew7QYUMzES2!1NqEf%grk44 z(R%N4!fz(Q>U623%ydC(cm=3#)S&ns>dsd!1pGrfqabs|S|?Jq@p~ybjo_vo%1SOT9gFt3zRR5%nYJH8BboH%`0s4&o2M$@lUtIzXy?W zkQme?9<^}!`52WMNe_v%*ExJb=34-NaK@OaCw;PBJ4frM6pzL${q(k^wYbE7c zu$i`T9}%{#6@zN1kc$#7qtoc|*6-)Z)?fczbUKHfE&O@9OMmw% za72M43iOVS;BSAAvi0|#(%&NpbdNBl2Q_Tb&r|$M*?Qf5OgZdO;OH3y`khV}0#Em_ z%+Ud*96de6z|$iN934G9`#-f~|J-VKwhplACwtgThuhqxX8K3e%y#GOZ{IxSz&a zrUQqJ*ul=#x#o)*v6~co@Yy&eb;I|p4`q^n`Z8wTzDXdvpAKK$C?mKS@Ks3@Zk{!r{736W;K6<<0BbVn1az_t~!IuC5un;@pN{T zd`mw}%ji!vzd3>s8>C%J=3lbW8g}Oh8=|k*Bq@e&ee&sCZ!i3n#hMnAN9DWgS2-!a z;xi4K@LZeb`D`uA;qqQgQG3s%!?w>zBy9dXLx8-71`dw1=@b`C-!xEp^=8uce4_H^JqB z0&)+lXuEQZV0%vSrL<5k)YvO7fST-K_3c*cgNjbDG@AFt=b8uAvUATw68&`zSKjGA zx1zJwDcme);iF3nbw8D!aC`R*>UoEbnYkW|j(jPrk5E@-or^J~GtGQ=%}h*(WSopZ zX|#@bL(kDz0!)#RL;whIpC9XQV)QWj44s0MSNb~)kpiv1j5!vqNK39Rz6|jzi!o8% zp=Tw+XAG6ERcllo>J`Bt`22)8C)&h$MC6A>WrRyd6V9X>8?I;7`z@k3!!1NZnUUzO zs1iCvmygIRLXBU_3HVL@!O{%R@*!ZHg&mYLYK@kwacitnWi1B^z0^f8-8XPM$+eSqG>WTTNI^LjA1BG zQx9D@i%re_b-mePnE<1WS|x-%WCT#-^O3VX0q|QBc(DDJoIAU5x-~<_I1> z8#M$Jf#g6uhPl=wwp??H8CJR)d0lbV=tj*1r?*O51P&P8687#c@$5OqV^vXAh2o9E zuuIM0EL3kSfXYJ0hh8yk(N@QkMbtGFLmmo!U~Uq_q)<$!H!^7yt|l9MC&7Giah(#w z0trh*<~R_#My2WpQ{kOx`Mku|tb!tgvQX_D3o0+S|G-O%7 zAD{?oF|!T1ue!%(@?EEq_+CjSah~d@xnx8#y37D)PN%xo@ZRu-_?6j;{Os-tsa6B` z#FA*ltlYYi=+|@&h=)ru^|5sUkeGW6G;^^f5!C zaF)QbZIM52_|EdV-0H58(^0IQWZTwEpJ<6;Qph=|(^Y)EQ~jb(y%30Ce3VK{%67w# zwta#4{G;3&Cs04y5pW}N@_nmga1gLh-5{Dj)!}P=5tyd%qhp*NVelp$!=^_5^j4CM zuF!f8expew=HYPIju5e<%4FIoJAy@)qJ5;Ti*%ft00~K8sGM)ja8|F^K5Zq)d$^FW zD_t#mBeF)PJiC+IUK;jQyY;#>8WBm;D7xT9zvec?~Djoi?eH5Ak^Tj-`B zy{|2NXZZEUfyC`YhAZM3ejNe``;P85TWybaQjlzUh;ptnR_V!6RxfV1gg!D?%Uz z6hD4W6Y{{0pF|M^Xa6PL`0eEj?8^S5Op_j}J7sb~o_LYtSLE~gF|GK+*bv>Xu_2z7 z@h$5LK2Ua<@>T?vDeitLWmZQVp$&^QV$iLTFo`RyynsVaEF_~|=}Rg*F4jw57^_9f z2v$b!8OifO1*{nshRiVzRITC-sXCyBwX)mrT1m{EmsJ@!qP_m`w7TBtcgCM&3(XjW z<|WXPQY($nmu@w7o+O!f{j&4~#a^LK$!iokdR>yp^5}{rj$1Irnyl3$cnYW!bXN7- z6+@%WDXfr?E|((S*nrNTBhh^%TW^6*j}I{n(?kMOF4g(iVm`E9RN1hFoup|J&`Utz zkYfHyM?>BNN=z6la4bmZxeTgHubzup?%W29z_Ff69*|>L!ku|Cqf*K3X8y~`?3pQP zSTin)IwY`e@1-t)80vbXUdr9w!S~GyD}3}`l%AaVvr?R=bCT+$**sayP*4Jn*vs;P z66oddIr1cwT1{@PZ>o=ZoH{ah=_;8!yBuV<+%@5XR_qbG3k>scn8$yV(OH9bJv?q;7Gr&XG zZD(uVp_J`9nr?YVQh^&AK#8JVb}M34TEVVg8EQR2#|arFu znT0t$mHfsN!GRA-g>Q^^s{5(6VCN&ov;+f=cHESHGjxzeG6l|MF z>lEU*(kUz?nwuV1)e>DjLN5!EuP6`h5PObH=@1W-wr%QV43`3#6xTF-w;eogCWVw! ztWb)HS8{Dn%=$h-Ttm$>ti+HNXfVGL&}4~Jm1C=nI#CN3tV3Q{b-f=}_T_>?1uY$@_~Eur|tW4cw4pP5^3{T$`@os zm5++%q^-xFfU~2<9tB>=a^z*foqgJgd&K2u`U-doxeeLARpSW~tU015(1_W4z%B>C>u4ISE-; z&C@xTzWSKzkA>Dyt4)tTr^8kPClf08t!!-#zQdskhkX$}C0B#)ao#K2tSN=Jr>fW>Ao7t<0-rY7}jBCG0m4yJ=CBuv9FQ3-?2_lvD$5VAEcvDn(u(aF|g5T+2Fh9c3?n9kf{ z#9x^CnxZxoicA2uqs7fsbzFQ|Iu=DW8AN@?ZFzb&K!2_4^s=QN>{@6s)>eCWx4`re z`pGIhIjY3Hz-7XUa`IvUvr((0XsjgXN(y{`cmY3DiEmny>}USkBI}v1WigdCxAw{k zoRVK#IpwtW%8Z}tQz^1Dm&E+N^p$~>---@z;qD`h=srTwAbF#g$QmaE=^tN}wX)4f zt6`^F^d5&Bq-D*cY@;x3X_8A{B;M#rkPjhx)bX7P(c_MqFnj^2grW?YpxjXit|)fDjLX`6lb#kQ-N})!P6h zf;eVxlS@MmaKD}6Hhas~6gHLA5}G$RYCr;7LSm4qo~20LCPFo`pjjMA>5(P&)ru!jxPu39c!LmOw;UgX=aD^nc4!l z&(sQJ072o%@|w=IHCQ&yuKO_MKG1W#vMa8O(O{M;u~3NxLS>UUji;tJI19=U;#7~i zx%wPySyg?G?Kf1<)`YtI2gtX|>=N)h8`*2_1V+TTPx{YfFw-n`W>qG&wPqGVh{~nQ zb24yRAD)3Rt65sJnx$)2vm7XeSX^oKt5$(vy^1oYi%1-`TiCj2sRyb|jOt^AkC3XO zs{Fk@YfDqwG^#f&X3|sW$zPLYl+2~GjXgKQK-qfYG?~re_DyvJgcf5%j46aZ@v6bc zu8TY=#!t~0K%M#vybRiMfL}^kS@a^2u9;^pN$k^^N)gA(m3v@8+ey%UP@2cwd`H{Y z)zJVUx_xy&$++7OBMIx+?HFzcM2UXyd%CztWf68!hvlxb`1aX+6b0}nnE_68f_&$T zq=k)DdsufDE8m97UoEbAKDyW|cd2?kNJf?x zJ_vXx0X@uAxDM>2PVN5%+8u>3>ipm@Awu3luR8>f7Gkre0xZ*kb~`=}&_y~_s~$Be z^~;Jq3(b7A{AaFmq&kO%&Pdn6=~ooMU{ST244wVU{Hp@U=R|QR*j&JBzLo|8O|YwB zMrbDB@C!AB6~(?f4Q39oE;5JkO&$2=HUOMXGM7z+LYZVpbYlFviJ7;}%6u`p(w4)R zNPFu>F^hlf#jRYDdzP_bRnQ8Scg?tOFyC@nUHfB}(=z$3X`(sB7`EYj!OfMF)2B|- zmTWt5xO9~D!^$c@cvXIItNhSVrI(>0-L&|-W|6};xpq?H{glP127v}xQT>5_&&263 z!rE^|I0{j}J5kp1FC_fKNnrC(q&C4;T=5At$xvF~jaA|aHu0^Bz&xnhpfnszSkeCU z%`nBJd`?T9fS)>Eu^i}|nPfVJ7$cl;{7Kj38JWdY6`@{VF^{r5i@Ff%i(<7MT8uZ} zoHACiV;zGwYB7d>G3GKa6~Dy_<3pTc?&$|!%t_+;f`4?FE#0bE$q188)244t`b!<5 z^RRS1C)<^q=JR@|FtVXnmhr53qvY07Q#iZGJTDxloio(TM-v$>@-Wan3n9+ehuBokM_S!51VZEMatwtPUnn+%Rd)EY zGlB212wX_I4=69_Gy501%*Yed5}*~mEUE`a1yn{fQ1!uDTPdkS@h`{ZbJpR)-!rXM z^|`zzZzuJB~#x92*-bHa4;P9OAb< zhhwI5)WK#}ie z_ROjpu8sc_lR~+#l?M|#TVz|xm`kJ>!syknKJDtLyQkHxX{>#OVjhLky8fn zaG9xBY@&VJUS-P%zAI53%q8;}7Gqe< zrO14eH8dwwnpzCfWP^+=*|5{51y4Gh({xU}$#M@vWMgb6?0x2hRlPEvxs|Q`!rJ=3 z^UpsZJ@?Y3gs3a8eRWqu{CjUw_~wJ?YkzGKrmHzMv#ku`$vE-y)-g2B-hd^kdOSep z#W@?nMQgkmyZkQx;>GZW{#lRIdTp8-pF&U2h<$^3MKnVNacfBzLcM8ZgTg!y6owqz!FCuO7FGP#HhS_?dH@A9K$u>8`TY4SPDS&Gzf66GP z=Sus819C#BrVD4vFoW~h%PA6mEuKTO^Y6dt#^%@B9zMmZ-w!_$2STu3g-xry^Vt3anTsNQ!;|F+Hz4TY^f*{ zX1hhFXG=0mcqCgVvC7K_*gc;CeRGIPRQt(R<@>>gI5Rvt`W4T$l zHg~n-82LTESY$sKR_-m91KN!BKcaF=E(fs3mP&X+w*mD-WheYhgl6Tu2xH9{<6ZA| z+PE?Gym0M)9-;L)
s5;|eF7i4I2{31|wDQ8Sl6 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 literal 0 HcmV?d00001 diff --git a/data/www/js/2.9881.js.gz b/data/www/js/2.9881.js.gz deleted file mode 100644 index d92c214f920377e45e889b3b0590dd8b58c3b827..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 137639 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%0AHi7*}>*vqoImJMV&3niiwUheD9JP}UkUMH8 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

*e!% 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 diff --git a/platformio.ini b/platformio.ini index 2f81ad3..c06a090 100644 --- a/platformio.ini +++ b/platformio.ini @@ -7,10 +7,10 @@ ; ; Please visit documentation for the other options and examples ; http://docs.platformio.org/page/projectconf.html - -[env:node32s] -platform = espressif32 -board = node32s +[env:esp12e] +platform = espressif8266 +board = esp12e +board_build.f_cpu = 160000000L extra_scripts = pre:timelib_fix.py From 1bcb51e210bdab2749dca54c3929ee7481670bcc Mon Sep 17 00:00:00 2001 From: Rick Watson Date: Mon, 3 Jun 2019 22:18:59 +0100 Subject: [PATCH 62/62] fix typos in readme --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 45e7d7b..5815b5e 100644 --- a/README.md +++ b/README.md @@ -45,7 +45,7 @@ Resource | Description ### Building the firmware -Once the platform and libraries are downloaded the back end should successfuly build within PlatformIO. +Once the platform and libraries are downloaded the back end should successfully build within PlatformIO. The firmware may be built by pressing the "Build" button: @@ -164,7 +164,7 @@ Username | Password admin | admin guest | guest -It is recomended that you change the JWT secret and user credentials from their defaults protect your device. You can do this in the user interface, or by modifying [securitySettings.json](data/config/securitySettings.json) before uploading the file system image. +It is recommended that you change the JWT secret and user credentials from their defaults protect your device. You can do this in the user interface, or by modifying [securitySettings.json](data/config/securitySettings.json) before uploading the file system image. ## Building for different devices