Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

401 Unauthorized Error after Login #26

Open
fti-akumari opened this issue Jul 15, 2024 · 9 comments
Open

401 Unauthorized Error after Login #26

fti-akumari opened this issue Jul 15, 2024 · 9 comments

Comments

@fti-akumari
Copy link

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:

  • Log in to the application.
  • Access the UI after 20-30 minutes of inactivity.
  • Observe the 401 Unauthorized error.

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
Copy link

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

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

@fti-akumari
Copy link
Author

fti-akumari commented Aug 5, 2024

@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\n<title>401 Authorization Required</title>\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\n<title>401 Authorization Required</title>\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
Copy link

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
Copy link
Author

@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
Copy link

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
Copy link
Author

fti-akumari commented Aug 12, 2024

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
Copy link
Author

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

@erikdubbelboer
Copy link

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

@fti-pchouhan
Copy link

fti-pchouhan commented Aug 25, 2024

@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>

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants