move credentials into struct
This commit is contained in:
parent
6a2b4df655
commit
bb1a67c49d
4 changed files with 15 additions and 9 deletions
|
@ -6,6 +6,7 @@
|
||||||
#include "esp32-hal-log.h"
|
#include "esp32-hal-log.h"
|
||||||
|
|
||||||
static const uint8_t IPV4ADDRESS_LENGTH = 16;
|
static const uint8_t IPV4ADDRESS_LENGTH = 16;
|
||||||
|
static const uint8_t CREDENTIALS_LENGTH = 32;
|
||||||
|
|
||||||
typedef enum firewall_targets : uint8_t
|
typedef enum firewall_targets : uint8_t
|
||||||
{
|
{
|
||||||
|
@ -44,6 +45,12 @@ typedef struct firewall_rules
|
||||||
struct firewall_rules *next;
|
struct firewall_rules *next;
|
||||||
} firewall_rule_t;
|
} firewall_rule_t;
|
||||||
|
|
||||||
|
typedef struct credentials
|
||||||
|
{
|
||||||
|
char password[CREDENTIALS_LENGTH];
|
||||||
|
char username[CREDENTIALS_LENGTH];
|
||||||
|
} credential_t;
|
||||||
|
|
||||||
namespace firewall
|
namespace firewall
|
||||||
{
|
{
|
||||||
String protocol_to_string(firewall_protocol_t &protocol);
|
String protocol_to_string(firewall_protocol_t &protocol);
|
||||||
|
|
|
@ -27,18 +27,18 @@ namespace firewall
|
||||||
|
|
||||||
ok_t API::setup_auth(const char *username, const char *password)
|
ok_t API::setup_auth(const char *username, const char *password)
|
||||||
{
|
{
|
||||||
if (!username || *username == 0x00 || strlen(username) > sizeof(this->username))
|
if (!username || *username == 0x00 || strlen(username) > CREDENTIALS_LENGTH)
|
||||||
{
|
{
|
||||||
log_e("Username too long or missing!");
|
log_e("Username too long or missing!");
|
||||||
return ERROR;
|
return ERROR;
|
||||||
}
|
}
|
||||||
strncpy(this->username, username, sizeof(this->username));
|
strncpy(credentials.username, username, CREDENTIALS_LENGTH);
|
||||||
if (!password || *password == 0x00 || strlen(password) > sizeof(this->password))
|
if (!password || *password == 0x00 || strlen(password) > CREDENTIALS_LENGTH)
|
||||||
{
|
{
|
||||||
log_e("Password too long or missing!");
|
log_e("Password too long or missing!");
|
||||||
return ERROR;
|
return ERROR;
|
||||||
}
|
}
|
||||||
strncpy(this->password, password, sizeof(this->password));
|
strncpy(credentials.password, password, CREDENTIALS_LENGTH);
|
||||||
return SUCCESS;
|
return SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -46,8 +46,8 @@ namespace firewall
|
||||||
{
|
{
|
||||||
std::string reqUsername = request->getBasicAuthUser();
|
std::string reqUsername = request->getBasicAuthUser();
|
||||||
std::string reqPassword = request->getBasicAuthPassword();
|
std::string reqPassword = request->getBasicAuthPassword();
|
||||||
if ((strncmp(this->username, reqUsername.c_str(), sizeof(this->username)) != 0) ||
|
if ((strncmp(this->credentials.username, reqUsername.c_str(), CREDENTIALS_LENGTH) != 0) ||
|
||||||
(strncmp(this->password, reqPassword.c_str(), sizeof(this->password)) != 0))
|
(strncmp(this->credentials.password, reqPassword.c_str(), CREDENTIALS_LENGTH) != 0))
|
||||||
{
|
{
|
||||||
this->json_message_response(response, "unauthorized", 403);
|
this->json_message_response(response, "unauthorized", 403);
|
||||||
return DENIED;
|
return DENIED;
|
||||||
|
|
|
@ -19,8 +19,7 @@ namespace firewall
|
||||||
private:
|
private:
|
||||||
HTTPSServer *server;
|
HTTPSServer *server;
|
||||||
SSLCert *certificate;
|
SSLCert *certificate;
|
||||||
char username[32];
|
credential_t credentials;
|
||||||
char password[32];
|
|
||||||
|
|
||||||
ok_t setup_auth(const char *, const char *);
|
ok_t setup_auth(const char *, const char *);
|
||||||
auth_t check_auth(HTTPRequest *, HTTPResponse *);
|
auth_t check_auth(HTTPRequest *, HTTPResponse *);
|
||||||
|
|
|
@ -19,7 +19,7 @@ void setup_wifi()
|
||||||
void setup()
|
void setup()
|
||||||
{
|
{
|
||||||
setup_wifi();
|
setup_wifi();
|
||||||
firewall_api = new firewall::API(api_username, api_password, 8080);
|
firewall_api = new firewall::API(api_username, api_password);
|
||||||
}
|
}
|
||||||
|
|
||||||
void loop()
|
void loop()
|
||||||
|
|
Reference in a new issue