@@ -105,6 +105,13 @@ class AsyncCallbackWebHandler: public AsyncWebHandler {
105105 }
106106 } else
107107#endif
108+ if (_uri.length () && _uri.startsWith (" /*." )) {
109+ String uriTemplate = String (_uri);
110+ uriTemplate = uriTemplate.substring (uriTemplate.lastIndexOf (" ." ));
111+ if (!request->url ().endsWith (uriTemplate))
112+ return false ;
113+ }
114+ else
108115 if (_uri.length () && _uri.endsWith (" *" )) {
109116 String uriTemplate = String (_uri);
110117 uriTemplate = uriTemplate.substring (0 , uriTemplate.length () - 1 );
@@ -119,16 +126,22 @@ class AsyncCallbackWebHandler: public AsyncWebHandler {
119126 }
120127
121128 virtual void handleRequest (AsyncWebServerRequest *request) override final {
129+ if ((_username != " " && _password != " " ) && !request->authenticate (_username.c_str (), _password.c_str ()))
130+ return request->requestAuthentication ();
122131 if (_onRequest)
123132 _onRequest (request);
124133 else
125134 request->send (500 );
126135 }
127136 virtual void handleUpload (AsyncWebServerRequest *request, const String& filename, size_t index, uint8_t *data, size_t len, bool final ) override final {
137+ if ((_username != " " && _password != " " ) && !request->authenticate (_username.c_str (), _password.c_str ()))
138+ return request->requestAuthentication ();
128139 if (_onUpload)
129140 _onUpload (request, filename, index, data, len, final );
130141 }
131142 virtual void handleBody (AsyncWebServerRequest *request, uint8_t *data, size_t len, size_t index, size_t total) override final {
143+ if ((_username != " " && _password != " " ) && !request->authenticate (_username.c_str (), _password.c_str ()))
144+ return request->requestAuthentication ();
132145 if (_onBody)
133146 _onBody (request, data, len, index, total);
134147 }
0 commit comments