atomx / nginx-http-auth-digest

Digest Authentication for Nginx
Other
44 stars 14 forks source link

401 Unauthorized Error after Login #26

Open fti-akumari opened 2 months ago

fti-akumari commented 2 months ago

Description:

I am experiencing a persistent 401 Unauthorized error when attempting to access the UI. This error occurs after a user has been logged in for approximately 20-30 minutes. Additionally, there seems to be a 5-10 minute delay before being able to log in again after the session times out.

Steps to Reproduce:

Expected Behavior: The user should remain authenticated and be able to access the UI without encountering a 401 error.

Actual Behavior: After 20-30 minutes, the application returns a 401 Unauthorized error for the requested endpoint.

Additional Information:

I have implemented auth_digest_timeout in the NGINX configuration, but the issue persists. Used curl for testing authentication, which initially succeeded but eventually returns a 401 error after the timeout.

Environment: NGINX version: 1.25.4

curl -v --digest -u admin:admin http://192.168.10.148:20001/stream-viewer?stream image

image

erikdubbelboer commented 2 months ago

Can you share a .har file with the good and failing requests?

https://support.google.com/admanager/answer/10358597?hl=en

fti-akumari commented 1 month ago

@erikdubbelboer

.har good request

{ "log": { "version": "1.2", "creator": { "name": "WebInspector", "version": "537.36" }, "pages": [ { "startedDateTime": "2024-08-05T08:50:32.298Z", "id": "page_1", "title": "http://192.168.10.126:20001/ftp-server", "pageTimings": { "onContentLoad": 696.7400000139605, "onLoad": 697.4740000150632 } }, { "startedDateTime": "2024-08-05T09:14:56.115Z", "id": "page_2", "title": "http://192.168.10.126:20001/ftp-server", "pageTimings": { "onContentLoad": 691.3519999943674, "onLoad": 691.8189999996684 } } ], "entries": [ { "_initiator": { "type": "other" }, "_priority": "VeryHigh", "_resourceType": "document", "cache": {}, "connection": "1309850", "pageref": "page_1", "request": { "method": "GET", "url": "http://192.168.10.126:20001/ftp-server", "httpVersion": "HTTP/1.1", "headers": [ { "name": "Accept", "value": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,/;q=0.8,application/signed-exchange;v=b3;q=0.7" }, { "name": "Accept-Encoding", "value": "gzip, deflate" }, { "name": "Accept-Language", "value": "en-GB,en-US;q=0.9,en;q=0.8" }, { "name": "Authorization", "value": "Digest username=\"admin\", realm=\"Restricted Content\", nonce=\"34871d6866b09254\", uri=\"/ftp-server\", algorithm=MD5, response=\"0eb7ee42ad098c4de7fd1276fbefd5d7\", qop=auth, nc=00000002, cnonce=\"07090355af4ae23c\"" }, { "name": "Cache-Control", "value": "max-age=0" }, { "name": "Connection", "value": "keep-alive" }, { "name": "Host", "value": "192.168.10.126:20001" }, { "name": "If-Modified-Since", "value": "2024-06-13_21:36:48+0900" }, { "name": "If-None-Match", "value": "W/\"66ab8508-ef5\"" }, { "name": "Upgrade-Insecure-Requests", "value": "1" }, { "name": "User-Agent", "value": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36" } ], "queryString": [], "cookies": [], "headersSize": 772, "bodySize": 0 }, "response": { "status": 200, "statusText": "OK", "httpVersion": "HTTP/1.1", "headers": [ { "name": "Access-Control-Allow-Origin", "value": "" }, { "name": "Authentication-Info", "value": "qop=\"auth\", rspauth=\"715bc090f068df89883d63694243a799\", cnonce=\"07090355af4ae23c\", nc=00000002" }, { "name": "Cache-Control", "value": "no-cache" }, { "name": "Connection", "value": "keep-alive" }, { "name": "Content-Encoding", "value": "gzip" }, { "name": "Content-Type", "value": "text/html" }, { "name": "Date", "value": "Mon, 05 Aug 2024 08:50:32 GMT" }, { "name": "ETag", "value": "W/\"66ab8508-ef5\"" }, { "name": "Last-Modified", "value": "2024-06-13_21:36:48+0900" }, { "name": "Server", "value": "nginx/1.25.4" }, { "name": "Transfer-Encoding", "value": "chunked" }, { "name": "Vary", "value": "Accept-Encoding" } ], "cookies": [], "content": { "size": 3829, "mimeType": "text/html", "compression": 2243 }, "redirectURL": "", "headersSize": 441, "bodySize": 1586, "_transferSize": 2027, "_error": null }, "serverIPAddress": "192.168.10.126", "startedDateTime": "2024-08-05T08:50:32.296Z", "time": 14.981000014813617, "timings": { "blocked": 2.0960000003408643, "dns": -1, "ssl": -1, "connect": -1, "send": 0.14600000000000002, "wait": 11.703000012995675, "receive": 1.0360000014770776, "_blocked_queueing": 1.441000000340864 } }, { "_initiator": { "type": "parser", "url": "http://192.168.10.126:20001/ftp-server", "lineNumber": 0 }, "_priority": "High", "_resourceType": "script", "cache": {}, "connection": "1311724", "pageref": "page_1", "request": { "method": "GET", "url": "http://192.168.10.126:20001/axios.min.js", "httpVersion": "HTTP/1.1", "headers": [ { "name": "Accept", "value": "/" }, { "name": "Accept-Encoding", "value": "gzip, deflate" }, { "name": "Accept-Language", "value": "en-GB,en-US;q=0.9,en;q=0.8" }, { "name": "Authorization", "value": "Digest username=\"admin\", realm=\"Restricted Content\", nonce=\"34871d6866b09254\", uri=\"/axios.min.js\", algorithm=MD5, response=\"15cb7e436918b3916542737dba2ce457\", qop=auth, nc=00000006, cnonce=\"b42f8c4636eb2a44\"" }, { "name": "Connection", "value": "keep-alive" }, { "name": "Host", "value": "192.168.10.126:20001" }, { "name": "If-Modified-Since", "value": "2024-06-13_21:36:48+0900" }, { "name": "If-None-Match", "value": "W/\"66ab8508-511b\"" }, { "name": "Referer", "value": "http://192.168.10.126:20001/ftp-server" }, { "name": "User-Agent", "value": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36" } ], "queryString": [], "cookies": [], "headersSize": 638, "bodySize": 0 }, "response": { "status": 200, "statusText": "OK", "httpVersion": "HTTP/1.1", "headers": [ { "name": "Access-Control-Allow-Origin", "value": "" }, { "name": "Authentication-Info", "value": "qop=\"auth\", rspauth=\"9e2875f5ba75cf81437806e50c783e41\", cnonce=\"b42f8c4636eb2a44\", nc=00000006" }, { "name": "Cache-Control", "value": "no-cache" }, { "name": "Connection", "value": "keep-alive" }, { "name": "Content-Encoding", "value": "gzip" }, { "name": "Content-Type", "value": "application/javascript" }, { "name": "Date", "value": "Mon, 05 Aug 2024 08:50:32 GMT" }, { "name": "ETag", "value": "W/\"66ab8508-511b\"" }, { "name": "Last-Modified", "value": "2024-06-13_21:36:48+0900" }, { "name": "Server", "value": "nginx/1.25.4" }, { "name": "Transfer-Encoding", "value": "chunked" }, { "name": "Vary", "value": "Accept-Encoding" } ], "cookies": [], "content": { "size": 20763, "mimeType": "application/javascript", "compression": 13495 }, "redirectURL": "", "headersSize": 455, "bodySize": 7268, "_transferSize": 7723, "_error": null }, "serverIPAddress": "192.168.10.126", "startedDateTime": "2024-08-05T08:50:32.318Z", "time": 39.5069999906607, "timings": { "blocked": 7.117000011060387, "dns": 0.010000000000000009, "ssl": -1, "connect": 20.891, "send": 0.35900000000000176, "wait": 9.452999986676499, "receive": 1.676999992923811, "_blocked_queueing": 6.201000011060387 } }, { "_initiator": { "type": "parser", "url": "http://192.168.10.126:20001/ftp-server", "lineNumber": 34 }, "_priority": "High", "_resourceType": "script", "cache": {}, "connection": "1311736", "pageref": "page_1", "request": { "method": "GET", "url": "http://192.168.10.126:20001/static/js/2.126c767d.chunk.js", "httpVersion": "HTTP/1.1", "headers": [ { "name": "Accept", "value": "/" }, { "name": "Accept-Encoding", "value": "gzip, deflate" }, { "name": "Accept-Language", "value": "en-GB,en-US;q=0.9,en;q=0.8" }, { "name": "Authorization", "value": "Digest username=\"admin\", realm=\"Restricted Content\", nonce=\"34871d6866b09254\", uri=\"/static/js/2.126c767d.chunk.js\", algorithm=MD5, response=\"98d95258b08feb0b0db83d71ec93e191\", qop=auth, nc=00000007, cnonce=\"26ae80862af9a9dc\"" }, { "name": "Connection", "value": "keep-alive" }, { "name": "Host", "value": "192.168.10.126:20001" }, { "name": "If-Modified-Since", "value": "2024-06-13_21:36:48+0900" }, { "name": "If-None-Match", "value": "W/\"66ab8508-38e042\"" }, { "name": "Referer", "value": "http://192.168.10.126:20001/ftp-server" }, { "name": "User-Agent", "value": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36" } ], "queryString": [], "cookies": [], "headersSize": 674, "bodySize": 0 }, "response": { "status": 200, "statusText": "OK", "httpVersion": "HTTP/1.1", "headers": [ { "name": "Access-Control-Allow-Origin", "value": "" }, { "name": "Authentication-Info", "value": "qop=\"auth\", rspauth=\"a41cbe8aedfd082f91a3c753ffc75963\", cnonce=\"26ae80862af9a9dc\", nc=00000007" }, { "name": "Cache-Control", "value": "no-cache" }, { "name": "Connection", "value": "keep-alive" }, { "name": "Content-Encoding", "value": "gzip" }, { "name": "Content-Type", "value": "application/javascript" }, { "name": "Date", "value": "Mon, 05 Aug 2024 08:50:32 GMT" }, { "name": "ETag", "value": "W/\"66ab8508-38e042\"" }, { "name": "Last-Modified", "value": "2024-06-13_21:36:48+0900" }, { "name": "Server", "value": "nginx/1.25.4" }, { "name": "Transfer-Encoding", "value": "chunked" }, { "name": "Vary", "value": "Accept-Encoding" } ], "cookies": [], "content": { "size": 3727426, "mimeType": "application/javascript", "compression": 2977702 }, "redirectURL": "", "headersSize": 457, "bodySize": 749724, "_transferSize": 750181, "_error": null }, "serverIPAddress": "192.168.10.126", "startedDateTime": "2024-08-05T08:50:32.319Z", "time": 373.3070000003055, "timings": { "blocked": 6.861999999519438, "dns": 0.0040000000000000036, "ssl": -1, "connect": 20.662, "send": 0.4380000000000024, "wait": 13.004000000961124, "receive": 332.3369999998249, "_blocked_queueing": 5.9089999995194376 } }, { "_initiator": { "type": "parser", "url": "http://192.168.10.126:20001/ftp-server", "lineNumber": 34 }, "_priority": "High", "_resourceType": "script", "cache": {}, "connection": "1311732", "pageref": "page_1", "request": { "method": "GET", "url": "http://192.168.10.126:20001/static/js/main.17c583c6.chunk.js", "httpVersion": "HTTP/1.1", "headers": [ { "name": "Accept", "value": "/" }, { "name": "Accept-Encoding", "value": "gzip, deflate" }, { "name": "Accept-Language", "value": "en-GB,en-US;q=0.9,en;q=0.8" }, { "name": "Authorization", "value": "Digest username=\"admin\", realm=\"Restricted Content\", nonce=\"34871d6866b09254\", uri=\"/static/js/main.17c583c6.chunk.js\", algorithm=MD5, response=\"4f6d37345b0aca6e504c5753804831d4\", qop=auth, nc=00000008, cnonce=\"c3b0cea22d98339e\"" }, { "name": "Connection", "value": "keep-alive" }, { "name": "Host", "value": "192.168.10.126:20001" }, { "name": "If-Modified-Since", "value": "2024-06-13_21:36:48+0900" }, { "name": "If-None-Match", "value": "W/\"66ab8508-fefd3\"" }, { "name": "Referer", "value": "http://192.168.10.126:20001/ftp-server" }, { "name": "User-Agent", "value": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36" } ], "queryString": [], "cookies": [], "headersSize": 679, "bodySize": 0 }, "response": { "status": 200, "statusText": "OK", "httpVersion": "HTTP/1.1", "headers": [ { "name": "Access-Control-Allow-Origin", "value": "" }, { "name": "Authentication-Info", "value": "qop=\"auth\", rspauth=\"3b55ddcf4ff5e58e550c16d63c98da64\", cnonce=\"c3b0cea22d98339e\", nc=00000008" }, { "name": "Cache-Control", "value": "no-cache" }, { "name": "Connection", "value": "keep-alive" }, { "name": "Content-Encoding", "value": "gzip" }, { "name": "Content-Type", "value": "application/javascript" }, { "name": "Date", "value": "Mon, 05 Aug 2024 08:50:32 GMT" }, { "name": "ETag", "value": "W/\"66ab8508-fefd3\"" }, { "name": "Last-Modified", "value": "2024-06-13_21:36:48+0900" }, { "name": "Server", "value": "nginx/1.25.4" }, { "name": "Transfer-Encoding", "value": "chunked" }, { "name": "Vary", "value": "Accept-Encoding" } ], "cookies": [], "content": { "size": 1044435, "mimeType": "application/javascript", "compression": 811951 }, "redirectURL": "", "headersSize": 456, "bodySize": 232484, "_transferSize": 232940, "_error": null }, "serverIPAddress": "192.168.10.126", "startedDateTime": "2024-08-05T08:50:32.319Z", "time": 487.72999999972245, "timings": { "blocked": 6.639000006290153, "dns": 0.0030000000000000027, "ssl": -1, "connect": 20.718999999999998, "send": 0.5080000000000027, "wait": 361.4960000099726, "receive": 98.36499998345971, "_blocked_queueing": 5.929000006290153 } }, { "_initiator": { "type": "script", "stack": { "callFrames": [ { "functionName": "", "scriptId": "61", "url": "http://192.168.10.126:20001/axios.min.js", "lineNumber": 1, "columnNumber": 11188 }, { "functionName": "e.exports", "scriptId": "61", "url": "http://192.168.10.126:20001/axios.min.js", "lineNumber": 1, "columnNumber": 8901 }, { "functionName": "e.exports", "scriptId": "61", "url": "http://192.168.10.126:20001/axios.min.js", "lineNumber": 1, "columnNumber": 15612 }, { "functionName": "l.request", "scriptId": "61", "url": "http://192.168.10.126:20001/axios.min.js", "lineNumber": 1, "columnNumber": 14103 }, { "functionName": "r.forEach.l.", "scriptId": "61", "url": "http://192.168.10.126:20001/axios.min.js", "lineNumber": 1, "columnNumber": 14413 }, { "functionName": "", "scriptId": "61", "url": "http://192.168.10.126:20001/axios.min.js", "lineNumber": 1, "columnNumber": 7320 }, { "functionName": "", "scriptId": "62", "url": "http://192.168.10.126:20001/ftp-server", "lineNumber": 6, "columnNumber": 10 } ] } }, "_priority": "High", "_resourceType": "xhr", "cache": {}, "connection": "1311724", "pageref": "page_1", "request": { "method": "GET", "url": "http://192.168.10.126:20001/api/v1/system/device_location/map/all", "httpVersion": "HTTP/1.1", "headers": [ { "name": "Accept", "value": "application/json, text/plain, /" }, { "name": "Accept-Encoding", "value": "gzip, deflate" }, { "name": "Accept-Language", "value": "en-GB,en-US;q=0.9,en;q=0.8" }, { "name": "Authorization", "value": "Digest username=\"admin\", realm=\"Restricted Content\", nonce=\"34871d6866b09254\", uri=\"/api/v1/system/device_location/map/all\", algorithm=MD5, response=\"45e9d0364e7ced9d68b553d8b7da3605\", qop=auth, nc=0000000a, cnonce=\"71ab15e410b36e4a\"" }, { "name": "Connection", "value": "keep-alive" }, { "name": "Host", "value": "192.168.10.126:20001" }, { "name": "Referer", "value": "http://192.168.10.126:20001/ftp-server" }, { "name": "User-Agent", "value": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36" } ], "queryString": [], "cookies": [], "headersSize": 639, "bodySize": 0 }, "response": { "status": 200, "statusText": "OK", "httpVersion": "HTTP/1.1", "headers": [ { "name": "Access-Control-Allow-Origin", "value": "" }, { "name": "Access-Control-Expose-Headers", "value": "device_id, device_ip, ingest_time, is_latest, log_file_name" }, { "name": "Access-Control-Request-Private-Network", "value": ": true" }, { "name": "Connection", "value": "keep-alive" }, { "name": "Content-Encoding", "value": "gzip" }, { "name": "Content-Type", "value": "application/json" }, { "name": "Date", "value": "Mon, 05 Aug 2024 08:50:32 GMT" }, { "name": "Device_id", "value": "DEB-NUC11TNH-BTTN22900SU1" }, { "name": "Device_ip", "value": "192.168.10.126" }, { "name": "Server", "value": "nginx/1.25.4" }, { "name": "Transfer-Encoding", "value": "chunked" }, { "name": "Vary", "value": "Accept-Encoding" } ], "cookies": [], "content": { "size": 109, "mimeType": "application/json", "compression": -9 }, "redirectURL": "", "headersSize": 445, "bodySize": 118, "_transferSize": 563, "_error": null }, "serverIPAddress": "192.168.10.126", "startedDateTime": "2024-08-05T08:50:32.379Z", "time": 334.6610000007786, "timings": { "blocked": 0.8850000213943422, "dns": -1, "ssl": -1, "connect": -1, "send": 0.127, "wait": 331.80799998914824, "receive": 1.8409999902360141, "_blocked_queueing": 0.6220000213943422 } }, { "_initiator": { "type": "script", "stack": { "callFrames": [ { "functionName": "", "scriptId": "61", "url": "http://192.168.10.126:20001/axios.min.js", "lineNumber": 1, "columnNumber": 11188 }, { "functionName": "e.exports", "scriptId": "61", "url": "http://192.168.10.126:20001/axios.min.js", "lineNumber": 1, "columnNumber": 8901 }, { "functionName": "e.exports", "scriptId": "61", "url": "http://192.168.10.126:20001/axios.min.js", "lineNumber": 1, "columnNumber": 15612 }, { "functionName": "l.request", "scriptId": "61", "url": "http://192.168.10.126:20001/axios.min.js", "lineNumber": 1, "columnNumber": 14103 }, { "functionName": "r.forEach.l.", "scriptId": "61", "url": "http://192.168.10.126:20001/axios.min.js", "lineNumber": 1, "columnNumber": 14413 }, { "functionName": "", "scriptId": "61", "url": "http://192.168.10.126:20001/axios.min.js", "lineNumber": 1, "columnNumber": 7320 }, { "functionName": "", "scriptId": "63", "url": "http://192.168.10.126:20001/ftp-server", "lineNumber": 22, "columnNumber": 10 } ] } }, "_priority": "High", "_resourceType": "xhr", "cache": {}, "connection": "1309850", "pageref": "page_1", "request": { "method": "GET", "url": "http://192.168.10.126:20001/api/v1/system/bugherd", "httpVersion": "HTTP/1.1", "headers": [ { "name": "Accept", "value": "application/json, text/plain, /" }, { "name": "Accept-Encoding", "value": "gzip, deflate" }, { "name": "Accept-Language", "value": "en-GB,en-US;q=0.9,en;q=0.8" }, { "name": "Authorization", "value": "Digest username=\"admin\", realm=\"Restricted Content\", nonce=\"34871d6866b09254\", uri=\"/api/v1/system/bugherd\", algorithm=MD5, response=\"306dd078e4a3224f3c8b1551337c1a34\", qop=auth, nc=0000000c, cnonce=\"fcce59e7405344ae\"" }, { "name": "Connection", "value": "keep-alive" }, { "name": "Host", "value": "192.168.10.126:20001" }, { "name": "Referer", "value": "http://192.168.10.126:20001/ftp-server" }, { "name": "User-Agent", "value": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36" } ], "queryString": [], "cookies": [], "headersSize": 607, "bodySize": 0 }, "response": { "status": 200, "statusText": "OK", "httpVersion": "HTTP/1.1", "headers": [ { "name": "Access-Control-Allow-Origin", "value": "" }, { "name": "Access-Control-Expose-Headers", "value": "device_id, device_ip, ingest_time, is_latest, log_file_name" }, { "name": "Access-Control-Request-Private-Network", "value": ": true" }, { "name": "Connection", "value": "keep-alive" }, { "name": "Content-Encoding", "value": "gzip" }, { "name": "Content-Type", "value": "application/json" }, { "name": "Date", "value": "Mon, 05 Aug 2024 08:50:32 GMT" }, { "name": "Device_id", "value": "DEB-NUC11TNH-BTTN22900SU1" }, { "name": "Device_ip", "value": "192.168.10.126" }, { "name": "Server", "value": "nginx/1.25.4" }, { "name": "Transfer-Encoding", "value": "chunked" }, { "name": "Vary", "value": "Accept-Encoding" } ], "cookies": [], "content": { "size": 83, "mimeType": "application/json", "compression": -20 }, "redirectURL": "", "headersSize": 445, "bodySize": 103, "_transferSize": 548, "_error": null }, "serverIPAddress": "192.168.10.126", "startedDateTime": "2024-08-05T08:50:32.382Z", "time": 341.5859999950044, "timings": { "blocked": 0.8350000088531524, "dns": -1, "ssl": -1, "connect": -1, "send": 0.09099999999999997, "wait": 335.55399998926555, "receive": 5.105999996885657, "_blocked_queueing": 0.4560000088531524 } }, { "_initiator": { "type": "script", "stack": { "callFrames": [ { "functionName": "", "scriptId": "65", "url": "http://192.168.10.126:20001/static/js/2.126c767d.chunk.js", "lineNumber": 0, "columnNumber": 2053173 }, { "functionName": "e.exports", "scriptId": "65", "url": "http://192.168.10.126:20001/static/js/2.126c767d.chunk.js", "lineNumber": 0, "columnNumber": 2051430 }, { "functionName": "e.exports", "scriptId": "65", "url": "http://192.168.10.126:20001/static/js/2.126c767d.chunk.js", "lineNumber": 0, "columnNumber": 2385483 } ], "parent": { "description": "Promise.then", "callFrames": [ { "functionName": "c.request", "scriptId": "65", "url": "http://192.168.10.126:20001/static/js/2.126c767d.chunk.js", "lineNumber": 0, "columnNumber": 2384254 }, { "functionName": "o.forEach.c.", "scriptId": "65", "url": "http://192.168.10.126:20001/static/js/2.126c767d.chunk.js", "lineNumber": 0, "columnNumber": 2384503 }, { "functionName": "", "scriptId": "65", "url": "http://192.168.10.126:20001/static/js/2.126c767d.chunk.js", "lineNumber": 0, "columnNumber": 2049326 }, { "functionName": "", "scriptId": "66", "url": "http://192.168.10.126:20001/static/js/main.17c583c6.chunk.js", "lineNumber": 0, "columnNumber": 713301 }, { "functionName": "rs", "scriptId": "65", "url": "http://192.168.10.126:20001/static/js/2.126c767d.chunk.js", "lineNumber": 0, "columnNumber": 2345043 }, { "functionName": "hc", "scriptId": "65", "url": "http://192.168.10.126:20001/static/js/2.126c767d.chunk.js", "lineNumber": 0, "columnNumber": 2364184 }, { "functionName": "t.unstable_runWithPriority", "scriptId": "65", "url": "http://192.168.10.126:20001/static/js/2.126c767d.chunk.js", "lineNumber": 0, "columnNumber": 2382502 }, { "functionName": "jr", "scriptId": "65", "url": "http://192.168.10.126:20001/static/js/2.126c767d.chunk.js", "lineNumber": 0, "columnNumber": 2306630 }, { "functionName": "Mc", "scriptId": "65", "url": "http://192.168.10.126:20001/static/js/2.126c767d.chunk.js", "lineNumber": 0, "columnNumber": 2363941 }, { "functionName": "", "scriptId": "65", "url": "http://192.168.10.126:20001/static/js/2.126c767d.chunk.js", "lineNumber": 0, "columnNumber": 2363852 }, { "functionName": "P", "scriptId": "65", "url": "http://192.168.10.126:20001/static/js/2.126c767d.chunk.js", "lineNumber": 0, "columnNumber": 2381440 }, { "functionName": "g.port1.onmessage", "scriptId": "65", "url": "http://192.168.10.126:20001/static/js/2.126c767d.chunk.js", "lineNumber": 0, "columnNumber": 2380196 } ], "parentId": { "id": "11", "debuggerId": "-3663795806278301706.-5001934494795681018" } } } }, "_priority": "High", "_resourceType": "xhr", "cache": {}, "connection": "1309850", "pageref": "page_1", "request": { "method": "GET", "url": "http://192.168.10.126:20001/api/v1/system/status", "httpVersion": "HTTP/1.1", "headers": [ { "name": "Accept", "value": "application/json, text/plain, /" }, { "name": "Accept-Encoding", "value": "gzip, deflate" }, { "name": "Accept-Language", "value": "en-GB,en-US;q=0.9,en;q=0.8" }, { "name": "Authorization", "value": "Digest username=\"admin\", realm=\"Restricted Content\", nonce=\"34871d6866b09254\", uri=\"/api/v1/system/status\", algorithm=MD5, response=\"9dd8454d2a071462b11d459ca6642f1f\", qop=auth, nc=00000010, cnonce=\"a99c1ef865488bfe\"" }, { "name": "Connection", "value": "keep-alive" }, { "name": "Host", "value": "192.168.10.126:20001" }, { "name": "Referer", "value": "http://192.168.10.126:20001/ftp-server" }, { "name": "User-Agent", "value": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36" } ], "queryString": [], "cookies": [], "headersSize": 605, "bodySize": 0 }, "response": { "status": 200, "statusText": "OK", "httpVersion": "HTTP/1.1", "headers": [ { "name": "Access-Control-Allow-Origin", "value": "" }, { "name": "Access-Control-Expose-Headers", "value": "device_id, device_ip, ingest_time, is_latest, log_file_name" }, { "name": "Access-Control-Request-Private-Network", "value": ": true" }, { "name": "Connection", "value": "keep-alive" }, { "name": "Content-Encoding", "value": "gzip" }, { "name": "Content-Type", "value": "application/json" }, { "name": "Date", "value": "Mon, 05 Aug 2024 08:50:33 GMT" }, { "name": "Device_id", "value": "DEB-NUC11TNH-BTTN22900SU1" }, { "name": "Device_ip", "value": "192.168.10.126" }, { "name": "Server", "value": "nginx/1.25.4" }, { "name": "Transfer-Encoding", "value": "chunked" }, { "name": "Vary", "value": "Accept-Encoding" } ], "cookies": [], "content": { "size": 791, "mimeType": "application/json", "compression": 397 }, "redirectURL": "", "headersSize": 445, "bodySize": 394, "_transferSize": 839, "_error": null }, "serverIPAddress": "192.168.10.126", "startedDateTime": "2024-08-05T08:50:32.985Z", "time": 412.6830000022892, "timings": { "blocked": 0.7699999848324806, "dns": -1, "ssl": -1, "connect": -1, "send": 0.14400000000000002, "wait": 410.8289999902714, "receive": 0.940000027185306, "_blocked_queueing": 0.5139999848324805 } }, { "_initiator": { "type": "script", "stack": { "callFrames": [ { "functionName": "", "scriptId": "65", "url": "http://192.168.10.126:20001/static/js/2.126c767d.chunk.js", "lineNumber": 0, "columnNumber": 2053173 }, { "functionName": "e.exports", "scriptId": "65", "url": "http://192.168.10.126:20001/static/js/2.126c767d.chunk.js", "lineNumber": 0, "columnNumber": 2051430 }, { "functionName": "e.exports", "scriptId": "65", "url": "http://192.168.10.126:20001/static/js/2.126c767d.chunk.js", "lineNumber": 0, "columnNumber": 2385483 } ], "parent": { "description": "Promise.then", "callFrames": [ { "functionName": "c.request", "scriptId": "65", "url": "http://192.168.10.126:20001/static/js/2.126c767d.chunk.js", "lineNumber": 0, "columnNumber": 2384254 }, { "functionName": "o.forEach.c.", "scriptId": "65", "url": "http://192.168.10.126:20001/static/js/2.126c767d.chunk.js", "lineNumber": 0, "columnNumber": 2384503 }, { "functionName": "", "scriptId": "65", "url": "http://192.168.10.126:20001/static/js/2.126c767d.chunk.js", "lineNumber": 0, "columnNumber": 2049326 }, { "functionName": "", "scriptId": "66", "url": "http://192.168.10.126:20001/static/js/main.17c583c6.chunk.js", "lineNumber": 0, "columnNumber": 1015966 }, { "functionName": "", "scriptId": "66", "url": "http://192.168.10.126:20001/static/js/main.17c583c6.chunk.js", "lineNumber": 0, "columnNumber": 1016588 }, { "functionName": "rs", "scriptId": "65", "url": "http://192.168.10.126:20001/static/js/2.126c767d.chunk.js", "lineNumber": 0, "columnNumber": 2345043 }, { "functionName": "hc", "scriptId": "65", "url": "http://192.168.10.126:20001/static/js/2.126c767d.chunk.js", "lineNumber": 0, "columnNumber": 2364184 }, { "functionName": "t.unstable_runWithPriority", "scriptId": "65", "url": "http://192.168.10.126:20001/static/js/2.126c767d.chunk.js", "lineNumber": 0, "columnNumber": 2382502 }, { "functionName": "jr", "scriptId": "65", "url": "http://192.168.10.126:20001/static/js/2.126c767d.chunk.js", "lineNumber": 0, "columnNumber": 2306630 }, { "functionName": "Mc", "scriptId": "65", "url": "http://192.168.10.126:20001/static/js/2.126c767d.chunk.js", "lineNumber": 0, "columnNumber": 2363941 }, { "functionName": "", "scriptId": "65", "url": "http://192.168.10.126:20001/static/js/2.126c767d.chunk.js", "lineNumber": 0, "columnNumber": 2363852 }, { "functionName": "P", "scriptId": "65", "url": "http://192.168.10.126:20001/static/js/2.126c767d.chunk.js", "lineNumber": 0, "columnNumber": 2381440 }, { "functionName": "g.port1.onmessage", "scriptId": "65", "url": "http://192.168.10.126:20001/static/js/2.126c767d.chunk.js", "lineNumber": 0, "columnNumber": 2380196 } ], "parentId": { "id": "11", "debuggerId": "-3663795806278301706.-5001934494795681018" } } } }, "_priority": "High", "_resourceType": "xhr", "cache": {}, "connection": "1311728", "pageref": "page_1", "request": { "method": "GET", "url": "http://192.168.10.126:20001/api/v1/system/services/display/left_menu/all", "httpVersion": "HTTP/1.1", "headers": [ { "name": "Accept", "value": "application/json, text/plain, /" }, { "name": "Accept-Encoding", "value": "gzip, deflate" }, { "name": "Accept-Language", "value": "en-GB,en-US;q=0.9,en;q=0.8" }, { "name": "Authorization", "value": "Digest username=\"admin\", realm=\"Restricted Content\", nonce=\"34871d6866b09254\", uri=\"/api/v1/system/services/display/left_menu/all\", algorithm=MD5, response=\"873a0cd67d47c258b58eab8b57c17690\", qop=auth, nc=00000011, cnonce=\"770c9fca75655bfb\"" }, { "name": "Connection", "value": "keep-alive" }, { "name": "Host", "value": "192.168.10.126:20001" }, { "name": "Referer", "value": "http://192.168.10.126:20001/ftp-server" }, { "name": "User-Agent", "value": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36" } ], "queryString": [], "cookies": [], "headersSize": 653, "bodySize": 0 }, "response": { "status": 200, "statusText": "OK", "httpVersion": "HTTP/1.1", "headers": [ { "name": "Access-Control-Allow-Origin", "value": "" }, { "name": "Access-Control-Expose-Headers", "value": "device_id, device_ip, ingest_time, is_latest, log_file_name" }, { "name": "Access-Control-Request-Private-Network", "value": ": true" }, { "name": "Connection", "value": "keep-alive" }, { "name": "Content-Encoding", "value": "gzip" }, { "name": "Content-Type", "value": "application/json" }, { "name": "Date", "value": "Mon, 05 Aug 2024 08:50:33 GMT" }, { "name": "Device_id", "value": "DEB-NUC11TNH-BTTN22900SU1" }, { "name": "Device_ip", "value": "192.168.10.126" }, { "name": "Server", "value": "nginx/1.25.4" }, { "name": "Transfer-Encoding", "value": "chunked" }, { "name": "Vary", "value": "Accept-Encoding" } ], "cookies": [], "content": { "size": 282, "mimeType": "application/json", "compression": 56 }, "redirectURL": "", "headersSize": 445, "bodySize": 226, "_transferSize": 671, "_error": null }, "serverIPAddress": "192.168.10.126", "startedDateTime": "2024-08-05T08:50:32.986Z", "time": 332.35500002047047, "timings": { "blocked": 1.031000008540228, "dns": -1, "ssl": -1, "connect": -1, "send": 0.16900000000000004, "wait": 329.5750000009127, "receive": 1.580000011017546, "_blocked_queueing": 0.670000008540228 } }, { "_initiator": { "type": "script", "stack": { "callFrames": [ { "functionName": "", "scriptId": "65", "url": "http://192.168.10.126:20001/static/js/2.126c767d.chunk.js", "lineNumber": 0, "columnNumber": 2053173 }, { "functionName": "e.exports", "scriptId": "65", "url": "http://192.168.10.126:20001/static/js/2.126c767d.chunk.js", "lineNumber": 0, "columnNumber": 2051430 }, { "functionName": "e.exports", "scriptId": "65", "url": "http://192.168.10.126:20001/static/js/2.126c767d.chunk.js", "lineNumber": 0, "columnNumber": 2385483 } ], "parent": { "description": "Promise.then", "callFrames": [ { "functionName": "c.request", "scriptId": "65", "url": "http://192.168.10.126:20001/static/js/2.126c767d.chunk.js", "lineNumber": 0, "columnNumber": 2384254 }, { "functionName": "o.forEach.c.", "scriptId": "65", "url": "http://192.168.10.126:20001/static/js/2.126c767d.chunk.js", "lineNumber": 0, "columnNumber": 2384503 }, { "functionName": "", "scriptId": "65", "url": "http://192.168.10.126:20001/static/js/2.126c767d.chunk.js", "lineNumber": 0, "columnNumber": 2049326 }, { "functionName": "", "scriptId": "66", "url": "http://192.168.10.126:20001/static/js/main.17c583c6.chunk.js", "lineNumber": 0, "columnNumber": 1008786 }, { "functionName": "", "scriptId": "66", "url": "http://192.168.10.126:20001/static/js/main.17c583c6.chunk.js", "lineNumber": 0, "columnNumber": 1008947 }, { "functionName": "rs", "scriptId": "65", "url": "http://192.168.10.126:20001/static/js/2.126c767d.chunk.js", "lineNumber": 0, "columnNumber": 2345043 }, { "functionName": "hc", "scriptId": "65", "url": "http://192.168.10.126:20001/static/js/2.126c767d.chunk.js", "lineNumber": 0, "columnNumber": 2364184 }, { "functionName": "t.unstable_runWithPriority", "scriptId": "65", "url": "http://192.168.10.126:20001/static/js/2.126c767d.chunk.js", "lineNumber": 0, "columnNumber": 2382502 }, { "functionName": "jr", "scriptId": "65", "url": "http://192.168.10.126:20001/static/js/2.126c767d.chunk.js", "lineNumber": 0, "columnNumber": 2306630 }, { "functionName": "Mc", "scriptId": "65", "url": "http://192.168.10.126:20001/static/js/2.126c767d.chunk.js", "lineNumber": 0, "columnNumber": 2363941 }, { "functionName": "", "scriptId": "65", "url": "http://192.168.10.126:20001/static/js/2.126c767d.chunk.js", "lineNumber": 0, "columnNumber": 2363852 }, { "functionName": "P", "scriptId": "65", "url": "http://192.168.10.126:20001/static/js/2.126c767d.chunk.js", "lineNumber": 0, "columnNumber": 2381440 }, { "functionName": "g.port1.onmessage", "scriptId": "65", "url": "http://192.168.10.126:20001/static/js/2.126c767d.chunk.js", "lineNumber": 0, "columnNumber": 2380196 } ], "parentId": { "id": "11", "debuggerId": "-3663795806278301706.-5001934494795681018" } } } }, "_priority": "High", "_resourceType": "xhr", "cache": {}, "connection": "1311736", "pageref": "page_1", "request": { "method": "GET", "url": "http://192.168.10.126:20001/api/v1/system/services/display/left_menu/all", "httpVersion": "HTTP/1.1", "headers": [ { "name": "Accept", "value": "application/json, text/plain, /" }, { "name": "Accept-Encoding", "value": "gzip, deflate" }, { "name": "Accept-Language", "value": "en-GB,en-US;q=0.9,en;q=0.8" }, { "name": "Authorization", "value": "Digest username=\"admin\", realm=\"Restricted Content\", nonce=\"34871d6866b09254\", uri=\"/api/v1/system/services/display/left_menu/all\", algorithm=MD5, response=\"3122fef79272b723e55776993add089c\", qop=auth, nc=00000015, cnonce=\"c185422193e56581\"" }, { "name": "Connection", "value": "keep-alive" }, { "name": "Host", "value": "192.168.10.126:20001" }, { "name": "Referer", "value": "http://192.168.10.126:20001/ftp-server" }, { "name": "User-Agent", "value": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36" } ], "queryString": [], "cookies": [], "headersSize": 653, "bodySize": 0 }, "response": { "status": 200, "statusText": "OK", "httpVersion": "HTTP/1.1", "headers": [ { "name": "Access-Control-Allow-Origin", "value": "" }, { "name": "Access-Control-Expose-Headers", "value": "device_id, device_ip, ingest_time, is_latest, log_file_name" }, { "name": "Access-Control-Request-Private-Network", "value": ": true" }, { "name": "Connection", "value": "keep-alive" }, { "name": "Content-Encoding", "value": "gzip" }, { "name": "Content-Type", "value": "application/json" }, { "name": "Date", "value": "Mon, 05 Aug 2024 08:50:33 GMT" }, { "name": "Device_id", "value": "DEB-NUC11TNH-BTTN22900SU1" }, { "name": "Device_ip", "value": "192.168.10.126" }, { "name": "Server", "value": "nginx/1.25.4" }, { "name": "Transfer-Encoding", "value": "chunked" }, { "name": "Vary", "value": "Accept-Encoding" } ], "cookies": [], "content": { "size": 282, "mimeType": "application/json", "compression": 56 }, "redirectURL": "", "headersSize": 445, "bodySize": 226, "_transferSize": 671, "_error": null }, "serverIPAddress": "192.168.10.126", "startedDateTime": "2024-08-05T08:50:32.987Z", "time": 453.06100000743754, "timings": { "blocked": 353.0230000224151, "dns": -1, "ssl": -1, "connect": -1, "send": 0.18999999999999773, "wait": 98.56700000974348, "receive": 1.2809999752789736, "_blocked_queueing": 0.6680000224150717 } }, { "_initiator": { "type": "script", "stack": { "callFrames": [ { "functionName": "", "scriptId": "65", "url": "http://192.168.10.126:20001/static/js/2.126c767d.chunk.js", "lineNumber": 0, "columnNumber": 2053173 }, { "functionName": "e.exports", "scriptId": "65", "url": "http://192.168.10.126:20001/static/js/2.126c767d.chunk.js", "lineNumber": 0, "columnNumber": 2051430 }, { "functionName": "e.exports", "scriptId": "65", "url": "http://192.168.10.126:20001/static/js/2.126c767d.chunk.js", "lineNumber": 0, "columnNumber": 2385483 } ], "parent": { "description": "Promise.then", "callFrames": [ { "functionName": "c.request", "scriptId": "65", "url": "http://192.168.10.126:20001/static/js/2.126c767d.chunk.js", "lineNumber": 0, "columnNumber": 2384254 }, { "functionName": "o.forEach.c.", "scriptId": "65", "url": "http://192.168.10.126:20001/static/js/2.126c767d.chunk.js", "lineNumber": 0, "columnNumber": 2384503 }, { "functionName": "", "scriptId": "65", "url": "http://192.168.10.126:20001/static/js/2.126c767d.chunk.js", "lineNumber": 0, "columnNumber": 2049326 }, { "functionName": "", "scriptId": "66", "url": "http://192.168.10.126:20001/static/js/main.17c583c6.chunk.js", "lineNumber": 0, "columnNumber": 1009934 }, { "functionName": "rs", "scriptId": "65", "url": "http://192.168.10.126:20001/static/js/2.126c767d.chunk.js", "lineNumber": 0, "columnNumber": 2345043 }, { "functionName": "hc", "scriptId": "65", "url": "http://192.168.10.126:20001/static/js/2.126c767d.chunk.js", "lineNumber": 0, "columnNumber": 2364184 }, { "functionName": "t.unstable_runWithPriority", "scriptId": "65", "url": "http://192.168.10.126:20001/static/js/2.126c767d.chunk.js", "lineNumber": 0, "columnNumber": 2382502 }, { "functionName": "jr", "scriptId": "65", "url": "http://192.168.10.126:20001/static/js/2.126c767d.chunk.js", "lineNumber": 0, "columnNumber": 2306630 }, { "functionName": "Mc", "scriptId": "65", "url": "http://192.168.10.126:20001/static/js/2.126c767d.chunk.js", "lineNumber": 0, "columnNumber": 2363941 }, { "functionName": "", "scriptId": "65", "url": "http://192.168.10.126:20001/static/js/2.126c767d.chunk.js", "lineNumber": 0, "columnNumber": 2363852 }, { "functionName": "P", "scriptId": "65", "url": "http://192.168.10.126:20001/static/js/2.126c767d.chunk.js", "lineNumber": 0, "columnNumber": 2381440 }, { "functionName": "g.port1.onmessage", "scriptId": "65", "url": "http://192.168.10.126:20001/static/js/2.126c767d.chunk.js", "lineNumber": 0, "columnNumber": 2380196 } ], "parentId": { "id": "11", "debuggerId": "-3663795806278301706.-5001934494795681018" } } } }, "_priority": "High", "_resourceType": "xhr", "cache": {}, "connection": "1311736", "pageref": "page_1", "request": { "method": "GET", "url": "http://192.168.10.126:20001/api/v1/system/network/brcm/all", "httpVersion": "HTTP/1.1", "headers": [ { "name": "Accept", "value": "application/json, text/plain, /" }, { "name": "Accept-Encoding", "value": "gzip, deflate" }, { "name": "Accept-Language", "value": "en-GB,en-US;q=0.9,en;q=0.8" }, { "name": "Authorization", "value": "Digest username=\"admin\", realm=\"Restricted Content\", nonce=\"34871d6866b09254\", uri=\"/api/v1/system/network/brcm/all\", algorithm=MD5, response=\"7c73a56c411fa6964ba4d4988370b632\", qop=auth, nc=00000012, cnonce=\"fc18f035b2e67ca0\"" }, { "name": "Connection", "value": "keep-alive" }, { "name": "Host", "value": "192.168.10.126:20001" }, { "name": "Referer", "value": "http://192.168.10.126:20001/ftp-server" }, { "name": "User-Agent", "value": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36" } ], "queryString": [], "cookies": [], "headersSize": 625, "bodySize": 0 }, "response": { "status": 200, "statusText": "OK", "httpVersion": "HTTP/1.1", "headers": [ { "name": "Access-Control-Allow-Origin", "value": "" }, { "name": "Access-Control-Expose-Headers", "value": "device_id, device_ip, ingest_time, is_latest, log_file_name" }, { "name": "Access-Control-Request-Private-Network", "value": ": true" }, { "name": "Connection", "value": "keep-alive" }, { "name": "Content-Encoding", "value": "gzip" }, { "name": "Content-Type", "value": "application/json" }, { "name": "Date", "value": "Mon, 05 Aug 2024 08:50:33 GMT" }, { "name": "Device_id", "value": "DEB-NUC11TNH-BTTN22900SU1" }, { "name": "Device_ip", "value": "192.168.10.126" }, { "name": "Server", "value": "nginx/1.25.4" }, { "name": "Transfer-Encoding", "value": "chunked" }, { "name": "Vary", "value": "Accept-Encoding" } ], "cookies": [], "content": { "size": 291, "mimeType": "application/json", "compression": 83 }, "redirectURL": "", "headersSize": 445, "bodySize": 208, "_transferSize": 653, "_error": null }, "serverIPAddress": "192.168.10.126", "startedDateTime": "2024-08-05T08:50:32.988Z", "time": 351.13900000578724, "timings": { "blocked": 0.8239999932907522, "dns": -1, "ssl": -1, "connect": -1, "send": 0.09999999999999998, "wait": 346.77000000311807, "receive": 3.4450000093784183, "_blocked_queueing": 0.4959999932907522 } }, { "_initiator": { "type": "script", "stack": { "callFrames": [ { "functionName": "", "scriptId": "65", "url": "http://192.168.10.126:20001/static/js/2.126c767d.chunk.js", "lineNumber": 0, "columnNumber": 2053173 }, { "functionName": "e.exports", "scriptId": "65", "url": "http://192.168.10.126:20001/static/js/2.126c767d.chunk.js", "lineNumber": 0, "columnNumber": 2051430 }, { "functionName": "e.exports", "scriptId": "65", "url": "http://192.168.10.126:20001/static/js/2.126c767d.chunk.js", "lineNumber": 0, "columnNumber": 2385483 } ], "parent": { "description": "Promise.then", "callFrames": [ { "functionName": "c.request", "scriptId": "65", "url": "http://192.168.10.126:20001/static/js/2.126c767d.chunk.js", "lineNumber": 0, "columnNumber": 2384254 }, { "functionName": "o.forEach.c.", "scriptId": "65", "url": "http://192.168.10.126:20001/static/js/2.126c767d.chunk.js", "lineNumber": 0, "columnNumber": 2384503 }, { "functionName": "", "scriptId": "65", "url": "http://192.168.10.126:20001/static/js/2.126c767d.chunk.js", "lineNumber": 0, "columnNumber": 2049326 }, { "functionName": "", "scriptId": "66", "url": "http://192.168.10.126:20001/static/js/main.17c583c6.chunk.js", "lineNumber": 0, "columnNumber": 651534 }, { "functionName": "rs", "scriptId": "65", "url": "http://192.168.10.126:20001/static/js/2.126c767d.chunk.js", "lineNumber": 0, "columnNumber": 2345043 }, { "functionName": "hc", "scriptId": "65", "url": "http://192.168.10.126:20001/static/js/2.126c767d.chunk.js", "lineNumber": 0, "columnNumber": 2364184 }, { "functionName": "t.unstable_runWithPriority", "scriptId": "65", "url": "http://192.168.10.126:20001/static/js/2.126c767d.chunk.js", "lineNumber": 0, "columnNumber": 2382502 }, { "functionName": "jr", "scriptId": "65", "url": "http://192.168.10.126:20001/static/js/2.126c767d.chunk.js", "lineNumber": 0, "columnNumber": 2306630 }, { "functionName": "Mc", "scriptId": "65", "url": "http://192.168.10.126:20001/static/js/2.126c767d.chunk.js", "lineNumber": 0, "columnNumber": 2363941 }, { "functionName": "", "scriptId": "65", "url": "http://192.168.10.126:20001/static/js/2.126c767d.chunk.js", "lineNumber": 0, "columnNumber": 2363852 }, { "functionName": "P", "scriptId": "65", "url": "http://192.168.10.126:20001/static/js/2.126c767d.chunk.js", "lineNumber": 0, "columnNumber": 2381440 }, { "functionName": "g.port1.onmessage", "scriptId": "65", "url": "http://192.168.10.126:20001/static/js/2.126c767d.chunk.js", "lineNumber": 0, "columnNumber": 2380196 } ], "parentId": { "id": "11", "debuggerId": "-3663795806278301706.-5001934494795681018" } } } }, "_priority": "High", "_resourceType": "xhr", "cache": {}, "connection": "1311724", "pageref": "page_1", "request": { "method": "GET", "url": "http://192.168.10.126:20001/api/v1/system/services/internal_ftp", "httpVersion": "HTTP/1.1", "headers": [ { "name": "Accept", "value": "application/json, text/plain, /" }, { "name": "Accept-Encoding", "value": "gzip, deflate" }, { "name": "Accept-Language", "value": "en-GB,en-US;q=0.9,en;q=0.8" }, { "name": "Authorization", "value": "Digest username=\"admin\", realm=\"Restricted Content\", nonce=\"34871d6866b09254\", uri=\"/api/v1/system/services/internal_ftp\", algorithm=MD5, response=\"8a440092c19ea615dd2f3a62b70cf83a\", qop=auth, nc=00000013, cnonce=\"39c7a4ca41527e14\"" }, { "name": "Connection", "value": "keep-alive" }, { "name": "Host", "value": "192.168.10.126:20001" }, { "name": "Referer", "value": "http://192.168.10.126:20001/ftp-server" }, { "name": "User-Agent", "value": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36" } ], "queryString": [], "cookies": [], "headersSize": 635, "bodySize": 0 }, "response": { "status": 200, "statusText": "OK", "httpVersion": "HTTP/1.1", "headers": [ { "name": "Access-Control-Allow-Origin", "value": "" }, { "name": "Access-Control-Expose-Headers", "value": "device_id, device_ip, ingest_time, is_latest, log_file_name" }, { "name": "Access-Control-Request-Private-Network", "value": ": true" }, { "name": "Connection", "value": "keep-alive" }, { "name": "Content-Encoding", "value": "gzip" }, { "name": "Content-Type", "value": "application/json" }, { "name": "Date", "value": "Mon, 05 Aug 2024 08:50:33 GMT" }, { "name": "Device_id", "value": "DEB-NUC11TNH-BTTN22900SU1" }, { "name": "Device_ip", "value": "192.168.10.126" }, { "name": "Server", "value": "nginx/1.25.4" }, { "name": "Transfer-Encoding", "value": "chunked" }, { "name": "Vary", "value": "Accept-Encoding" } ], "cookies": [], "content": { "size": 303, "mimeType": "application/json", "compression": 88 }, "redirectURL": "", "headersSize": 445, "bodySize": 215, "_transferSize": 660, "_error": null }, "serverIPAddress": "192.168.10.126", "startedDateTime": "2024-08-05T08:50:32.990Z", "time": 350.3190000192262, "timings": { "blocked": 1.1580000136438757, "dns": -1, "ssl": -1, "connect": -1, "send": 0.897, "wait": 346.227000007201, "receive": 2.0369999983813614, "_blocked_queueing": 0.9000000136438757 } }, { "_initiator": { "type": "other" }, "_priority": "High", "_resourceType": "other", "cache": {}, "connection": "1311728", "pageref": "page_1", "request": { "method": "GET", "url": "http://192.168.10.126:20001/favicon.ico", "httpVersion": "HTTP/1.1", "headers": [ { "name": "Accept", "value": "image/avif,image/webp,image/apng,image/svg+xml,image/,/;q=0.8" }, { "name": "Accept-Encoding", "value": "gzip, deflate" }, { "name": "Accept-Language", "value": "en-GB,en-US;q=0.9,en;q=0.8" }, { "name": "Authorization", "value": "Digest username=\"admin\", realm=\"Restricted Content\", nonce=\"34871d6866b09254\", uri=\"/favicon.ico\", algorithm=MD5, response=\"9e0c7673fa5772dd5bba8cc2c5e60042\", qop=auth, nc=00000014, cnonce=\"e300603fe1fd8347\"" }, { "name": "Connection", "value": "keep-alive" }, { "name": "Host", "value": "192.168.10.126:20001" }, { "name": "If-Modified-Since", "value": "2024-06-13_21:36:48+0900" }, { "name": "If-None-Match", "value": "W/\"66ab8508-3aee\"" }, { "name": "Referer", "value": "http://192.168.10.126:20001/ftp-server" }, { "name": "User-Agent", "value": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36" } ], "queryString": [], "cookies": [], "headersSize": 697, "bodySize": 0 }, "response": { "status": 200, "statusText": "OK", "httpVersion": "HTTP/1.1", "headers": [ { "name": "Access-Control-Allow-Origin", "value": "*" }, { "name": "Authentication-Info", "value": "qop=\"auth\", rspauth=\"805b132b921d628bf74383e88345f84a\", cnonce=\"5fe915fcb4f4fc30\", nc=00000001" }, { "name": "Cache-Control", "value": "no-cache" }, { "name": "Connection", "value": "keep-alive" }, { "name": "Content-Encoding", "value": "gzip" }, { "name": "Content-Type", "value": "image/x-icon" }, { "name": "Date", "value": "Mon, 05 Aug 2024 08:50:33 GMT" }, { "name": "ETag", "value": "W/\"66ab8508-3aee\"" }, { "name": "Last-Modified", "value": "2024-06-13_21:36:48+0900" }, { "name": "Server", "value": "nginx/1.25.4" }, { "name": "Transfer-Encoding", "value": "chunked" }, { "name": "Vary", "value": "Accept-Encoding" } ],

.har failed request

{ "log": { "version": "1.2", "creator": { "name": "WebInspector", "version": "537.36" }, "pages": [ { "startedDateTime": "2024-08-05T08:56:19.352Z", "id": "page_1", "title": "http://192.168.10.126:20001/recent_activity/", "pageTimings": { "onContentLoad": 48.87400000006892, "onLoad": 49.01900000004389 } } ], "entries": [ { "_initiator": { "type": "other" }, "_priority": "VeryHigh", "_resourceType": "document", "cache": {}, "connection": "3335", "pageref": "page_1", "request": { "method": "GET", "url": "http://192.168.10.126:20001/recent_activity/", "httpVersion": "HTTP/1.1", "headers": [ { "name": "Accept", "value": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,/;q=0.8,application/signed-exchange;v=b3;q=0.7" }, { "name": "Accept-Encoding", "value": "gzip, deflate" }, { "name": "Accept-Language", "value": "en-GB,en-US;q=0.9,en;q=0.8" }, { "name": "Cache-Control", "value": "max-age=0" }, { "name": "Connection", "value": "keep-alive" }, { "name": "Host", "value": "192.168.10.126:20001" }, { "name": "Referer", "value": "http://192.168.10.126:20001/stream-viewer?stream" }, { "name": "Upgrade-Insecure-Requests", "value": "1" }, { "name": "User-Agent", "value": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36" } ], "queryString": [], "cookies": [], "headersSize": 536, "bodySize": 0 }, "response": { "status": 401, "statusText": "Unauthorized", "httpVersion": "HTTP/1.1", "headers": [ { "name": "Connection", "value": "keep-alive" }, { "name": "Content-Length", "value": "581" }, { "name": "Content-Type", "value": "text/html" }, { "name": "Date", "value": "Mon, 05 Aug 2024 08:56:19 GMT" }, { "name": "Server", "value": "nginx/1.25.4" } ], "cookies": [], "content": { "size": 581, "mimeType": "text/html", "compression": 0, "text": "\r\n401 Authorization Required\r\n\r\n

401 Authorization Required

\r\n
nginx/1.25.4
\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n" }, "redirectURL": "", "headersSize": 158, "bodySize": 581, "_transferSize": 739, "_error": null }, "serverIPAddress": "192.168.10.126", "startedDateTime": "2024-08-05T08:56:19.350Z", "time": 7.505999999921187, "timings": { "blocked": 3.162999999251333, "dns": -1, "ssl": -1, "connect": -1, "send": 0.1110000000000001, "wait": 3.172000000162865, "receive": 1.0600000005069887, "_blocked_queueing": 2.592999999251333 } }, { "_initiator": { "type": "other" }, "_priority": "High", "_resourceType": "other", "cache": {}, "connection": "3335", "pageref": "page_1", "request": { "method": "GET", "url": "http://192.168.10.126:20001/favicon.ico", "httpVersion": "HTTP/1.1", "headers": [ { "name": "Accept", "value": "image/avif,image/webp,image/apng,image/svg+xml,image/,/*;q=0.8" }, { "name": "Accept-Encoding", "value": "gzip, deflate" }, { "name": "Accept-Language", "value": "en-GB,en-US;q=0.9,en;q=0.8" }, { "name": "Connection", "value": "keep-alive" }, { "name": "Host", "value": "192.168.10.126:20001" }, { "name": "If-Modified-Since", "value": "2024-06-13_21:36:48+0900" }, { "name": "If-None-Match", "value": "W/\"66ab8508-3aee\"" }, { "name": "Referer", "value": "http://192.168.10.126:20001/recent_activity/" }, { "name": "User-Agent", "value": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36" } ], "queryString": [], "cookies": [], "headersSize": 479, "bodySize": 0 }, "response": { "status": 401, "statusText": "Unauthorized", "httpVersion": "HTTP/1.1", "headers": [ { "name": "Connection", "value": "keep-alive" }, { "name": "Content-Length", "value": "581" }, { "name": "Content-Type", "value": "text/html" }, { "name": "Date", "value": "Mon, 05 Aug 2024 08:56:19 GMT" }, { "name": "Server", "value": "nginx/1.25.4" } ], "cookies": [], "content": { "size": 581, "mimeType": "text/html", "compression": 0, "text": "\r\n401 Authorization Required\r\n\r\n

401 Authorization Required

\r\n
nginx/1.25.4
\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n" }, "redirectURL": "", "headersSize": 158, "bodySize": 581, "_transferSize": 739, "_error": null }, "serverIPAddress": "192.168.10.126", "startedDateTime": "2024-08-05T08:56:19.407Z", "time": 7.061000000248896, "timings": { "blocked": 1.8209999999613502, "dns": -1, "ssl": -1, "connect": -1, "send": 0.08600000000000008, "wait": 3.923000000098604, "receive": 1.231000000188942, "_blocked_queueing": 1.0959999999613501 } } ] } }

erikdubbelboer commented 1 month ago

The good requests all contain Authorization headers. The failed request doesn't contain any Authorization so it makes sense that it fails, this has nothing to do with this nginx plugin I'm afraid. Maybe your browser is configured to automatically expire authentication info after a while?

fti-akumari commented 1 month ago

@erikdubbelboer ,

I've conducted further testing and found that the issue does not seem to be browser-dependent, as the error occurs across different browsers. The main issue is that the UI keeps logging out after a random small amount of time.

After examining the Nginx logs, I noticed the following error:

Detailed nginx logs when error is occurring : There are only five types of error log entries done by this module.
"1)failed auth, updating failcount
2)auth_digest ran out of shm space. Increase the " "auth_digest_shm_size limit.
3)auth_digest ran out of cleanup space
4)invalid username or password for %*s
5)ignoring authentication request - in evasion period"
from which only this error found in error logs: "ignoring authentication request - in evasion period " 024/08/08 16:03:22 [error] 110#0: *6463 ignoring authentication request - in evasion period, client: 192.168.10.142, server: _, request: "GET /recent_activity//api/v1/alarms?active HTTP/1.1", host: "192.168.10.51:20001", referrer: "http://192.168.10.51:20001/recent_activity/" "

This error suggests that the authentication request is being ignored because the server is in an "evasion period" due to too many failed authentication attempts from the same client.

I attempted to address this by adjusting the following Nginx directives:

auth_digest_shm_size 4m;   # the storage space allocated for tracking active sessions
       location /private {
        auth_digest 'Restricted content';       # set the realm for this location block 
        auth_digest_user_file /opt/httpd/conf/passwd.digest;

        #Directives and their default values
        auth_digest_timeout 60s; # allow users to wait 1 minute between receiving the
                                # challenge and hitting send in the browser dialog box
        auth_digest_expires 10s; # after a successful challenge/response, let the client
                                # continue to use the same nonce for additional requests
                                # for 10 seconds before generating a new challenge
        auth_digest_replays 20;  # also generate a new challenge if the client uses the
                                # same nonce more than 20 times before the expire time limit
                auth_digest_evasion_time 300s;  #The amount of time for which the server will ignore
                                               # authentication requests from a client address
                                   # once the number of failed authentications from that client reached
                                              # auth_digest_maxtries
                auth_digest_maxtries 5; #The number of failed authentication attempts from a client address
                                              # before the module enters evasive tactics.
                                              # For evasion purposes, only network clients are tracked, and only by
                                              # address (not including port number).
                                              #A successful authentication clears the counters.
      }

These adjustments solved the "401 Unauthorized" error, but the issue with the UI logging out persists. Based on my observations, it seems that the nonce (used for authenticating requests) is not functioning correctly. This might be causing the authentication failures that lead to the evasion period and subsequent logouts.

I'd appreciate any insights or suggestions on how to resolve the nonce issue or further troubleshoot the evasion period behavior.

Thanks in Advance

erikdubbelboer commented 1 month ago

Could it be that there is something on your page that is making requests without passing the Authorization header that could cause the plugin to put the IP into evasion mode after a while?

fti-akumari commented 1 month ago

Authorization headers are indeed being sent, but we're encountering an issue where the nonce occasionally changes without proper authorization. Additionally, the nonce sometimes expires prematurely, even before reaching the maximum number of replays or the set expiration time. We’re using a reverse proxy to access Netdata.

fti-akumari commented 1 month ago

@erikdubbelboer Just checking in on this issue. Any updates?

erikdubbelboer commented 1 month ago

I'm unable to replicate it somehow so I don't think there is much I can do.

fti-pchouhan commented 3 weeks ago

@erikdubbelboer I was able to reproduce the issue, although it is not exactly the same as described above. In my case, auth_digest_expires and auth_digest_replays directives not working correctly. I am attaching files that can be used to create the environment. Additionally, I am using Nginx version 1.25.4 and hope there are no compatibility issues.

Directory structure nginx_digest_test/ │ ├── Dockerfile ├── nginx.conf ├── .htdigest ├── html/ │ ├── index.html ├── docker-compose.yml

docker-compose.yml

version: '3.8'

services:
  nginx:
    build: .
    ports:
      - "8080:80"
    container_name: nginx_digest_test
    stdin_open: true
    tty: true

Dockerfile

# Use Debian as the base image
FROM debian:bookworm-slim

# Install required dependencies
RUN apt-get update && apt-get install -y \
    build-essential \
    libpcre3-dev \
    zlib1g-dev \
    libssl-dev \
    git \
    curl \
    wget \
    && apt-get clean && rm -rf /var/lib/apt/lists/*

# Set Nginx version and module branch
ENV NGINX_VERSION=1.25.4
ENV MODULE_BRANCH=master

# Download and extract Nginx source
RUN wget http://nginx.org/download/nginx-$NGINX_VERSION.tar.gz && \
    tar -zxvf nginx-$NGINX_VERSION.tar.gz && \
    rm nginx-$NGINX_VERSION.tar.gz

# Clone the ngx_http_auth_digest_module
RUN git clone --branch $MODULE_BRANCH https://github.com/samizdatco/nginx-http-auth-digest.git

# Compile and install Nginx with the ngx_http_auth_digest_module
WORKDIR nginx-$NGINX_VERSION
RUN ./configure --add-module=../nginx-http-auth-digest \
    --with-http_ssl_module \
    --with-http_v2_module \
    --prefix=/etc/nginx \
    --sbin-path=/usr/sbin/nginx \
    --conf-path=/etc/nginx/nginx.conf \
    --pid-path=/var/run/nginx.pid \
    --lock-path=/var/run/nginx.lock \
    --http-log-path=/var/log/nginx/access.log \
    --error-log-path=/var/log/nginx/error.log \
    --with-http_gzip_static_module \
    --with-http_stub_status_module && \
    make && make install

# Remove the build dependencies and source code to reduce image size
#RUN apt-get remove -y build-essential libpcre3-dev zlib1g-dev libssl-dev git && \
#    apt-get autoremove -y && \
#    rm -rf /nginx-$NGINX_VERSION /nginx-http-auth-digest

# Create necessary directories
RUN mkdir -p /usr/share/nginx/html

# Copy Nginx configuration
COPY nginx.conf /etc/nginx/nginx.conf

# Copy .htdigest file for digest authentication
COPY .htdigest /etc/nginx/.htdigest

# Copy dummy resources
COPY html/index.html /usr/share/nginx/html/index.html

# Expose port 80
EXPOSE 80

# Start Nginx
CMD ["nginx", "-g", "daemon off;"]

nginx.conf

worker_processes  1;
events {
    worker_connections 1024;
}

http {
    server {
        listen 80;
        server_name localhost;

        location / {
            add_header Cache-Control 'no-cache';
            auth_digest_user_file /etc/nginx/.htdigest;
            auth_digest 'Digest Auth';
            auth_digest_timeout 10s;
            auth_digest_expires 60s;
            auth_digest_replays 50;
            auth_digest_evasion_time 30s;
            auth_digest_maxtries 3;
            root /usr/share/nginx/html;
            index index.html;
        }
    }
}

.htdigest

admin:Digest Auth:5f4dcc3b5aa765d61d8327deb882cf99

index.html

<!DOCTYPE html>
<html>
<head>
    <title>Home Page</title>
    <script>
        function sendRequests() {
            let count = 0;
            const maxRequests = 2000;
            const interval = (6 * 60 * 1000) / maxRequests; // 6 minutes in milliseconds divided by 2000 requests

            const requestInterval = setInterval(() => {
                fetch('/')
                    .then(response => {
                        console.log(`Request ${count + 1}: ${response.status}`);
                    })
                    .catch(error => {
                        console.error(`Request ${count + 1} failed: ${error}`);
                    });

                count++;
                if (count >= maxRequests) {
                    clearInterval(requestInterval);
                    console.log("All requests completed.");
                }
            }, interval);
        }

        window.onload = sendRequests;
    </script>
</head>
<body>
    <h1>Welcome to the Home Page</h1>
</body>
</html>