10 #include <ESPAsyncWebServer.h> 17 namespace web_server_base {
25 bool canHandle(AsyncWebServerRequest *request)
override {
return next_->canHandle(request); }
27 void handleUpload(AsyncWebServerRequest *request,
const String &filename,
size_t index, uint8_t *data,
size_t len,
28 bool final)
override {
29 next_->handleUpload(request, filename, index, data, len,
final);
31 void handleBody(AsyncWebServerRequest *request, uint8_t *data,
size_t len,
size_t index,
size_t total)
override {
32 next_->handleBody(request, data, len, index, total);
51 bool success = request->authenticate(credentials_->username.c_str(), credentials_->password.c_str());
53 request->requestAuthentication();
59 if (!check_auth(request))
63 void handleUpload(AsyncWebServerRequest *request,
const String &filename,
size_t index, uint8_t *data,
size_t len,
64 bool final)
override {
65 if (!check_auth(request))
69 void handleBody(AsyncWebServerRequest *request, uint8_t *data,
size_t len,
size_t index,
size_t total)
override {
70 if (!check_auth(request))
84 if (this->initialized_) {
88 this->server_ = std::make_shared<AsyncWebServer>(this->port_);
90 DefaultHeaders::Instance().addHeader(
"Access-Control-Allow-Origin",
"*");
91 this->server_->begin();
93 for (
auto *handler : this->handlers_)
94 this->server_->addHandler(handler);
100 if (this->initialized_ == 0) {
101 this->server_ =
nullptr;
104 std::shared_ptr<AsyncWebServer>
get_server()
const {
return server_; }
105 float get_setup_priority()
const override;
107 void set_auth_username(std::string auth_username) { credentials_.username = std::move(auth_username); }
108 void set_auth_password(std::string auth_password) { credentials_.password = std::move(auth_password); }
110 void add_handler(AsyncWebHandler *handler);
112 void add_ota_handler();
122 std::shared_ptr<AsyncWebServer> server_{
nullptr};
131 void handleUpload(AsyncWebServerRequest *request,
const String &filename,
size_t index, uint8_t *data,
size_t len,
132 bool final)
override;
133 bool canHandle(AsyncWebServerRequest *request)
override {
134 return request->url() ==
"/update" && request->method() == HTTP_POST;
140 uint32_t last_ota_progress_{0};
141 uint32_t ota_read_length_{0};
MiddlewareHandler(AsyncWebHandler *next)
bool check_auth(AsyncWebServerRequest *request)
void handleBody(AsyncWebServerRequest *request, uint8_t *data, size_t len, size_t index, size_t total) override
AuthMiddlewareHandler(AsyncWebHandler *next, Credentials *credentials)
bool canHandle(AsyncWebServerRequest *request) override
Credentials * credentials_
void set_auth_username(std::string auth_username)
uint16_t get_port() const
void set_port(uint16_t port)
bool canHandle(AsyncWebServerRequest *request) override
void handleBody(AsyncWebServerRequest *request, uint8_t *data, size_t len, size_t index, size_t total) override
internal::Credentials credentials_
void handleRequest(AsyncWebServerRequest *request) override
void handleRequest(AsyncWebServerRequest *request) override
bool isRequestHandlerTrivial() override
std::vector< AsyncWebHandler * > handlers_
void set_auth_password(std::string auth_password)
This is a workaround until we can figure out a way to get the tflite-micro idf component code availab...
std::shared_ptr< AsyncWebServer > get_server() const
OTARequestHandler(WebServerBase *parent)
void handleUpload(AsyncWebServerRequest *request, const String &filename, size_t index, uint8_t *data, size_t len, bool final) override
bool isRequestHandlerTrivial() override
void handleUpload(AsyncWebServerRequest *request, const String &filename, size_t index, uint8_t *data, size_t len, bool final) override