Created
February 8, 2023 17:28
-
-
Save senaev/2f43a9d079c7c90b4d7458d21ad1ffe6 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "log": { | |
| "version": "1.2", | |
| "creator": { | |
| "name": "WebInspector", | |
| "version": "537.36" | |
| }, | |
| "pages": [ | |
| { | |
| "startedDateTime": "2023-02-08T17:16:43.340Z", | |
| "id": "page_5", | |
| "title": "http://localhost:8081/keycloak-example.html", | |
| "pageTimings": { | |
| "onContentLoad": 106.14400007762015, | |
| "onLoad": 453.0390000436455 | |
| } | |
| }, | |
| { | |
| "startedDateTime": "2023-02-08T17:16:44.078Z", | |
| "id": "page_6", | |
| "title": "http://localhost:8080/realms/realm-name/protocol/openid-connect/auth?client_id=client-id&redirect_uri=http%3A%2F%2Flocalhost%3A8081%2Fkeycloak-example&state=e12b9c95-0ee5-4d97-81fd-dfe67eef1f25&response_mode=fragment&response_type=code&scope=openid&nonce=d1d760ff-a33a-4865-aba9-16411b398ba0", | |
| "pageTimings": { | |
| "onContentLoad": 329.57000005990267, | |
| "onLoad": 479.18400005437434 | |
| } | |
| }, | |
| { | |
| "startedDateTime": "2023-02-08T17:16:49.809Z", | |
| "id": "page_7", | |
| "title": "http://localhost:8080/realms/realm-name/login-actions/authenticate?session_code=_3nN0xqbH5cvJvHgD0zBDOK8rPIF7NhLAnZBPbgUuWA&execution=e18a081a-fdd0-460b-82e0-caeffef6f66e&client_id=client-id&tab_id=e64EiEeTY_Y", | |
| "pageTimings": { | |
| "onContentLoad": 177.58200014941394, | |
| "onLoad": 360.478000016883 | |
| } | |
| } | |
| ], | |
| "entries": [ | |
| { | |
| "_initiator": { | |
| "type": "other" | |
| }, | |
| "_priority": "VeryHigh", | |
| "_resourceType": "document", | |
| "cache": {}, | |
| "connection": "2084040", | |
| "pageref": "page_5", | |
| "request": { | |
| "method": "GET", | |
| "url": "http://localhost:8081/keycloak-example.html", | |
| "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.9" | |
| }, | |
| { | |
| "name": "Accept-Encoding", | |
| "value": "gzip, deflate, br" | |
| }, | |
| { | |
| "name": "Accept-Language", | |
| "value": "ru,en;q=0.9" | |
| }, | |
| { | |
| "name": "Cache-Control", | |
| "value": "no-cache" | |
| }, | |
| { | |
| "name": "Connection", | |
| "value": "keep-alive" | |
| }, | |
| { | |
| "name": "Host", | |
| "value": "localhost:8081" | |
| }, | |
| { | |
| "name": "Pragma", | |
| "value": "no-cache" | |
| }, | |
| { | |
| "name": "Referer", | |
| "value": "http://localhost:8081/" | |
| }, | |
| { | |
| "name": "Sec-Fetch-Dest", | |
| "value": "document" | |
| }, | |
| { | |
| "name": "Sec-Fetch-Mode", | |
| "value": "navigate" | |
| }, | |
| { | |
| "name": "Sec-Fetch-Site", | |
| "value": "same-origin" | |
| }, | |
| { | |
| "name": "Sec-Fetch-User", | |
| "value": "?1" | |
| }, | |
| { | |
| "name": "Upgrade-Insecure-Requests", | |
| "value": "1" | |
| }, | |
| { | |
| "name": "User-Agent", | |
| "value": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 YaBrowser/22.11.3.824 Yowser/2.5 Safari/537.36" | |
| }, | |
| { | |
| "name": "sec-ch-ua", | |
| "value": "\"Chromium\";v=\"106\", \"Yandex\";v=\"22\", \"Not;A=Brand\";v=\"99\"" | |
| }, | |
| { | |
| "name": "sec-ch-ua-mobile", | |
| "value": "?0" | |
| }, | |
| { | |
| "name": "sec-ch-ua-platform", | |
| "value": "\"macOS\"" | |
| } | |
| ], | |
| "queryString": [], | |
| "cookies": [], | |
| "headersSize": 786, | |
| "bodySize": 0 | |
| }, | |
| "response": { | |
| "status": 301, | |
| "statusText": "Moved Permanently", | |
| "httpVersion": "HTTP/1.1", | |
| "headers": [ | |
| { | |
| "name": "Connection", | |
| "value": "keep-alive" | |
| }, | |
| { | |
| "name": "Date", | |
| "value": "Wed, 08 Feb 2023 17:16:43 GMT" | |
| }, | |
| { | |
| "name": "Keep-Alive", | |
| "value": "timeout=5" | |
| }, | |
| { | |
| "name": "Location", | |
| "value": "/keycloak-example" | |
| }, | |
| { | |
| "name": "Transfer-Encoding", | |
| "value": "chunked" | |
| } | |
| ], | |
| "cookies": [], | |
| "content": { | |
| "size": 0, | |
| "mimeType": "x-unknown", | |
| "compression": 0 | |
| }, | |
| "redirectURL": "/keycloak-example", | |
| "headersSize": 175, | |
| "bodySize": 0, | |
| "_transferSize": 175, | |
| "_error": null | |
| }, | |
| "serverIPAddress": "[::1]", | |
| "startedDateTime": "2023-02-08T17:16:43.334Z", | |
| "time": 11.392999906092882, | |
| "timings": { | |
| "blocked": 8.578999917134642, | |
| "dns": -1, | |
| "ssl": -1, | |
| "connect": -1, | |
| "send": 0.14100000000000001, | |
| "wait": 0.6779999320358039, | |
| "receive": 1.9950000569224358, | |
| "_blocked_queueing": 6.073999917134643 | |
| } | |
| }, | |
| { | |
| "_initiator": { | |
| "type": "other" | |
| }, | |
| "_priority": "VeryHigh", | |
| "_resourceType": "document", | |
| "cache": {}, | |
| "connection": "2084040", | |
| "pageref": "page_5", | |
| "request": { | |
| "method": "GET", | |
| "url": "http://localhost:8081/keycloak-example", | |
| "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.9" | |
| }, | |
| { | |
| "name": "Accept-Encoding", | |
| "value": "gzip, deflate, br" | |
| }, | |
| { | |
| "name": "Accept-Language", | |
| "value": "ru,en;q=0.9" | |
| }, | |
| { | |
| "name": "Cache-Control", | |
| "value": "no-cache" | |
| }, | |
| { | |
| "name": "Connection", | |
| "value": "keep-alive" | |
| }, | |
| { | |
| "name": "Host", | |
| "value": "localhost:8081" | |
| }, | |
| { | |
| "name": "Pragma", | |
| "value": "no-cache" | |
| }, | |
| { | |
| "name": "Referer", | |
| "value": "http://localhost:8081/" | |
| }, | |
| { | |
| "name": "Sec-Fetch-Dest", | |
| "value": "document" | |
| }, | |
| { | |
| "name": "Sec-Fetch-Mode", | |
| "value": "navigate" | |
| }, | |
| { | |
| "name": "Sec-Fetch-Site", | |
| "value": "same-origin" | |
| }, | |
| { | |
| "name": "Sec-Fetch-User", | |
| "value": "?1" | |
| }, | |
| { | |
| "name": "Upgrade-Insecure-Requests", | |
| "value": "1" | |
| }, | |
| { | |
| "name": "User-Agent", | |
| "value": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 YaBrowser/22.11.3.824 Yowser/2.5 Safari/537.36" | |
| }, | |
| { | |
| "name": "sec-ch-ua", | |
| "value": "\"Chromium\";v=\"106\", \"Yandex\";v=\"22\", \"Not;A=Brand\";v=\"99\"" | |
| }, | |
| { | |
| "name": "sec-ch-ua-mobile", | |
| "value": "?0" | |
| }, | |
| { | |
| "name": "sec-ch-ua-platform", | |
| "value": "\"macOS\"" | |
| } | |
| ], | |
| "queryString": [], | |
| "cookies": [], | |
| "headersSize": 781, | |
| "bodySize": 0 | |
| }, | |
| "response": { | |
| "status": 200, | |
| "statusText": "OK", | |
| "httpVersion": "HTTP/1.1", | |
| "headers": [ | |
| { | |
| "name": "Accept-Ranges", | |
| "value": "bytes" | |
| }, | |
| { | |
| "name": "Connection", | |
| "value": "keep-alive" | |
| }, | |
| { | |
| "name": "Content-Disposition", | |
| "value": "inline; filename=\"keycloak-example.html\"" | |
| }, | |
| { | |
| "name": "Content-Encoding", | |
| "value": "gzip" | |
| }, | |
| { | |
| "name": "Content-Type", | |
| "value": "text/html; charset=utf-8" | |
| }, | |
| { | |
| "name": "Date", | |
| "value": "Wed, 08 Feb 2023 17:16:43 GMT" | |
| }, | |
| { | |
| "name": "ETag", | |
| "value": "\"e5e3b7773fe1e2918ad40b59d1ed76dc2cd759ee\"" | |
| }, | |
| { | |
| "name": "Keep-Alive", | |
| "value": "timeout=5" | |
| }, | |
| { | |
| "name": "Transfer-Encoding", | |
| "value": "chunked" | |
| }, | |
| { | |
| "name": "Vary", | |
| "value": "Accept-Encoding" | |
| } | |
| ], | |
| "cookies": [], | |
| "content": { | |
| "size": 2777, | |
| "mimeType": "text/html", | |
| "compression": 1896 | |
| }, | |
| "redirectURL": "", | |
| "headersSize": 353, | |
| "bodySize": 881, | |
| "_transferSize": 1234, | |
| "_error": null | |
| }, | |
| "serverIPAddress": "[::1]", | |
| "startedDateTime": "2023-02-08T17:16:43.345Z", | |
| "time": 6.270000012591481, | |
| "timings": { | |
| "blocked": 2.4599999299049378, | |
| "dns": -1, | |
| "ssl": -1, | |
| "connect": -1, | |
| "send": 0.07499999999999996, | |
| "wait": 2.034999943733215, | |
| "receive": 1.7000001389533281, | |
| "_blocked_queueing": 1.0609999299049377 | |
| } | |
| }, | |
| { | |
| "_initiator": { | |
| "type": "script", | |
| "stack": { | |
| "callFrames": [ | |
| { | |
| "functionName": "", | |
| "scriptId": "118", | |
| "url": "http://localhost:8081/keycloak-example", | |
| "lineNumber": 18, | |
| "columnNumber": 49 | |
| } | |
| ] | |
| } | |
| }, | |
| "_priority": "Low", | |
| "_resourceType": "script", | |
| "cache": {}, | |
| "pageref": "page_5", | |
| "request": { | |
| "method": "GET", | |
| "url": "https://cdn.jsdelivr.net/npm/keycloak-js@20.0.3/dist/keycloak.js", | |
| "httpVersion": "h3", | |
| "headers": [ | |
| { | |
| "name": ":authority", | |
| "value": "cdn.jsdelivr.net" | |
| }, | |
| { | |
| "name": ":method", | |
| "value": "GET" | |
| }, | |
| { | |
| "name": ":path", | |
| "value": "/npm/keycloak-js@20.0.3/dist/keycloak.js" | |
| }, | |
| { | |
| "name": ":scheme", | |
| "value": "https" | |
| }, | |
| { | |
| "name": "accept", | |
| "value": "*/*" | |
| }, | |
| { | |
| "name": "accept-encoding", | |
| "value": "gzip, deflate, br" | |
| }, | |
| { | |
| "name": "accept-language", | |
| "value": "ru,en;q=0.9" | |
| }, | |
| { | |
| "name": "cache-control", | |
| "value": "no-cache" | |
| }, | |
| { | |
| "name": "pragma", | |
| "value": "no-cache" | |
| }, | |
| { | |
| "name": "referer", | |
| "value": "http://localhost:8081/" | |
| }, | |
| { | |
| "name": "sec-ch-ua", | |
| "value": "\"Chromium\";v=\"106\", \"Yandex\";v=\"22\", \"Not;A=Brand\";v=\"99\"" | |
| }, | |
| { | |
| "name": "sec-ch-ua-mobile", | |
| "value": "?0" | |
| }, | |
| { | |
| "name": "sec-ch-ua-platform", | |
| "value": "\"macOS\"" | |
| }, | |
| { | |
| "name": "sec-fetch-dest", | |
| "value": "script" | |
| }, | |
| { | |
| "name": "sec-fetch-mode", | |
| "value": "no-cors" | |
| }, | |
| { | |
| "name": "sec-fetch-site", | |
| "value": "cross-site" | |
| }, | |
| { | |
| "name": "user-agent", | |
| "value": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 YaBrowser/22.11.3.824 Yowser/2.5 Safari/537.36" | |
| } | |
| ], | |
| "queryString": [], | |
| "cookies": [], | |
| "headersSize": -1, | |
| "bodySize": 0 | |
| }, | |
| "response": { | |
| "status": 200, | |
| "statusText": "", | |
| "httpVersion": "h3", | |
| "headers": [ | |
| { | |
| "name": "access-control-allow-origin", | |
| "value": "*" | |
| }, | |
| { | |
| "name": "access-control-expose-headers", | |
| "value": "*" | |
| }, | |
| { | |
| "name": "age", | |
| "value": "3563" | |
| }, | |
| { | |
| "name": "alt-svc", | |
| "value": "h3=\":443\"; ma=86400, h3-29=\":443\"; ma=86400" | |
| }, | |
| { | |
| "name": "cache-control", | |
| "value": "public, max-age=31536000, s-maxage=31536000, immutable" | |
| }, | |
| { | |
| "name": "cf-cache-status", | |
| "value": "HIT" | |
| }, | |
| { | |
| "name": "cf-ray", | |
| "value": "796603c599db005c-DME" | |
| }, | |
| { | |
| "name": "content-encoding", | |
| "value": "br" | |
| }, | |
| { | |
| "name": "content-type", | |
| "value": "application/javascript; charset=utf-8" | |
| }, | |
| { | |
| "name": "cross-origin-resource-policy", | |
| "value": "cross-origin" | |
| }, | |
| { | |
| "name": "date", | |
| "value": "Wed, 08 Feb 2023 17:16:43 GMT" | |
| }, | |
| { | |
| "name": "etag", | |
| "value": "W/\"16df2-AA8GSCXuFrb6UQ8eKyoXNXyYutc\"" | |
| }, | |
| { | |
| "name": "nel", | |
| "value": "{\"success_fraction\":0.01,\"report_to\":\"cf-nel\",\"max_age\":604800}" | |
| }, | |
| { | |
| "name": "report-to", | |
| "value": "{\"endpoints\":[{\"url\":\"https:\\/\\/a.nel.cloudflare.com\\/report\\/v3?s=rsCNhOZlJ6wCdq1TcsMVL%2FxU2uPIGosH1MtgJcccmoeoKaB5DGK1D9yE5dM90O8iL2sUhwqxRwNt7K9w0vzXIH0IeMci%2BpWqskdM1GlggRtHm1%2FAVdhPZaLUBoaLU%2BrN0tD%2FdbC3nLd4uiQ99ps%3D\"}],\"group\":\"cf-nel\",\"max_age\":604800}" | |
| }, | |
| { | |
| "name": "server", | |
| "value": "cloudflare" | |
| }, | |
| { | |
| "name": "strict-transport-security", | |
| "value": "max-age=31536000; includeSubDomains; preload" | |
| }, | |
| { | |
| "name": "timing-allow-origin", | |
| "value": "*" | |
| }, | |
| { | |
| "name": "vary", | |
| "value": "Accept-Encoding" | |
| }, | |
| { | |
| "name": "x-cache", | |
| "value": "HIT, MISS" | |
| }, | |
| { | |
| "name": "x-content-type-options", | |
| "value": "nosniff" | |
| }, | |
| { | |
| "name": "x-jsd-version", | |
| "value": "20.0.3" | |
| }, | |
| { | |
| "name": "x-jsd-version-type", | |
| "value": "version" | |
| }, | |
| { | |
| "name": "x-served-by", | |
| "value": "cache-fra-eddf8230104-FRA, cache-yyz4545-YYZ" | |
| } | |
| ], | |
| "cookies": [], | |
| "content": { | |
| "size": 93682, | |
| "mimeType": "application/javascript" | |
| }, | |
| "redirectURL": "", | |
| "headersSize": -1, | |
| "bodySize": -1, | |
| "_transferSize": 20372, | |
| "_error": null | |
| }, | |
| "serverIPAddress": "[2606:4700::6810:5914]", | |
| "startedDateTime": "2023-02-08T17:16:43.442Z", | |
| "time": 417.30500010825693, | |
| "timings": { | |
| "blocked": 16.645000058636068, | |
| "dns": 72.44, | |
| "ssl": 76.66500000000002, | |
| "connect": 149.3, | |
| "send": 0, | |
| "wait": 15.282999913543449, | |
| "receive": 163.6370001360774, | |
| "_blocked_queueing": 14.96000005863607 | |
| } | |
| }, | |
| { | |
| "_initiator": { | |
| "type": "script", | |
| "stack": { | |
| "callFrames": [ | |
| { | |
| "functionName": "loadConfig", | |
| "scriptId": "124", | |
| "url": "https://cdn.jsdelivr.net/npm/keycloak-js@20.0.3/dist/keycloak.js", | |
| "lineNumber": 1565, | |
| "columnNumber": 17 | |
| }, | |
| { | |
| "functionName": "Keycloak.kc.init", | |
| "scriptId": "124", | |
| "url": "https://cdn.jsdelivr.net/npm/keycloak-js@20.0.3/dist/keycloak.js", | |
| "lineNumber": 848, | |
| "columnNumber": 29 | |
| }, | |
| { | |
| "functionName": "window.onload", | |
| "scriptId": "118", | |
| "url": "http://localhost:8081/keycloak-example", | |
| "lineNumber": 24, | |
| "columnNumber": 21 | |
| } | |
| ], | |
| "parent": { | |
| "description": "load", | |
| "callFrames": [ | |
| { | |
| "functionName": "", | |
| "scriptId": "118", | |
| "url": "http://localhost:8081/keycloak-example", | |
| "lineNumber": 20, | |
| "columnNumber": 22 | |
| } | |
| ] | |
| } | |
| } | |
| }, | |
| "_priority": "High", | |
| "_resourceType": "xhr", | |
| "cache": {}, | |
| "connection": "2084040", | |
| "pageref": "page_5", | |
| "request": { | |
| "method": "GET", | |
| "url": "http://localhost:8081/keycloak.json", | |
| "httpVersion": "HTTP/1.1", | |
| "headers": [ | |
| { | |
| "name": "Accept", | |
| "value": "application/json" | |
| }, | |
| { | |
| "name": "Accept-Encoding", | |
| "value": "gzip, deflate, br" | |
| }, | |
| { | |
| "name": "Accept-Language", | |
| "value": "ru,en;q=0.9" | |
| }, | |
| { | |
| "name": "Cache-Control", | |
| "value": "no-cache" | |
| }, | |
| { | |
| "name": "Connection", | |
| "value": "keep-alive" | |
| }, | |
| { | |
| "name": "Host", | |
| "value": "localhost:8081" | |
| }, | |
| { | |
| "name": "Pragma", | |
| "value": "no-cache" | |
| }, | |
| { | |
| "name": "Referer", | |
| "value": "http://localhost:8081/keycloak-example" | |
| }, | |
| { | |
| "name": "Sec-Fetch-Dest", | |
| "value": "empty" | |
| }, | |
| { | |
| "name": "Sec-Fetch-Mode", | |
| "value": "cors" | |
| }, | |
| { | |
| "name": "Sec-Fetch-Site", | |
| "value": "same-origin" | |
| }, | |
| { | |
| "name": "User-Agent", | |
| "value": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 YaBrowser/22.11.3.824 Yowser/2.5 Safari/537.36" | |
| }, | |
| { | |
| "name": "sec-ch-ua", | |
| "value": "\"Chromium\";v=\"106\", \"Yandex\";v=\"22\", \"Not;A=Brand\";v=\"99\"" | |
| }, | |
| { | |
| "name": "sec-ch-ua-mobile", | |
| "value": "?0" | |
| }, | |
| { | |
| "name": "sec-ch-ua-platform", | |
| "value": "\"macOS\"" | |
| } | |
| ], | |
| "queryString": [], | |
| "cookies": [], | |
| "headersSize": 618, | |
| "bodySize": 0 | |
| }, | |
| "response": { | |
| "status": 200, | |
| "statusText": "OK", | |
| "httpVersion": "HTTP/1.1", | |
| "headers": [ | |
| { | |
| "name": "Accept-Ranges", | |
| "value": "bytes" | |
| }, | |
| { | |
| "name": "Connection", | |
| "value": "keep-alive" | |
| }, | |
| { | |
| "name": "Content-Disposition", | |
| "value": "inline; filename=\"keycloak.json\"" | |
| }, | |
| { | |
| "name": "Content-Length", | |
| "value": "310" | |
| }, | |
| { | |
| "name": "Content-Type", | |
| "value": "application/json; charset=utf-8" | |
| }, | |
| { | |
| "name": "Date", | |
| "value": "Wed, 08 Feb 2023 17:16:43 GMT" | |
| }, | |
| { | |
| "name": "ETag", | |
| "value": "\"443cd03a1d3792eed96bb947449fe0ad19250b3e\"" | |
| }, | |
| { | |
| "name": "Keep-Alive", | |
| "value": "timeout=5" | |
| }, | |
| { | |
| "name": "Vary", | |
| "value": "Accept-Encoding" | |
| } | |
| ], | |
| "cookies": [], | |
| "content": { | |
| "size": 310, | |
| "mimeType": "application/json", | |
| "compression": 0 | |
| }, | |
| "redirectURL": "", | |
| "headersSize": 321, | |
| "bodySize": 310, | |
| "_transferSize": 631, | |
| "_error": null | |
| }, | |
| "serverIPAddress": "[::1]", | |
| "startedDateTime": "2023-02-08T17:16:43.793Z", | |
| "time": 59.1910001821816, | |
| "timings": { | |
| "blocked": 57.37900010998547, | |
| "dns": -1, | |
| "ssl": -1, | |
| "connect": -1, | |
| "send": 0.07000000000000028, | |
| "wait": 0.9349999808967127, | |
| "receive": 0.8070000912994146, | |
| "_blocked_queueing": 1.4210001099854708 | |
| } | |
| }, | |
| { | |
| "_initiator": { | |
| "type": "script", | |
| "stack": { | |
| "callFrames": [ | |
| { | |
| "functionName": "check3pCookiesSupported", | |
| "scriptId": "124", | |
| "url": "https://cdn.jsdelivr.net/npm/keycloak-js@20.0.3/dist/keycloak.js", | |
| "lineNumber": 1976, | |
| "columnNumber": 27 | |
| }, | |
| { | |
| "functionName": "T", | |
| "scriptId": "124", | |
| "url": "https://cdn.jsdelivr.net/npm/keycloak-js@20.0.3/dist/keycloak.js", | |
| "lineNumber": 15, | |
| "columnNumber": 2554 | |
| }, | |
| { | |
| "functionName": "", | |
| "scriptId": "124", | |
| "url": "https://cdn.jsdelivr.net/npm/keycloak-js@20.0.3/dist/keycloak.js", | |
| "lineNumber": 15, | |
| "columnNumber": 998 | |
| }, | |
| { | |
| "functionName": "a", | |
| "scriptId": "124", | |
| "url": "https://cdn.jsdelivr.net/npm/keycloak-js@20.0.3/dist/keycloak.js", | |
| "lineNumber": 15, | |
| "columnNumber": 698 | |
| } | |
| ], | |
| "parent": { | |
| "description": "characterData", | |
| "callFrames": [ | |
| { | |
| "functionName": "", | |
| "scriptId": "124", | |
| "url": "https://cdn.jsdelivr.net/npm/keycloak-js@20.0.3/dist/keycloak.js", | |
| "lineNumber": 15, | |
| "columnNumber": 462 | |
| }, | |
| { | |
| "functionName": "z", | |
| "scriptId": "124", | |
| "url": "https://cdn.jsdelivr.net/npm/keycloak-js@20.0.3/dist/keycloak.js", | |
| "lineNumber": 15, | |
| "columnNumber": 4114 | |
| }, | |
| { | |
| "functionName": "A", | |
| "scriptId": "124", | |
| "url": "https://cdn.jsdelivr.net/npm/keycloak-js@20.0.3/dist/keycloak.js", | |
| "lineNumber": 15, | |
| "columnNumber": 2117 | |
| }, | |
| { | |
| "functionName": "w", | |
| "scriptId": "124", | |
| "url": "https://cdn.jsdelivr.net/npm/keycloak-js@20.0.3/dist/keycloak.js", | |
| "lineNumber": 15, | |
| "columnNumber": 1974 | |
| }, | |
| { | |
| "functionName": "", | |
| "scriptId": "124", | |
| "url": "https://cdn.jsdelivr.net/npm/keycloak-js@20.0.3/dist/keycloak.js", | |
| "lineNumber": 15, | |
| "columnNumber": 2722 | |
| }, | |
| { | |
| "functionName": "setSuccess", | |
| "scriptId": "124", | |
| "url": "https://cdn.jsdelivr.net/npm/keycloak-js@20.0.3/dist/keycloak.js", | |
| "lineNumber": 1825, | |
| "columnNumber": 19 | |
| }, | |
| { | |
| "functionName": "req.onreadystatechange", | |
| "scriptId": "124", | |
| "url": "https://cdn.jsdelivr.net/npm/keycloak-js@20.0.3/dist/keycloak.js", | |
| "lineNumber": 1558, | |
| "columnNumber": 33 | |
| } | |
| ] | |
| } | |
| } | |
| }, | |
| "_priority": "VeryHigh", | |
| "_resourceType": "document", | |
| "cache": {}, | |
| "connection": "2080548", | |
| "pageref": "page_5", | |
| "request": { | |
| "method": "GET", | |
| "url": "http://localhost:8080/realms/realm-name/protocol/openid-connect/3p-cookies/step1.html", | |
| "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.9" | |
| }, | |
| { | |
| "name": "Accept-Encoding", | |
| "value": "gzip, deflate, br" | |
| }, | |
| { | |
| "name": "Accept-Language", | |
| "value": "ru,en;q=0.9" | |
| }, | |
| { | |
| "name": "Cache-Control", | |
| "value": "no-cache" | |
| }, | |
| { | |
| "name": "Connection", | |
| "value": "keep-alive" | |
| }, | |
| { | |
| "name": "Host", | |
| "value": "localhost:8080" | |
| }, | |
| { | |
| "name": "Pragma", | |
| "value": "no-cache" | |
| }, | |
| { | |
| "name": "Referer", | |
| "value": "http://localhost:8081/" | |
| }, | |
| { | |
| "name": "Sec-Fetch-Dest", | |
| "value": "iframe" | |
| }, | |
| { | |
| "name": "Sec-Fetch-Mode", | |
| "value": "navigate" | |
| }, | |
| { | |
| "name": "Sec-Fetch-Site", | |
| "value": "same-site" | |
| }, | |
| { | |
| "name": "Upgrade-Insecure-Requests", | |
| "value": "1" | |
| }, | |
| { | |
| "name": "User-Agent", | |
| "value": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 YaBrowser/22.11.3.824 Yowser/2.5 Safari/537.36" | |
| }, | |
| { | |
| "name": "sec-ch-ua", | |
| "value": "\"Chromium\";v=\"106\", \"Yandex\";v=\"22\", \"Not;A=Brand\";v=\"99\"" | |
| }, | |
| { | |
| "name": "sec-ch-ua-mobile", | |
| "value": "?0" | |
| }, | |
| { | |
| "name": "sec-ch-ua-platform", | |
| "value": "\"macOS\"" | |
| } | |
| ], | |
| "queryString": [], | |
| "cookies": [], | |
| "headersSize": 804, | |
| "bodySize": 0 | |
| }, | |
| "response": { | |
| "status": 200, | |
| "statusText": "OK", | |
| "httpVersion": "HTTP/1.1", | |
| "headers": [ | |
| { | |
| "name": "Cache-Control", | |
| "value": "no-cache, must-revalidate, no-transform, no-store" | |
| }, | |
| { | |
| "name": "Content-Security-Policy", | |
| "value": "frame-src 'self'; object-src 'none';" | |
| }, | |
| { | |
| "name": "Content-Type", | |
| "value": "text/html;charset=utf-8" | |
| }, | |
| { | |
| "name": "P3P", | |
| "value": "CP=\"This is not a P3P policy!\"" | |
| }, | |
| { | |
| "name": "Referrer-Policy", | |
| "value": "no-referrer" | |
| }, | |
| { | |
| "name": "Strict-Transport-Security", | |
| "value": "max-age=31536000; includeSubDomains" | |
| }, | |
| { | |
| "name": "X-Content-Type-Options", | |
| "value": "nosniff" | |
| }, | |
| { | |
| "name": "X-Robots-Tag", | |
| "value": "none" | |
| }, | |
| { | |
| "name": "X-XSS-Protection", | |
| "value": "1; mode=block" | |
| }, | |
| { | |
| "name": "content-length", | |
| "value": "757" | |
| } | |
| ], | |
| "cookies": [], | |
| "content": { | |
| "size": 757, | |
| "mimeType": "text/html", | |
| "compression": 0 | |
| }, | |
| "redirectURL": "", | |
| "headersSize": 425, | |
| "bodySize": 757, | |
| "_transferSize": 1182, | |
| "_error": null | |
| }, | |
| "serverIPAddress": "[::1]", | |
| "startedDateTime": "2023-02-08T17:16:43.857Z", | |
| "time": 10.124000022187829, | |
| "timings": { | |
| "blocked": 3.977999888703227, | |
| "dns": -1, | |
| "ssl": -1, | |
| "connect": -1, | |
| "send": 0.07399999999999995, | |
| "wait": 4.72100009085238, | |
| "receive": 1.3510000426322222, | |
| "_blocked_queueing": 3.195999888703227 | |
| } | |
| }, | |
| { | |
| "_initiator": { | |
| "type": "script", | |
| "stack": { | |
| "callFrames": [ | |
| { | |
| "functionName": "placeTestCookie", | |
| "scriptId": "129", | |
| "url": "http://localhost:8080/realms/realm-name/protocol/openid-connect/3p-cookies/step1.html", | |
| "lineNumber": 26, | |
| "columnNumber": 24 | |
| }, | |
| { | |
| "functionName": "", | |
| "scriptId": "129", | |
| "url": "http://localhost:8080/realms/realm-name/protocol/openid-connect/3p-cookies/step1.html", | |
| "lineNumber": 10, | |
| "columnNumber": 8 | |
| } | |
| ] | |
| } | |
| }, | |
| "_priority": "VeryHigh", | |
| "_resourceType": "document", | |
| "cache": {}, | |
| "connection": "2080548", | |
| "pageref": "page_5", | |
| "request": { | |
| "method": "GET", | |
| "url": "http://localhost:8080/realms/realm-name/protocol/openid-connect/3p-cookies/step2.html", | |
| "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.9" | |
| }, | |
| { | |
| "name": "Accept-Encoding", | |
| "value": "gzip, deflate, br" | |
| }, | |
| { | |
| "name": "Accept-Language", | |
| "value": "ru,en;q=0.9" | |
| }, | |
| { | |
| "name": "Cache-Control", | |
| "value": "no-cache" | |
| }, | |
| { | |
| "name": "Connection", | |
| "value": "keep-alive" | |
| }, | |
| { | |
| "name": "Cookie", | |
| "value": "KEYCLOAK_3P_COOKIE_SAMESITE=supported; KEYCLOAK_3P_COOKIE=supported" | |
| }, | |
| { | |
| "name": "Host", | |
| "value": "localhost:8080" | |
| }, | |
| { | |
| "name": "Pragma", | |
| "value": "no-cache" | |
| }, | |
| { | |
| "name": "Sec-Fetch-Dest", | |
| "value": "iframe" | |
| }, | |
| { | |
| "name": "Sec-Fetch-Mode", | |
| "value": "navigate" | |
| }, | |
| { | |
| "name": "Sec-Fetch-Site", | |
| "value": "same-origin" | |
| }, | |
| { | |
| "name": "Upgrade-Insecure-Requests", | |
| "value": "1" | |
| }, | |
| { | |
| "name": "User-Agent", | |
| "value": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 YaBrowser/22.11.3.824 Yowser/2.5 Safari/537.36" | |
| }, | |
| { | |
| "name": "sec-ch-ua", | |
| "value": "\"Chromium\";v=\"106\", \"Yandex\";v=\"22\", \"Not;A=Brand\";v=\"99\"" | |
| }, | |
| { | |
| "name": "sec-ch-ua-mobile", | |
| "value": "?0" | |
| }, | |
| { | |
| "name": "sec-ch-ua-platform", | |
| "value": "\"macOS\"" | |
| } | |
| ], | |
| "queryString": [], | |
| "cookies": [ | |
| { | |
| "name": "KEYCLOAK_3P_COOKIE_SAMESITE", | |
| "value": "supported", | |
| "path": "/realms/realm-name/protocol/openid-connect/3p-cookies", | |
| "domain": "localhost", | |
| "expires": "2023-02-08T17:17:43.943Z", | |
| "httpOnly": false, | |
| "secure": true, | |
| "sameSite": "None" | |
| }, | |
| { | |
| "name": "KEYCLOAK_3P_COOKIE", | |
| "value": "supported", | |
| "path": "/realms/realm-name/protocol/openid-connect/3p-cookies", | |
| "domain": "localhost", | |
| "expires": "2023-02-08T17:17:43.943Z", | |
| "httpOnly": false, | |
| "secure": false | |
| } | |
| ], | |
| "headersSize": 850, | |
| "bodySize": 0 | |
| }, | |
| "response": { | |
| "status": 200, | |
| "statusText": "OK", | |
| "httpVersion": "HTTP/1.1", | |
| "headers": [ | |
| { | |
| "name": "Cache-Control", | |
| "value": "no-cache, must-revalidate, no-transform, no-store" | |
| }, | |
| { | |
| "name": "Content-Security-Policy", | |
| "value": "frame-src 'self'; object-src 'none';" | |
| }, | |
| { | |
| "name": "Content-Type", | |
| "value": "text/html;charset=utf-8" | |
| }, | |
| { | |
| "name": "P3P", | |
| "value": "CP=\"This is not a P3P policy!\"" | |
| }, | |
| { | |
| "name": "Referrer-Policy", | |
| "value": "no-referrer" | |
| }, | |
| { | |
| "name": "Strict-Transport-Security", | |
| "value": "max-age=31536000; includeSubDomains" | |
| }, | |
| { | |
| "name": "X-Content-Type-Options", | |
| "value": "nosniff" | |
| }, | |
| { | |
| "name": "X-Robots-Tag", | |
| "value": "none" | |
| }, | |
| { | |
| "name": "X-XSS-Protection", | |
| "value": "1; mode=block" | |
| }, | |
| { | |
| "name": "content-length", | |
| "value": "442" | |
| } | |
| ], | |
| "cookies": [], | |
| "content": { | |
| "size": 442, | |
| "mimeType": "text/html", | |
| "compression": 0 | |
| }, | |
| "redirectURL": "", | |
| "headersSize": 425, | |
| "bodySize": 442, | |
| "_transferSize": 867, | |
| "_error": null | |
| }, | |
| "serverIPAddress": "[::1]", | |
| "startedDateTime": "2023-02-08T17:16:43.945Z", | |
| "time": 22.85100007429719, | |
| "timings": { | |
| "blocked": 16.147000030219555, | |
| "dns": -1, | |
| "ssl": -1, | |
| "connect": -1, | |
| "send": 0.123, | |
| "wait": 5.223999955758453, | |
| "receive": 1.3570000883191824, | |
| "_blocked_queueing": 15.048000030219555 | |
| } | |
| }, | |
| { | |
| "_initiator": { | |
| "type": "script", | |
| "stack": { | |
| "callFrames": [ | |
| { | |
| "functionName": "login", | |
| "scriptId": "124", | |
| "url": "https://cdn.jsdelivr.net/npm/keycloak-js@20.0.3/dist/keycloak.js", | |
| "lineNumber": 2011, | |
| "columnNumber": 37 | |
| }, | |
| { | |
| "functionName": "Keycloak.kc.login", | |
| "scriptId": "124", | |
| "url": "https://cdn.jsdelivr.net/npm/keycloak-js@20.0.3/dist/keycloak.js", | |
| "lineNumber": 999, | |
| "columnNumber": 24 | |
| }, | |
| { | |
| "functionName": "doLogin", | |
| "scriptId": "124", | |
| "url": "https://cdn.jsdelivr.net/npm/keycloak-js@20.0.3/dist/keycloak.js", | |
| "lineNumber": 856, | |
| "columnNumber": 20 | |
| }, | |
| { | |
| "functionName": "onLoad", | |
| "scriptId": "124", | |
| "url": "https://cdn.jsdelivr.net/npm/keycloak-js@20.0.3/dist/keycloak.js", | |
| "lineNumber": 906, | |
| "columnNumber": 21 | |
| }, | |
| { | |
| "functionName": "processInit", | |
| "scriptId": "124", | |
| "url": "https://cdn.jsdelivr.net/npm/keycloak-js@20.0.3/dist/keycloak.js", | |
| "lineNumber": 958, | |
| "columnNumber": 21 | |
| }, | |
| { | |
| "functionName": "T", | |
| "scriptId": "124", | |
| "url": "https://cdn.jsdelivr.net/npm/keycloak-js@20.0.3/dist/keycloak.js", | |
| "lineNumber": 15, | |
| "columnNumber": 2554 | |
| }, | |
| { | |
| "functionName": "E", | |
| "scriptId": "124", | |
| "url": "https://cdn.jsdelivr.net/npm/keycloak-js@20.0.3/dist/keycloak.js", | |
| "lineNumber": 15, | |
| "columnNumber": 2446 | |
| }, | |
| { | |
| "functionName": "a", | |
| "scriptId": "124", | |
| "url": "https://cdn.jsdelivr.net/npm/keycloak-js@20.0.3/dist/keycloak.js", | |
| "lineNumber": 15, | |
| "columnNumber": 698 | |
| } | |
| ], | |
| "parent": { | |
| "description": "characterData", | |
| "callFrames": [ | |
| { | |
| "functionName": "", | |
| "scriptId": "124", | |
| "url": "https://cdn.jsdelivr.net/npm/keycloak-js@20.0.3/dist/keycloak.js", | |
| "lineNumber": 15, | |
| "columnNumber": 462 | |
| }, | |
| { | |
| "functionName": "z", | |
| "scriptId": "124", | |
| "url": "https://cdn.jsdelivr.net/npm/keycloak-js@20.0.3/dist/keycloak.js", | |
| "lineNumber": 15, | |
| "columnNumber": 4114 | |
| }, | |
| { | |
| "functionName": "A", | |
| "scriptId": "124", | |
| "url": "https://cdn.jsdelivr.net/npm/keycloak-js@20.0.3/dist/keycloak.js", | |
| "lineNumber": 15, | |
| "columnNumber": 2117 | |
| }, | |
| { | |
| "functionName": "w", | |
| "scriptId": "124", | |
| "url": "https://cdn.jsdelivr.net/npm/keycloak-js@20.0.3/dist/keycloak.js", | |
| "lineNumber": 15, | |
| "columnNumber": 1974 | |
| }, | |
| { | |
| "functionName": "", | |
| "scriptId": "124", | |
| "url": "https://cdn.jsdelivr.net/npm/keycloak-js@20.0.3/dist/keycloak.js", | |
| "lineNumber": 15, | |
| "columnNumber": 2722 | |
| }, | |
| { | |
| "functionName": "setSuccess", | |
| "scriptId": "124", | |
| "url": "https://cdn.jsdelivr.net/npm/keycloak-js@20.0.3/dist/keycloak.js", | |
| "lineNumber": 1825, | |
| "columnNumber": 19 | |
| }, | |
| { | |
| "functionName": "messageCallback", | |
| "scriptId": "124", | |
| "url": "https://cdn.jsdelivr.net/npm/keycloak-js@20.0.3/dist/keycloak.js", | |
| "lineNumber": 1996, | |
| "columnNumber": 25 | |
| } | |
| ] | |
| } | |
| } | |
| }, | |
| "_priority": "VeryHigh", | |
| "_resourceType": "document", | |
| "cache": {}, | |
| "connection": "2080548", | |
| "pageref": "page_6", | |
| "request": { | |
| "method": "GET", | |
| "url": "http://localhost:8080/realms/realm-name/protocol/openid-connect/auth?client_id=client-id&redirect_uri=http%3A%2F%2Flocalhost%3A8081%2Fkeycloak-example&state=e12b9c95-0ee5-4d97-81fd-dfe67eef1f25&response_mode=fragment&response_type=code&scope=openid&nonce=d1d760ff-a33a-4865-aba9-16411b398ba0", | |
| "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.9" | |
| }, | |
| { | |
| "name": "Accept-Encoding", | |
| "value": "gzip, deflate, br" | |
| }, | |
| { | |
| "name": "Accept-Language", | |
| "value": "ru,en;q=0.9" | |
| }, | |
| { | |
| "name": "Cache-Control", | |
| "value": "no-cache" | |
| }, | |
| { | |
| "name": "Connection", | |
| "value": "keep-alive" | |
| }, | |
| { | |
| "name": "Host", | |
| "value": "localhost:8080" | |
| }, | |
| { | |
| "name": "Pragma", | |
| "value": "no-cache" | |
| }, | |
| { | |
| "name": "Referer", | |
| "value": "http://localhost:8081/" | |
| }, | |
| { | |
| "name": "Sec-Fetch-Dest", | |
| "value": "document" | |
| }, | |
| { | |
| "name": "Sec-Fetch-Mode", | |
| "value": "navigate" | |
| }, | |
| { | |
| "name": "Sec-Fetch-Site", | |
| "value": "same-site" | |
| }, | |
| { | |
| "name": "Upgrade-Insecure-Requests", | |
| "value": "1" | |
| }, | |
| { | |
| "name": "User-Agent", | |
| "value": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 YaBrowser/22.11.3.824 Yowser/2.5 Safari/537.36" | |
| }, | |
| { | |
| "name": "sec-ch-ua", | |
| "value": "\"Chromium\";v=\"106\", \"Yandex\";v=\"22\", \"Not;A=Brand\";v=\"99\"" | |
| }, | |
| { | |
| "name": "sec-ch-ua-mobile", | |
| "value": "?0" | |
| }, | |
| { | |
| "name": "sec-ch-ua-platform", | |
| "value": "\"macOS\"" | |
| } | |
| ], | |
| "queryString": [ | |
| { | |
| "name": "client_id", | |
| "value": "client-id" | |
| }, | |
| { | |
| "name": "redirect_uri", | |
| "value": "http%3A%2F%2Flocalhost%3A8081%2Fkeycloak-example" | |
| }, | |
| { | |
| "name": "state", | |
| "value": "e12b9c95-0ee5-4d97-81fd-dfe67eef1f25" | |
| }, | |
| { | |
| "name": "response_mode", | |
| "value": "fragment" | |
| }, | |
| { | |
| "name": "response_type", | |
| "value": "code" | |
| }, | |
| { | |
| "name": "scope", | |
| "value": "openid" | |
| }, | |
| { | |
| "name": "nonce", | |
| "value": "d1d760ff-a33a-4865-aba9-16411b398ba0" | |
| } | |
| ], | |
| "cookies": [], | |
| "headersSize": 1012, | |
| "bodySize": 0 | |
| }, | |
| "response": { | |
| "status": 200, | |
| "statusText": "OK", | |
| "httpVersion": "HTTP/1.1", | |
| "headers": [ | |
| { | |
| "name": "Cache-Control", | |
| "value": "no-store, must-revalidate, max-age=0" | |
| }, | |
| { | |
| "name": "Content-Language", | |
| "value": "en" | |
| }, | |
| { | |
| "name": "Content-Security-Policy", | |
| "value": "frame-src 'self'; frame-ancestors 'self'; object-src 'none';" | |
| }, | |
| { | |
| "name": "Content-Type", | |
| "value": "text/html;charset=utf-8" | |
| }, | |
| { | |
| "name": "Referrer-Policy", | |
| "value": "no-referrer" | |
| }, | |
| { | |
| "name": "Set-Cookie", | |
| "value": "AUTH_SESSION_ID=df13ef51-698c-461d-95ab-fea114d7055c; Version=1; Path=/realms/realm-name/; SameSite=None; Secure; HttpOnly" | |
| }, | |
| { | |
| "name": "Set-Cookie", | |
| "value": "AUTH_SESSION_ID_LEGACY=df13ef51-698c-461d-95ab-fea114d7055c; Version=1; Path=/realms/realm-name/; HttpOnly" | |
| }, | |
| { | |
| "name": "Set-Cookie", | |
| "value": "KC_RESTART=eyJhbGciOiJIUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICI4N2UwYWNmZC0yMTgzLTRlZTgtYjRhMS1mM2IyMzA4ZjE1ZTAifQ.eyJjaWQiOiJjbGllbnQtaWQiLCJwdHkiOiJvcGVuaWQtY29ubmVjdCIsInJ1cmkiOiJodHRwOi8vbG9jYWxob3N0OjgwODEva2V5Y2xvYWstZXhhbXBsZSIsImFjdCI6IkFVVEhFTlRJQ0FURSIsIm5vdGVzIjp7InNjb3BlIjoib3BlbmlkIiwiaXNzIjoiaHR0cDovL2xvY2FsaG9zdDo4MDgwL3JlYWxtcy9yZWFsbS1uYW1lIiwicmVzcG9uc2VfdHlwZSI6ImNvZGUiLCJyZWRpcmVjdF91cmkiOiJodHRwOi8vbG9jYWxob3N0OjgwODEva2V5Y2xvYWstZXhhbXBsZSIsInN0YXRlIjoiZTEyYjljOTUtMGVlNS00ZDk3LTgxZmQtZGZlNjdlZWYxZjI1Iiwibm9uY2UiOiJkMWQ3NjBmZi1hMzNhLTQ4NjUtYWJhOS0xNjQxMWIzOThiYTAiLCJyZXNwb25zZV9tb2RlIjoiZnJhZ21lbnQifX0.OzfN8elxlRIOwxgbqL6kU7CqO9-TyhR3QUgziDI1a0E; Version=1; Path=/realms/realm-name/; HttpOnly" | |
| }, | |
| { | |
| "name": "Strict-Transport-Security", | |
| "value": "max-age=31536000; includeSubDomains" | |
| }, | |
| { | |
| "name": "X-Content-Type-Options", | |
| "value": "nosniff" | |
| }, | |
| { | |
| "name": "X-Frame-Options", | |
| "value": "SAMEORIGIN" | |
| }, | |
| { | |
| "name": "X-Robots-Tag", | |
| "value": "none" | |
| }, | |
| { | |
| "name": "X-XSS-Protection", | |
| "value": "1; mode=block" | |
| }, | |
| { | |
| "name": "content-length", | |
| "value": "3410" | |
| } | |
| ], | |
| "cookies": [ | |
| { | |
| "name": "AUTH_SESSION_ID", | |
| "value": "df13ef51-698c-461d-95ab-fea114d7055c", | |
| "path": "/realms/realm-name/", | |
| "domain": "localhost", | |
| "expires": null, | |
| "httpOnly": true, | |
| "secure": true, | |
| "sameSite": "None" | |
| } | |
| ], | |
| "content": { | |
| "size": 3410, | |
| "mimeType": "text/html", | |
| "compression": 0 | |
| }, | |
| "redirectURL": "", | |
| "headersSize": 1441, | |
| "bodySize": 3410, | |
| "_transferSize": 4851, | |
| "_error": null | |
| }, | |
| "serverIPAddress": "[::1]", | |
| "startedDateTime": "2023-02-08T17:16:44.051Z", | |
| "time": 73.70400009676814, | |
| "timings": { | |
| "blocked": 29.389999994173646, | |
| "dns": -1, | |
| "ssl": -1, | |
| "connect": -1, | |
| "send": 0.06999999999999984, | |
| "wait": 40.872000037893656, | |
| "receive": 3.372000064700842, | |
| "_blocked_queueing": 27.793999994173646 | |
| } | |
| }, | |
| { | |
| "_initiator": { | |
| "type": "parser", | |
| "url": "http://localhost:8080/realms/realm-name/protocol/openid-connect/auth?client_id=client-id&redirect_uri=http%3A%2F%2Flocalhost%3A8081%2Fkeycloak-example&state=e12b9c95-0ee5-4d97-81fd-dfe67eef1f25&response_mode=fragment&response_type=code&scope=openid&nonce=d1d760ff-a33a-4865-aba9-16411b398ba0", | |
| "lineNumber": 11 | |
| }, | |
| "_priority": "VeryHigh", | |
| "_resourceType": "stylesheet", | |
| "cache": {}, | |
| "connection": "2080548", | |
| "pageref": "page_6", | |
| "request": { | |
| "method": "GET", | |
| "url": "http://localhost:8080/resources/43xpj/common/keycloak/web_modules/@patternfly/react-core/dist/styles/base.css", | |
| "httpVersion": "HTTP/1.1", | |
| "headers": [ | |
| { | |
| "name": "Accept", | |
| "value": "text/css,*/*;q=0.1" | |
| }, | |
| { | |
| "name": "Accept-Encoding", | |
| "value": "gzip, deflate, br" | |
| }, | |
| { | |
| "name": "Accept-Language", | |
| "value": "ru,en;q=0.9" | |
| }, | |
| { | |
| "name": "Cache-Control", | |
| "value": "no-cache" | |
| }, | |
| { | |
| "name": "Connection", | |
| "value": "keep-alive" | |
| }, | |
| { | |
| "name": "Host", | |
| "value": "localhost:8080" | |
| }, | |
| { | |
| "name": "Pragma", | |
| "value": "no-cache" | |
| }, | |
| { | |
| "name": "Sec-Fetch-Dest", | |
| "value": "style" | |
| }, | |
| { | |
| "name": "Sec-Fetch-Mode", | |
| "value": "no-cors" | |
| }, | |
| { | |
| "name": "Sec-Fetch-Site", | |
| "value": "same-origin" | |
| }, | |
| { | |
| "name": "User-Agent", | |
| "value": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 YaBrowser/22.11.3.824 Yowser/2.5 Safari/537.36" | |
| }, | |
| { | |
| "name": "sec-ch-ua", | |
| "value": "\"Chromium\";v=\"106\", \"Yandex\";v=\"22\", \"Not;A=Brand\";v=\"99\"" | |
| }, | |
| { | |
| "name": "sec-ch-ua-mobile", | |
| "value": "?0" | |
| }, | |
| { | |
| "name": "sec-ch-ua-platform", | |
| "value": "\"macOS\"" | |
| } | |
| ], | |
| "queryString": [], | |
| "cookies": [], | |
| "headersSize": 648, | |
| "bodySize": 0 | |
| }, | |
| "response": { | |
| "status": 200, | |
| "statusText": "OK", | |
| "httpVersion": "HTTP/1.1", | |
| "headers": [ | |
| { | |
| "name": "Cache-Control", | |
| "value": "no-cache" | |
| }, | |
| { | |
| "name": "Content-Type", | |
| "value": "text/css;charset=UTF-8" | |
| }, | |
| { | |
| "name": "Referrer-Policy", | |
| "value": "no-referrer" | |
| }, | |
| { | |
| "name": "Strict-Transport-Security", | |
| "value": "max-age=31536000; includeSubDomains" | |
| }, | |
| { | |
| "name": "X-Content-Type-Options", | |
| "value": "nosniff" | |
| }, | |
| { | |
| "name": "X-XSS-Protection", | |
| "value": "1; mode=block" | |
| }, | |
| { | |
| "name": "transfer-encoding", | |
| "value": "chunked" | |
| } | |
| ], | |
| "cookies": [], | |
| "content": { | |
| "size": 42733, | |
| "mimeType": "text/css", | |
| "compression": -52 | |
| }, | |
| "redirectURL": "", | |
| "headersSize": 270, | |
| "bodySize": 42785, | |
| "_transferSize": 43055, | |
| "_error": null | |
| }, | |
| "serverIPAddress": "[::1]", | |
| "startedDateTime": "2023-02-08T17:16:44.135Z", | |
| "time": 49.99400000087917, | |
| "timings": { | |
| "blocked": 38.95199998378754, | |
| "dns": -1, | |
| "ssl": -1, | |
| "connect": -1, | |
| "send": 0.12299999999999756, | |
| "wait": 5.366000108987095, | |
| "receive": 5.552999908104539, | |
| "_blocked_queueing": 22.991999983787537 | |
| } | |
| }, | |
| { | |
| "_initiator": { | |
| "type": "parser", | |
| "url": "http://localhost:8080/realms/realm-name/protocol/openid-connect/auth?client_id=client-id&redirect_uri=http%3A%2F%2Flocalhost%3A8081%2Fkeycloak-example&state=e12b9c95-0ee5-4d97-81fd-dfe67eef1f25&response_mode=fragment&response_type=code&scope=openid&nonce=d1d760ff-a33a-4865-aba9-16411b398ba0", | |
| "lineNumber": 12 | |
| }, | |
| "_priority": "VeryHigh", | |
| "_resourceType": "stylesheet", | |
| "cache": {}, | |
| "connection": "2080548", | |
| "pageref": "page_6", | |
| "request": { | |
| "method": "GET", | |
| "url": "http://localhost:8080/resources/43xpj/common/keycloak/web_modules/@patternfly/react-core/dist/styles/app.css", | |
| "httpVersion": "HTTP/1.1", | |
| "headers": [ | |
| { | |
| "name": "Accept", | |
| "value": "text/css,*/*;q=0.1" | |
| }, | |
| { | |
| "name": "Accept-Encoding", | |
| "value": "gzip, deflate, br" | |
| }, | |
| { | |
| "name": "Accept-Language", | |
| "value": "ru,en;q=0.9" | |
| }, | |
| { | |
| "name": "Cache-Control", | |
| "value": "no-cache" | |
| }, | |
| { | |
| "name": "Connection", | |
| "value": "keep-alive" | |
| }, | |
| { | |
| "name": "Host", | |
| "value": "localhost:8080" | |
| }, | |
| { | |
| "name": "Pragma", | |
| "value": "no-cache" | |
| }, | |
| { | |
| "name": "Sec-Fetch-Dest", | |
| "value": "style" | |
| }, | |
| { | |
| "name": "Sec-Fetch-Mode", | |
| "value": "no-cors" | |
| }, | |
| { | |
| "name": "Sec-Fetch-Site", | |
| "value": "same-origin" | |
| }, | |
| { | |
| "name": "User-Agent", | |
| "value": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 YaBrowser/22.11.3.824 Yowser/2.5 Safari/537.36" | |
| }, | |
| { | |
| "name": "sec-ch-ua", | |
| "value": "\"Chromium\";v=\"106\", \"Yandex\";v=\"22\", \"Not;A=Brand\";v=\"99\"" | |
| }, | |
| { | |
| "name": "sec-ch-ua-mobile", | |
| "value": "?0" | |
| }, | |
| { | |
| "name": "sec-ch-ua-platform", | |
| "value": "\"macOS\"" | |
| } | |
| ], | |
| "queryString": [], | |
| "cookies": [], | |
| "headersSize": 647, | |
| "bodySize": 0 | |
| }, | |
| "response": { | |
| "status": 200, | |
| "statusText": "OK", | |
| "httpVersion": "HTTP/1.1", | |
| "headers": [ | |
| { | |
| "name": "Cache-Control", | |
| "value": "no-cache" | |
| }, | |
| { | |
| "name": "Content-Type", | |
| "value": "text/css;charset=UTF-8" | |
| }, | |
| { | |
| "name": "Referrer-Policy", | |
| "value": "no-referrer" | |
| }, | |
| { | |
| "name": "Strict-Transport-Security", | |
| "value": "max-age=31536000; includeSubDomains" | |
| }, | |
| { | |
| "name": "X-Content-Type-Options", | |
| "value": "nosniff" | |
| }, | |
| { | |
| "name": "X-XSS-Protection", | |
| "value": "1; mode=block" | |
| }, | |
| { | |
| "name": "transfer-encoding", | |
| "value": "chunked" | |
| } | |
| ], | |
| "cookies": [], | |
| "content": { | |
| "size": 1282371, | |
| "mimeType": "text/css", | |
| "compression": -1261 | |
| }, | |
| "redirectURL": "", | |
| "headersSize": 270, | |
| "bodySize": 1283632, | |
| "_transferSize": 1283902, | |
| "_error": null | |
| }, | |
| "serverIPAddress": "[::1]", | |
| "startedDateTime": "2023-02-08T17:16:44.135Z", | |
| "time": 100.84199998527765, | |
| "timings": { | |
| "blocked": 51.21499991168082, | |
| "dns": -1, | |
| "ssl": -1, | |
| "connect": -1, | |
| "send": 0.1039999999999992, | |
| "wait": 8.180000054627659, | |
| "receive": 41.34300001896918, | |
| "_blocked_queueing": 29.892999911680818 | |
| } | |
| }, | |
| { | |
| "_initiator": { | |
| "type": "parser", | |
| "url": "http://localhost:8080/realms/realm-name/protocol/openid-connect/auth?client_id=client-id&redirect_uri=http%3A%2F%2Flocalhost%3A8081%2Fkeycloak-example&state=e12b9c95-0ee5-4d97-81fd-dfe67eef1f25&response_mode=fragment&response_type=code&scope=openid&nonce=d1d760ff-a33a-4865-aba9-16411b398ba0", | |
| "lineNumber": 13 | |
| }, | |
| "_priority": "VeryHigh", | |
| "_resourceType": "stylesheet", | |
| "cache": {}, | |
| "connection": "2080523", | |
| "pageref": "page_6", | |
| "request": { | |
| "method": "GET", | |
| "url": "http://localhost:8080/resources/43xpj/common/keycloak/node_modules/patternfly/dist/css/patternfly.min.css", | |
| "httpVersion": "HTTP/1.1", | |
| "headers": [ | |
| { | |
| "name": "Accept", | |
| "value": "text/css,*/*;q=0.1" | |
| }, | |
| { | |
| "name": "Accept-Encoding", | |
| "value": "gzip, deflate, br" | |
| }, | |
| { | |
| "name": "Accept-Language", | |
| "value": "ru,en;q=0.9" | |
| }, | |
| { | |
| "name": "Cache-Control", | |
| "value": "no-cache" | |
| }, | |
| { | |
| "name": "Connection", | |
| "value": "keep-alive" | |
| }, | |
| { | |
| "name": "Host", | |
| "value": "localhost:8080" | |
| }, | |
| { | |
| "name": "Pragma", | |
| "value": "no-cache" | |
| }, | |
| { | |
| "name": "Sec-Fetch-Dest", | |
| "value": "style" | |
| }, | |
| { | |
| "name": "Sec-Fetch-Mode", | |
| "value": "no-cors" | |
| }, | |
| { | |
| "name": "Sec-Fetch-Site", | |
| "value": "same-origin" | |
| }, | |
| { | |
| "name": "User-Agent", | |
| "value": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 YaBrowser/22.11.3.824 Yowser/2.5 Safari/537.36" | |
| }, | |
| { | |
| "name": "sec-ch-ua", | |
| "value": "\"Chromium\";v=\"106\", \"Yandex\";v=\"22\", \"Not;A=Brand\";v=\"99\"" | |
| }, | |
| { | |
| "name": "sec-ch-ua-mobile", | |
| "value": "?0" | |
| }, | |
| { | |
| "name": "sec-ch-ua-platform", | |
| "value": "\"macOS\"" | |
| } | |
| ], | |
| "queryString": [], | |
| "cookies": [], | |
| "headersSize": 644, | |
| "bodySize": 0 | |
| }, | |
| "response": { | |
| "status": 200, | |
| "statusText": "OK", | |
| "httpVersion": "HTTP/1.1", | |
| "headers": [ | |
| { | |
| "name": "Cache-Control", | |
| "value": "no-cache" | |
| }, | |
| { | |
| "name": "Content-Type", | |
| "value": "text/css;charset=UTF-8" | |
| }, | |
| { | |
| "name": "Referrer-Policy", | |
| "value": "no-referrer" | |
| }, | |
| { | |
| "name": "Strict-Transport-Security", | |
| "value": "max-age=31536000; includeSubDomains" | |
| }, | |
| { | |
| "name": "X-Content-Type-Options", | |
| "value": "nosniff" | |
| }, | |
| { | |
| "name": "X-XSS-Protection", | |
| "value": "1; mode=block" | |
| }, | |
| { | |
| "name": "transfer-encoding", | |
| "value": "chunked" | |
| } | |
| ], | |
| "cookies": [], | |
| "content": { | |
| "size": 182755, | |
| "mimeType": "text/css", | |
| "compression": -188 | |
| }, | |
| "redirectURL": "", | |
| "headersSize": 270, | |
| "bodySize": 182943, | |
| "_transferSize": 183213, | |
| "_error": null | |
| }, | |
| "serverIPAddress": "[::1]", | |
| "startedDateTime": "2023-02-08T17:16:44.135Z", | |
| "time": 102.37800003960729, | |
| "timings": { | |
| "blocked": 51.41899991811812, | |
| "dns": -1, | |
| "ssl": -1, | |
| "connect": -1, | |
| "send": 0.07000000000000028, | |
| "wait": 31.657999904811383, | |
| "receive": 19.231000216677785, | |
| "_blocked_queueing": 29.95499991811812 | |
| } | |
| }, | |
| { | |
| "_initiator": { | |
| "type": "parser", | |
| "url": "http://localhost:8080/realms/realm-name/protocol/openid-connect/auth?client_id=client-id&redirect_uri=http%3A%2F%2Flocalhost%3A8081%2Fkeycloak-example&state=e12b9c95-0ee5-4d97-81fd-dfe67eef1f25&response_mode=fragment&response_type=code&scope=openid&nonce=d1d760ff-a33a-4865-aba9-16411b398ba0", | |
| "lineNumber": 14 | |
| }, | |
| "_priority": "VeryHigh", | |
| "_resourceType": "stylesheet", | |
| "cache": {}, | |
| "connection": "2080501", | |
| "pageref": "page_6", | |
| "request": { | |
| "method": "GET", | |
| "url": "http://localhost:8080/resources/43xpj/common/keycloak/node_modules/patternfly/dist/css/patternfly-additions.min.css", | |
| "httpVersion": "HTTP/1.1", | |
| "headers": [ | |
| { | |
| "name": "Accept", | |
| "value": "text/css,*/*;q=0.1" | |
| }, | |
| { | |
| "name": "Accept-Encoding", | |
| "value": "gzip, deflate, br" | |
| }, | |
| { | |
| "name": "Accept-Language", | |
| "value": "ru,en;q=0.9" | |
| }, | |
| { | |
| "name": "Cache-Control", | |
| "value": "no-cache" | |
| }, | |
| { | |
| "name": "Connection", | |
| "value": "keep-alive" | |
| }, | |
| { | |
| "name": "Host", | |
| "value": "localhost:8080" | |
| }, | |
| { | |
| "name": "Pragma", | |
| "value": "no-cache" | |
| }, | |
| { | |
| "name": "Sec-Fetch-Dest", | |
| "value": "style" | |
| }, | |
| { | |
| "name": "Sec-Fetch-Mode", | |
| "value": "no-cors" | |
| }, | |
| { | |
| "name": "Sec-Fetch-Site", | |
| "value": "same-origin" | |
| }, | |
| { | |
| "name": "User-Agent", | |
| "value": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 YaBrowser/22.11.3.824 Yowser/2.5 Safari/537.36" | |
| }, | |
| { | |
| "name": "sec-ch-ua", | |
| "value": "\"Chromium\";v=\"106\", \"Yandex\";v=\"22\", \"Not;A=Brand\";v=\"99\"" | |
| }, | |
| { | |
| "name": "sec-ch-ua-mobile", | |
| "value": "?0" | |
| }, | |
| { | |
| "name": "sec-ch-ua-platform", | |
| "value": "\"macOS\"" | |
| } | |
| ], | |
| "queryString": [], | |
| "cookies": [], | |
| "headersSize": 654, | |
| "bodySize": 0 | |
| }, | |
| "response": { | |
| "status": 200, | |
| "statusText": "OK", | |
| "httpVersion": "HTTP/1.1", | |
| "headers": [ | |
| { | |
| "name": "Cache-Control", | |
| "value": "no-cache" | |
| }, | |
| { | |
| "name": "Content-Type", | |
| "value": "text/css;charset=UTF-8" | |
| }, | |
| { | |
| "name": "Referrer-Policy", | |
| "value": "no-referrer" | |
| }, | |
| { | |
| "name": "Strict-Transport-Security", | |
| "value": "max-age=31536000; includeSubDomains" | |
| }, | |
| { | |
| "name": "X-Content-Type-Options", | |
| "value": "nosniff" | |
| }, | |
| { | |
| "name": "X-XSS-Protection", | |
| "value": "1; mode=block" | |
| }, | |
| { | |
| "name": "transfer-encoding", | |
| "value": "chunked" | |
| } | |
| ], | |
| "cookies": [], | |
| "content": { | |
| "size": 225030, | |
| "mimeType": "text/css", | |
| "compression": -228 | |
| }, | |
| "redirectURL": "", | |
| "headersSize": 270, | |
| "bodySize": 225258, | |
| "_transferSize": 225528, | |
| "_error": null | |
| }, | |
| "serverIPAddress": "[::1]", | |
| "startedDateTime": "2023-02-08T17:16:44.135Z", | |
| "time": 77.70600006915629, | |
| "timings": { | |
| "blocked": 51.319999956190586, | |
| "dns": -1, | |
| "ssl": -1, | |
| "connect": -1, | |
| "send": 0.08999999999999986, | |
| "wait": 16.482999897748233, | |
| "receive": 9.813000215217471, | |
| "_blocked_queueing": 29.959999956190586 | |
| } | |
| }, | |
| { | |
| "_initiator": { | |
| "type": "parser", | |
| "url": "http://localhost:8080/realms/realm-name/protocol/openid-connect/auth?client_id=client-id&redirect_uri=http%3A%2F%2Flocalhost%3A8081%2Fkeycloak-example&state=e12b9c95-0ee5-4d97-81fd-dfe67eef1f25&response_mode=fragment&response_type=code&scope=openid&nonce=d1d760ff-a33a-4865-aba9-16411b398ba0", | |
| "lineNumber": 15 | |
| }, | |
| "_priority": "VeryHigh", | |
| "_resourceType": "stylesheet", | |
| "cache": {}, | |
| "connection": "2080544", | |
| "pageref": "page_6", | |
| "request": { | |
| "method": "GET", | |
| "url": "http://localhost:8080/resources/43xpj/common/keycloak/lib/pficon/pficon.css", | |
| "httpVersion": "HTTP/1.1", | |
| "headers": [ | |
| { | |
| "name": "Accept", | |
| "value": "text/css,*/*;q=0.1" | |
| }, | |
| { | |
| "name": "Accept-Encoding", | |
| "value": "gzip, deflate, br" | |
| }, | |
| { | |
| "name": "Accept-Language", | |
| "value": "ru,en;q=0.9" | |
| }, | |
| { | |
| "name": "Cache-Control", | |
| "value": "no-cache" | |
| }, | |
| { | |
| "name": "Connection", | |
| "value": "keep-alive" | |
| }, | |
| { | |
| "name": "Host", | |
| "value": "localhost:8080" | |
| }, | |
| { | |
| "name": "Pragma", | |
| "value": "no-cache" | |
| }, | |
| { | |
| "name": "Sec-Fetch-Dest", | |
| "value": "style" | |
| }, | |
| { | |
| "name": "Sec-Fetch-Mode", | |
| "value": "no-cors" | |
| }, | |
| { | |
| "name": "Sec-Fetch-Site", | |
| "value": "same-origin" | |
| }, | |
| { | |
| "name": "User-Agent", | |
| "value": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 YaBrowser/22.11.3.824 Yowser/2.5 Safari/537.36" | |
| }, | |
| { | |
| "name": "sec-ch-ua", | |
| "value": "\"Chromium\";v=\"106\", \"Yandex\";v=\"22\", \"Not;A=Brand\";v=\"99\"" | |
| }, | |
| { | |
| "name": "sec-ch-ua-mobile", | |
| "value": "?0" | |
| }, | |
| { | |
| "name": "sec-ch-ua-platform", | |
| "value": "\"macOS\"" | |
| } | |
| ], | |
| "queryString": [], | |
| "cookies": [], | |
| "headersSize": 614, | |
| "bodySize": 0 | |
| }, | |
| "response": { | |
| "status": 200, | |
| "statusText": "OK", | |
| "httpVersion": "HTTP/1.1", | |
| "headers": [ | |
| { | |
| "name": "Cache-Control", | |
| "value": "no-cache" | |
| }, | |
| { | |
| "name": "Content-Type", | |
| "value": "text/css;charset=UTF-8" | |
| }, | |
| { | |
| "name": "Referrer-Policy", | |
| "value": "no-referrer" | |
| }, | |
| { | |
| "name": "Strict-Transport-Security", | |
| "value": "max-age=31536000; includeSubDomains" | |
| }, | |
| { | |
| "name": "X-Content-Type-Options", | |
| "value": "nosniff" | |
| }, | |
| { | |
| "name": "X-XSS-Protection", | |
| "value": "1; mode=block" | |
| }, | |
| { | |
| "name": "content-length", | |
| "value": "577" | |
| } | |
| ], | |
| "cookies": [], | |
| "content": { | |
| "size": 577, | |
| "mimeType": "text/css", | |
| "compression": 0 | |
| }, | |
| "redirectURL": "", | |
| "headersSize": 263, | |
| "bodySize": 577, | |
| "_transferSize": 840, | |
| "_error": null | |
| }, | |
| "serverIPAddress": "[::1]", | |
| "startedDateTime": "2023-02-08T17:16:44.136Z", | |
| "time": 60.377999907359474, | |
| "timings": { | |
| "blocked": 51.224999918118115, | |
| "dns": -1, | |
| "ssl": -1, | |
| "connect": -1, | |
| "send": 0.08900000000000219, | |
| "wait": 8.401000063106416, | |
| "receive": 0.662999926134944, | |
| "_blocked_queueing": 29.95499991811812 | |
| } | |
| }, | |
| { | |
| "_initiator": { | |
| "type": "parser", | |
| "url": "http://localhost:8080/realms/realm-name/protocol/openid-connect/auth?client_id=client-id&redirect_uri=http%3A%2F%2Flocalhost%3A8081%2Fkeycloak-example&state=e12b9c95-0ee5-4d97-81fd-dfe67eef1f25&response_mode=fragment&response_type=code&scope=openid&nonce=d1d760ff-a33a-4865-aba9-16411b398ba0", | |
| "lineNumber": 16 | |
| }, | |
| "_priority": "VeryHigh", | |
| "_resourceType": "stylesheet", | |
| "cache": {}, | |
| "connection": "2080962", | |
| "pageref": "page_6", | |
| "request": { | |
| "method": "GET", | |
| "url": "http://localhost:8080/resources/43xpj/login/keycloak/css/login.css", | |
| "httpVersion": "HTTP/1.1", | |
| "headers": [ | |
| { | |
| "name": "Accept", | |
| "value": "text/css,*/*;q=0.1" | |
| }, | |
| { | |
| "name": "Accept-Encoding", | |
| "value": "gzip, deflate, br" | |
| }, | |
| { | |
| "name": "Accept-Language", | |
| "value": "ru,en;q=0.9" | |
| }, | |
| { | |
| "name": "Cache-Control", | |
| "value": "no-cache" | |
| }, | |
| { | |
| "name": "Connection", | |
| "value": "keep-alive" | |
| }, | |
| { | |
| "name": "Host", | |
| "value": "localhost:8080" | |
| }, | |
| { | |
| "name": "Pragma", | |
| "value": "no-cache" | |
| }, | |
| { | |
| "name": "Sec-Fetch-Dest", | |
| "value": "style" | |
| }, | |
| { | |
| "name": "Sec-Fetch-Mode", | |
| "value": "no-cors" | |
| }, | |
| { | |
| "name": "Sec-Fetch-Site", | |
| "value": "same-origin" | |
| }, | |
| { | |
| "name": "User-Agent", | |
| "value": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 YaBrowser/22.11.3.824 Yowser/2.5 Safari/537.36" | |
| }, | |
| { | |
| "name": "sec-ch-ua", | |
| "value": "\"Chromium\";v=\"106\", \"Yandex\";v=\"22\", \"Not;A=Brand\";v=\"99\"" | |
| }, | |
| { | |
| "name": "sec-ch-ua-mobile", | |
| "value": "?0" | |
| }, | |
| { | |
| "name": "sec-ch-ua-platform", | |
| "value": "\"macOS\"" | |
| } | |
| ], | |
| "queryString": [], | |
| "cookies": [], | |
| "headersSize": 605, | |
| "bodySize": 0 | |
| }, | |
| "response": { | |
| "status": 200, | |
| "statusText": "OK", | |
| "httpVersion": "HTTP/1.1", | |
| "headers": [ | |
| { | |
| "name": "Cache-Control", | |
| "value": "no-cache" | |
| }, | |
| { | |
| "name": "Content-Type", | |
| "value": "text/css;charset=UTF-8" | |
| }, | |
| { | |
| "name": "Referrer-Policy", | |
| "value": "no-referrer" | |
| }, | |
| { | |
| "name": "Strict-Transport-Security", | |
| "value": "max-age=31536000; includeSubDomains" | |
| }, | |
| { | |
| "name": "X-Content-Type-Options", | |
| "value": "nosniff" | |
| }, | |
| { | |
| "name": "X-XSS-Protection", | |
| "value": "1; mode=block" | |
| }, | |
| { | |
| "name": "transfer-encoding", | |
| "value": "chunked" | |
| } | |
| ], | |
| "cookies": [], | |
| "content": { | |
| "size": 10274, | |
| "mimeType": "text/css", | |
| "compression": -20 | |
| }, | |
| "redirectURL": "", | |
| "headersSize": 270, | |
| "bodySize": 10294, | |
| "_transferSize": 10564, | |
| "_error": null | |
| }, | |
| "serverIPAddress": "[::1]", | |
| "startedDateTime": "2023-02-08T17:16:44.136Z", | |
| "time": 79.02600010856986, | |
| "timings": { | |
| "blocked": 55.65399993892014, | |
| "dns": -1, | |
| "ssl": -1, | |
| "connect": -1, | |
| "send": 0.1269999999999989, | |
| "wait": 20.73899994701147, | |
| "receive": 2.5060002226382494, | |
| "_blocked_queueing": 29.86599993892014 | |
| } | |
| }, | |
| { | |
| "_initiator": { | |
| "type": "parser", | |
| "url": "http://localhost:8080/resources/43xpj/common/keycloak/node_modules/patternfly/dist/css/patternfly.min.css" | |
| }, | |
| "_priority": "VeryHigh", | |
| "_resourceType": "font", | |
| "cache": {}, | |
| "connection": "2080523", | |
| "pageref": "page_6", | |
| "request": { | |
| "method": "GET", | |
| "url": "http://localhost:8080/resources/43xpj/common/keycloak/node_modules/patternfly/dist/fonts/OpenSans-Bold-webfont.woff2", | |
| "httpVersion": "HTTP/1.1", | |
| "headers": [ | |
| { | |
| "name": "Accept", | |
| "value": "*/*" | |
| }, | |
| { | |
| "name": "Accept-Encoding", | |
| "value": "gzip, deflate, br" | |
| }, | |
| { | |
| "name": "Accept-Language", | |
| "value": "ru,en;q=0.9" | |
| }, | |
| { | |
| "name": "Cache-Control", | |
| "value": "no-cache" | |
| }, | |
| { | |
| "name": "Connection", | |
| "value": "keep-alive" | |
| }, | |
| { | |
| "name": "Host", | |
| "value": "localhost:8080" | |
| }, | |
| { | |
| "name": "Origin", | |
| "value": "http://localhost:8080" | |
| }, | |
| { | |
| "name": "Pragma", | |
| "value": "no-cache" | |
| }, | |
| { | |
| "name": "Sec-Fetch-Dest", | |
| "value": "font" | |
| }, | |
| { | |
| "name": "Sec-Fetch-Mode", | |
| "value": "cors" | |
| }, | |
| { | |
| "name": "Sec-Fetch-Site", | |
| "value": "same-origin" | |
| }, | |
| { | |
| "name": "User-Agent", | |
| "value": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 YaBrowser/22.11.3.824 Yowser/2.5 Safari/537.36" | |
| }, | |
| { | |
| "name": "sec-ch-ua", | |
| "value": "\"Chromium\";v=\"106\", \"Yandex\";v=\"22\", \"Not;A=Brand\";v=\"99\"" | |
| }, | |
| { | |
| "name": "sec-ch-ua-mobile", | |
| "value": "?0" | |
| }, | |
| { | |
| "name": "sec-ch-ua-platform", | |
| "value": "\"macOS\"" | |
| } | |
| ], | |
| "queryString": [], | |
| "cookies": [], | |
| "headersSize": 667, | |
| "bodySize": 0 | |
| }, | |
| "response": { | |
| "status": 200, | |
| "statusText": "OK", | |
| "httpVersion": "HTTP/1.1", | |
| "headers": [ | |
| { | |
| "name": "Cache-Control", | |
| "value": "no-cache" | |
| }, | |
| { | |
| "name": "Content-Type", | |
| "value": "application/octet-stream" | |
| }, | |
| { | |
| "name": "Referrer-Policy", | |
| "value": "no-referrer" | |
| }, | |
| { | |
| "name": "Strict-Transport-Security", | |
| "value": "max-age=31536000; includeSubDomains" | |
| }, | |
| { | |
| "name": "X-Content-Type-Options", | |
| "value": "nosniff" | |
| }, | |
| { | |
| "name": "X-XSS-Protection", | |
| "value": "1; mode=block" | |
| }, | |
| { | |
| "name": "transfer-encoding", | |
| "value": "chunked" | |
| } | |
| ], | |
| "cookies": [], | |
| "content": { | |
| "size": 63732, | |
| "mimeType": "application/octet-stream", | |
| "compression": -69 | |
| }, | |
| "redirectURL": "", | |
| "headersSize": 272, | |
| "bodySize": 63801, | |
| "_transferSize": 64073, | |
| "_error": null | |
| }, | |
| "serverIPAddress": "[::1]", | |
| "startedDateTime": "2023-02-08T17:16:44.400Z", | |
| "time": 18.8790000975132, | |
| "timings": { | |
| "blocked": 5.288000012889505, | |
| "dns": -1, | |
| "ssl": -1, | |
| "connect": -1, | |
| "send": 0.1499999999999999, | |
| "wait": 7.254000005543232, | |
| "receive": 6.1870000790804625, | |
| "_blocked_queueing": 3.0900000128895044 | |
| } | |
| }, | |
| { | |
| "_initiator": { | |
| "type": "parser", | |
| "url": "http://localhost:8080/resources/43xpj/common/keycloak/node_modules/patternfly/dist/css/patternfly.min.css" | |
| }, | |
| "_priority": "VeryHigh", | |
| "_resourceType": "font", | |
| "cache": {}, | |
| "connection": "2080548", | |
| "pageref": "page_6", | |
| "request": { | |
| "method": "GET", | |
| "url": "http://localhost:8080/resources/43xpj/common/keycloak/node_modules/patternfly/dist/fonts/OpenSans-Light-webfont.woff2", | |
| "httpVersion": "HTTP/1.1", | |
| "headers": [ | |
| { | |
| "name": "Accept", | |
| "value": "*/*" | |
| }, | |
| { | |
| "name": "Accept-Encoding", | |
| "value": "gzip, deflate, br" | |
| }, | |
| { | |
| "name": "Accept-Language", | |
| "value": "ru,en;q=0.9" | |
| }, | |
| { | |
| "name": "Cache-Control", | |
| "value": "no-cache" | |
| }, | |
| { | |
| "name": "Connection", | |
| "value": "keep-alive" | |
| }, | |
| { | |
| "name": "Host", | |
| "value": "localhost:8080" | |
| }, | |
| { | |
| "name": "Origin", | |
| "value": "http://localhost:8080" | |
| }, | |
| { | |
| "name": "Pragma", | |
| "value": "no-cache" | |
| }, | |
| { | |
| "name": "Sec-Fetch-Dest", | |
| "value": "font" | |
| }, | |
| { | |
| "name": "Sec-Fetch-Mode", | |
| "value": "cors" | |
| }, | |
| { | |
| "name": "Sec-Fetch-Site", | |
| "value": "same-origin" | |
| }, | |
| { | |
| "name": "User-Agent", | |
| "value": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 YaBrowser/22.11.3.824 Yowser/2.5 Safari/537.36" | |
| }, | |
| { | |
| "name": "sec-ch-ua", | |
| "value": "\"Chromium\";v=\"106\", \"Yandex\";v=\"22\", \"Not;A=Brand\";v=\"99\"" | |
| }, | |
| { | |
| "name": "sec-ch-ua-mobile", | |
| "value": "?0" | |
| }, | |
| { | |
| "name": "sec-ch-ua-platform", | |
| "value": "\"macOS\"" | |
| } | |
| ], | |
| "queryString": [], | |
| "cookies": [], | |
| "headersSize": 668, | |
| "bodySize": 0 | |
| }, | |
| "response": { | |
| "status": 200, | |
| "statusText": "OK", | |
| "httpVersion": "HTTP/1.1", | |
| "headers": [ | |
| { | |
| "name": "Cache-Control", | |
| "value": "no-cache" | |
| }, | |
| { | |
| "name": "Content-Type", | |
| "value": "application/octet-stream" | |
| }, | |
| { | |
| "name": "Referrer-Policy", | |
| "value": "no-referrer" | |
| }, | |
| { | |
| "name": "Strict-Transport-Security", | |
| "value": "max-age=31536000; includeSubDomains" | |
| }, | |
| { | |
| "name": "X-Content-Type-Options", | |
| "value": "nosniff" | |
| }, | |
| { | |
| "name": "X-XSS-Protection", | |
| "value": "1; mode=block" | |
| }, | |
| { | |
| "name": "transfer-encoding", | |
| "value": "chunked" | |
| } | |
| ], | |
| "cookies": [], | |
| "content": { | |
| "size": 63180, | |
| "mimeType": "application/octet-stream", | |
| "compression": -69 | |
| }, | |
| "redirectURL": "", | |
| "headersSize": 272, | |
| "bodySize": 63249, | |
| "_transferSize": 63521, | |
| "_error": null | |
| }, | |
| "serverIPAddress": "[::1]", | |
| "startedDateTime": "2023-02-08T17:16:44.405Z", | |
| "time": 40.890000062063336, | |
| "timings": { | |
| "blocked": 13.867999931007624, | |
| "dns": -1, | |
| "ssl": -1, | |
| "connect": -1, | |
| "send": 0.17099999999999937, | |
| "wait": 6.220999971911311, | |
| "receive": 20.6300001591444, | |
| "_blocked_queueing": 1.7949999310076237 | |
| } | |
| }, | |
| { | |
| "_initiator": { | |
| "type": "parser", | |
| "url": "http://localhost:8080/resources/43xpj/common/keycloak/node_modules/patternfly/dist/css/patternfly.min.css" | |
| }, | |
| "_priority": "VeryHigh", | |
| "_resourceType": "font", | |
| "cache": {}, | |
| "connection": "2080523", | |
| "pageref": "page_6", | |
| "request": { | |
| "method": "GET", | |
| "url": "http://localhost:8080/resources/43xpj/common/keycloak/node_modules/patternfly/dist/fonts/OpenSans-Regular-webfont.woff2", | |
| "httpVersion": "HTTP/1.1", | |
| "headers": [ | |
| { | |
| "name": "Accept", | |
| "value": "*/*" | |
| }, | |
| { | |
| "name": "Accept-Encoding", | |
| "value": "gzip, deflate, br" | |
| }, | |
| { | |
| "name": "Accept-Language", | |
| "value": "ru,en;q=0.9" | |
| }, | |
| { | |
| "name": "Cache-Control", | |
| "value": "no-cache" | |
| }, | |
| { | |
| "name": "Connection", | |
| "value": "keep-alive" | |
| }, | |
| { | |
| "name": "Host", | |
| "value": "localhost:8080" | |
| }, | |
| { | |
| "name": "Origin", | |
| "value": "http://localhost:8080" | |
| }, | |
| { | |
| "name": "Pragma", | |
| "value": "no-cache" | |
| }, | |
| { | |
| "name": "Sec-Fetch-Dest", | |
| "value": "font" | |
| }, | |
| { | |
| "name": "Sec-Fetch-Mode", | |
| "value": "cors" | |
| }, | |
| { | |
| "name": "Sec-Fetch-Site", | |
| "value": "same-origin" | |
| }, | |
| { | |
| "name": "User-Agent", | |
| "value": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 YaBrowser/22.11.3.824 Yowser/2.5 Safari/537.36" | |
| }, | |
| { | |
| "name": "sec-ch-ua", | |
| "value": "\"Chromium\";v=\"106\", \"Yandex\";v=\"22\", \"Not;A=Brand\";v=\"99\"" | |
| }, | |
| { | |
| "name": "sec-ch-ua-mobile", | |
| "value": "?0" | |
| }, | |
| { | |
| "name": "sec-ch-ua-platform", | |
| "value": "\"macOS\"" | |
| } | |
| ], | |
| "queryString": [], | |
| "cookies": [], | |
| "headersSize": 670, | |
| "bodySize": 0 | |
| }, | |
| "response": { | |
| "status": 200, | |
| "statusText": "OK", | |
| "httpVersion": "HTTP/1.1", | |
| "headers": [ | |
| { | |
| "name": "Cache-Control", | |
| "value": "no-cache" | |
| }, | |
| { | |
| "name": "Content-Type", | |
| "value": "application/octet-stream" | |
| }, | |
| { | |
| "name": "Referrer-Policy", | |
| "value": "no-referrer" | |
| }, | |
| { | |
| "name": "Strict-Transport-Security", | |
| "value": "max-age=31536000; includeSubDomains" | |
| }, | |
| { | |
| "name": "X-Content-Type-Options", | |
| "value": "nosniff" | |
| }, | |
| { | |
| "name": "X-XSS-Protection", | |
| "value": "1; mode=block" | |
| }, | |
| { | |
| "name": "transfer-encoding", | |
| "value": "chunked" | |
| } | |
| ], | |
| "cookies": [], | |
| "content": { | |
| "size": 61980, | |
| "mimeType": "application/octet-stream", | |
| "compression": -69 | |
| }, | |
| "redirectURL": "", | |
| "headersSize": 272, | |
| "bodySize": 62049, | |
| "_transferSize": 62321, | |
| "_error": null | |
| }, | |
| "serverIPAddress": "[::1]", | |
| "startedDateTime": "2023-02-08T17:16:44.406Z", | |
| "time": 39.8520000744611, | |
| "timings": { | |
| "blocked": 15.104999919727444, | |
| "dns": -1, | |
| "ssl": -1, | |
| "connect": -1, | |
| "send": 0.14400000000000013, | |
| "wait": 6.528999900460244, | |
| "receive": 18.074000254273415, | |
| "_blocked_queueing": 6.532999919727445 | |
| } | |
| }, | |
| { | |
| "_initiator": { | |
| "type": "other" | |
| }, | |
| "_priority": "VeryHigh", | |
| "_resourceType": "document", | |
| "cache": {}, | |
| "connection": "2080548", | |
| "pageref": "page_7", | |
| "request": { | |
| "method": "POST", | |
| "url": "http://localhost:8080/realms/realm-name/login-actions/authenticate?session_code=_3nN0xqbH5cvJvHgD0zBDOK8rPIF7NhLAnZBPbgUuWA&execution=e18a081a-fdd0-460b-82e0-caeffef6f66e&client_id=client-id&tab_id=e64EiEeTY_Y", | |
| "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.9" | |
| }, | |
| { | |
| "name": "Accept-Encoding", | |
| "value": "gzip, deflate, br" | |
| }, | |
| { | |
| "name": "Accept-Language", | |
| "value": "ru,en;q=0.9" | |
| }, | |
| { | |
| "name": "Cache-Control", | |
| "value": "no-cache" | |
| }, | |
| { | |
| "name": "Connection", | |
| "value": "keep-alive" | |
| }, | |
| { | |
| "name": "Content-Length", | |
| "value": "41" | |
| }, | |
| { | |
| "name": "Content-Type", | |
| "value": "application/x-www-form-urlencoded" | |
| }, | |
| { | |
| "name": "Cookie", | |
| "value": "AUTH_SESSION_ID=df13ef51-698c-461d-95ab-fea114d7055c; AUTH_SESSION_ID_LEGACY=df13ef51-698c-461d-95ab-fea114d7055c; KC_RESTART=eyJhbGciOiJIUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICI4N2UwYWNmZC0yMTgzLTRlZTgtYjRhMS1mM2IyMzA4ZjE1ZTAifQ.eyJjaWQiOiJjbGllbnQtaWQiLCJwdHkiOiJvcGVuaWQtY29ubmVjdCIsInJ1cmkiOiJodHRwOi8vbG9jYWxob3N0OjgwODEva2V5Y2xvYWstZXhhbXBsZSIsImFjdCI6IkFVVEhFTlRJQ0FURSIsIm5vdGVzIjp7InNjb3BlIjoib3BlbmlkIiwiaXNzIjoiaHR0cDovL2xvY2FsaG9zdDo4MDgwL3JlYWxtcy9yZWFsbS1uYW1lIiwicmVzcG9uc2VfdHlwZSI6ImNvZGUiLCJyZWRpcmVjdF91cmkiOiJodHRwOi8vbG9jYWxob3N0OjgwODEva2V5Y2xvYWstZXhhbXBsZSIsInN0YXRlIjoiZTEyYjljOTUtMGVlNS00ZDk3LTgxZmQtZGZlNjdlZWYxZjI1Iiwibm9uY2UiOiJkMWQ3NjBmZi1hMzNhLTQ4NjUtYWJhOS0xNjQxMWIzOThiYTAiLCJyZXNwb25zZV9tb2RlIjoiZnJhZ21lbnQifX0.OzfN8elxlRIOwxgbqL6kU7CqO9-TyhR3QUgziDI1a0E" | |
| }, | |
| { | |
| "name": "Host", | |
| "value": "localhost:8080" | |
| }, | |
| { | |
| "name": "Origin", | |
| "value": "null" | |
| }, | |
| { | |
| "name": "Pragma", | |
| "value": "no-cache" | |
| }, | |
| { | |
| "name": "Sec-Fetch-Dest", | |
| "value": "document" | |
| }, | |
| { | |
| "name": "Sec-Fetch-Mode", | |
| "value": "navigate" | |
| }, | |
| { | |
| "name": "Sec-Fetch-Site", | |
| "value": "same-origin" | |
| }, | |
| { | |
| "name": "Sec-Fetch-User", | |
| "value": "?1" | |
| }, | |
| { | |
| "name": "Upgrade-Insecure-Requests", | |
| "value": "1" | |
| }, | |
| { | |
| "name": "User-Agent", | |
| "value": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 YaBrowser/22.11.3.824 Yowser/2.5 Safari/537.36" | |
| }, | |
| { | |
| "name": "sec-ch-ua", | |
| "value": "\"Chromium\";v=\"106\", \"Yandex\";v=\"22\", \"Not;A=Brand\";v=\"99\"" | |
| }, | |
| { | |
| "name": "sec-ch-ua-mobile", | |
| "value": "?0" | |
| }, | |
| { | |
| "name": "sec-ch-ua-platform", | |
| "value": "\"macOS\"" | |
| } | |
| ], | |
| "queryString": [ | |
| { | |
| "name": "session_code", | |
| "value": "_3nN0xqbH5cvJvHgD0zBDOK8rPIF7NhLAnZBPbgUuWA" | |
| }, | |
| { | |
| "name": "execution", | |
| "value": "e18a081a-fdd0-460b-82e0-caeffef6f66e" | |
| }, | |
| { | |
| "name": "client_id", | |
| "value": "client-id" | |
| }, | |
| { | |
| "name": "tab_id", | |
| "value": "e64EiEeTY_Y" | |
| } | |
| ], | |
| "cookies": [ | |
| { | |
| "name": "AUTH_SESSION_ID", | |
| "value": "df13ef51-698c-461d-95ab-fea114d7055c", | |
| "path": "/realms/realm-name/", | |
| "domain": "localhost", | |
| "expires": "1969-12-31T23:59:59.000Z", | |
| "httpOnly": true, | |
| "secure": true, | |
| "sameSite": "None" | |
| }, | |
| { | |
| "name": "AUTH_SESSION_ID_LEGACY", | |
| "value": "df13ef51-698c-461d-95ab-fea114d7055c", | |
| "path": "/realms/realm-name/", | |
| "domain": "localhost", | |
| "expires": "1969-12-31T23:59:59.000Z", | |
| "httpOnly": true, | |
| "secure": false | |
| }, | |
| { | |
| "name": "KC_RESTART", | |
| "value": "eyJhbGciOiJIUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICI4N2UwYWNmZC0yMTgzLTRlZTgtYjRhMS1mM2IyMzA4ZjE1ZTAifQ.eyJjaWQiOiJjbGllbnQtaWQiLCJwdHkiOiJvcGVuaWQtY29ubmVjdCIsInJ1cmkiOiJodHRwOi8vbG9jYWxob3N0OjgwODEva2V5Y2xvYWstZXhhbXBsZSIsImFjdCI6IkFVVEhFTlRJQ0FURSIsIm5vdGVzIjp7InNjb3BlIjoib3BlbmlkIiwiaXNzIjoiaHR0cDovL2xvY2FsaG9zdDo4MDgwL3JlYWxtcy9yZWFsbS1uYW1lIiwicmVzcG9uc2VfdHlwZSI6ImNvZGUiLCJyZWRpcmVjdF91cmkiOiJodHRwOi8vbG9jYWxob3N0OjgwODEva2V5Y2xvYWstZXhhbXBsZSIsInN0YXRlIjoiZTEyYjljOTUtMGVlNS00ZDk3LTgxZmQtZGZlNjdlZWYxZjI1Iiwibm9uY2UiOiJkMWQ3NjBmZi1hMzNhLTQ4NjUtYWJhOS0xNjQxMWIzOThiYTAiLCJyZXNwb25zZV9tb2RlIjoiZnJhZ21lbnQifX0.OzfN8elxlRIOwxgbqL6kU7CqO9-TyhR3QUgziDI1a0E", | |
| "path": "/realms/realm-name/", | |
| "domain": "localhost", | |
| "expires": "1969-12-31T23:59:59.000Z", | |
| "httpOnly": true, | |
| "secure": false | |
| } | |
| ], | |
| "headersSize": 1801, | |
| "bodySize": 41, | |
| "postData": { | |
| "mimeType": "application/x-www-form-urlencoded", | |
| "text": "username=user&password=user&credentialId=", | |
| "params": [ | |
| { | |
| "name": "username", | |
| "value": "user" | |
| }, | |
| { | |
| "name": "password", | |
| "value": "user" | |
| }, | |
| { | |
| "name": "credentialId", | |
| "value": "" | |
| } | |
| ] | |
| } | |
| }, | |
| "response": { | |
| "status": 302, | |
| "statusText": "Found", | |
| "httpVersion": "HTTP/1.1", | |
| "headers": [ | |
| { | |
| "name": "Cache-Control", | |
| "value": "no-store, must-revalidate, max-age=0" | |
| }, | |
| { | |
| "name": "Content-Security-Policy", | |
| "value": "frame-src 'self'; frame-ancestors 'self'; object-src 'none';" | |
| }, | |
| { | |
| "name": "Location", | |
| "value": "http://localhost:8081/keycloak-example#state=e12b9c95-0ee5-4d97-81fd-dfe67eef1f25&session_state=df13ef51-698c-461d-95ab-fea114d7055c&code=59f4de64-f7c2-40ec-9dc4-8e4003a0a6dd.df13ef51-698c-461d-95ab-fea114d7055c.4f4e5444-ab78-4702-8cfd-51a19e554988" | |
| }, | |
| { | |
| "name": "P3P", | |
| "value": "CP=\"This is not a P3P policy!\"" | |
| }, | |
| { | |
| "name": "Referrer-Policy", | |
| "value": "no-referrer" | |
| }, | |
| { | |
| "name": "Set-Cookie", | |
| "value": "KEYCLOAK_LOCALE=; Version=1; Comment=Expiring cookie; Expires=Thu, 01-Jan-1970 00:00:10 GMT; Max-Age=0; Path=/realms/realm-name/; HttpOnly" | |
| }, | |
| { | |
| "name": "Set-Cookie", | |
| "value": "KC_RESTART=; Version=1; Expires=Thu, 01-Jan-1970 00:00:10 GMT; Max-Age=0; Path=/realms/realm-name/; HttpOnly" | |
| }, | |
| { | |
| "name": "Set-Cookie", | |
| "value": "KEYCLOAK_IDENTITY=eyJhbGciOiJIUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICI4N2UwYWNmZC0yMTgzLTRlZTgtYjRhMS1mM2IyMzA4ZjE1ZTAifQ.eyJleHAiOjE2NzU5MTI2MDksImlhdCI6MTY3NTg3NjYwOSwianRpIjoiOWZkOWI0MTUtY2YwNi00N2ZmLTkyNmUtOWNkZTA5N2JlYTZmIiwiaXNzIjoiaHR0cDovL2xvY2FsaG9zdDo4MDgwL3JlYWxtcy9yZWFsbS1uYW1lIiwic3ViIjoiZmIxMmFhNjItZDUyOS00ZmJhLWJmY2EtNDY5ZTAyZDAwZTM5IiwidHlwIjoiU2VyaWFsaXplZC1JRCIsInNlc3Npb25fc3RhdGUiOiJkZjEzZWY1MS02OThjLTQ2MWQtOTVhYi1mZWExMTRkNzA1NWMiLCJzaWQiOiJkZjEzZWY1MS02OThjLTQ2MWQtOTVhYi1mZWExMTRkNzA1NWMiLCJzdGF0ZV9jaGVja2VyIjoib0NacFUtenN2MVN2ZlZTVVpPZXM3T0tCRmxQWDBWWXIzaWNUcTlXQXlHRSJ9.j56dMKbkzwTdcAd2CUl_POadxjwAOgRLofhoNpdlIyw; Version=1; Path=/realms/realm-name/; SameSite=None; Secure; HttpOnly" | |
| }, | |
| { | |
| "name": "Set-Cookie", | |
| "value": "KEYCLOAK_IDENTITY_LEGACY=eyJhbGciOiJIUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICI4N2UwYWNmZC0yMTgzLTRlZTgtYjRhMS1mM2IyMzA4ZjE1ZTAifQ.eyJleHAiOjE2NzU5MTI2MDksImlhdCI6MTY3NTg3NjYwOSwianRpIjoiOWZkOWI0MTUtY2YwNi00N2ZmLTkyNmUtOWNkZTA5N2JlYTZmIiwiaXNzIjoiaHR0cDovL2xvY2FsaG9zdDo4MDgwL3JlYWxtcy9yZWFsbS1uYW1lIiwic3ViIjoiZmIxMmFhNjItZDUyOS00ZmJhLWJmY2EtNDY5ZTAyZDAwZTM5IiwidHlwIjoiU2VyaWFsaXplZC1JRCIsInNlc3Npb25fc3RhdGUiOiJkZjEzZWY1MS02OThjLTQ2MWQtOTVhYi1mZWExMTRkNzA1NWMiLCJzaWQiOiJkZjEzZWY1MS02OThjLTQ2MWQtOTVhYi1mZWExMTRkNzA1NWMiLCJzdGF0ZV9jaGVja2VyIjoib0NacFUtenN2MVN2ZlZTVVpPZXM3T0tCRmxQWDBWWXIzaWNUcTlXQXlHRSJ9.j56dMKbkzwTdcAd2CUl_POadxjwAOgRLofhoNpdlIyw; Version=1; Path=/realms/realm-name/; HttpOnly" | |
| }, | |
| { | |
| "name": "Set-Cookie", | |
| "value": "KEYCLOAK_SESSION=realm-name/fb12aa62-d529-4fba-bfca-469e02d00e39/df13ef51-698c-461d-95ab-fea114d7055c; Version=1; Expires=Thu, 09-Feb-2023 03:16:49 GMT; Max-Age=36000; Path=/realms/realm-name/; SameSite=None; Secure" | |
| }, | |
| { | |
| "name": "Set-Cookie", | |
| "value": "KEYCLOAK_SESSION_LEGACY=realm-name/fb12aa62-d529-4fba-bfca-469e02d00e39/df13ef51-698c-461d-95ab-fea114d7055c; Version=1; Expires=Thu, 09-Feb-2023 03:16:49 GMT; Max-Age=36000; Path=/realms/realm-name/" | |
| }, | |
| { | |
| "name": "Set-Cookie", | |
| "value": "KEYCLOAK_REMEMBER_ME=; Version=1; Comment=Expiring cookie; Expires=Thu, 01-Jan-1970 00:00:10 GMT; Max-Age=0; Path=/realms/realm-name/; HttpOnly" | |
| }, | |
| { | |
| "name": "Strict-Transport-Security", | |
| "value": "max-age=31536000; includeSubDomains" | |
| }, | |
| { | |
| "name": "X-Content-Type-Options", | |
| "value": "nosniff" | |
| }, | |
| { | |
| "name": "X-Frame-Options", | |
| "value": "SAMEORIGIN" | |
| }, | |
| { | |
| "name": "X-Robots-Tag", | |
| "value": "none" | |
| }, | |
| { | |
| "name": "X-XSS-Protection", | |
| "value": "1; mode=block" | |
| }, | |
| { | |
| "name": "content-length", | |
| "value": "0" | |
| } | |
| ], | |
| "cookies": [ | |
| { | |
| "name": "KEYCLOAK_LOCALE", | |
| "value": "", | |
| "path": "/realms/realm-name/", | |
| "domain": "localhost", | |
| "expires": "2023-02-09T03:16:49.809Z", | |
| "httpOnly": false, | |
| "secure": true, | |
| "sameSite": "None" | |
| }, | |
| { | |
| "name": "KEYCLOAK_REMEMBER_ME", | |
| "value": "", | |
| "path": "/realms/realm-name/", | |
| "domain": "localhost", | |
| "expires": "2023-02-08T17:16:49.809Z", | |
| "httpOnly": true, | |
| "secure": false | |
| } | |
| ], | |
| "content": { | |
| "size": 0, | |
| "mimeType": "x-unknown", | |
| "compression": 0 | |
| }, | |
| "redirectURL": "http://localhost:8081/keycloak-example#state=e12b9c95-0ee5-4d97-81fd-dfe67eef1f25&session_state=df13ef51-698c-461d-95ab-fea114d7055c&code=59f4de64-f7c2-40ec-9dc4-8e4003a0a6dd.df13ef51-698c-461d-95ab-fea114d7055c.4f4e5444-ab78-4702-8cfd-51a19e554988", | |
| "headersSize": 2994, | |
| "bodySize": 0, | |
| "_transferSize": 2994, | |
| "_error": null | |
| }, | |
| "serverIPAddress": "[::1]", | |
| "startedDateTime": "2023-02-08T17:16:49.803Z", | |
| "time": 93.68700021877885, | |
| "timings": { | |
| "blocked": 9.195000036299229, | |
| "dns": -1, | |
| "ssl": -1, | |
| "connect": -1, | |
| "send": 0.09499999999999975, | |
| "wait": 81.4190000910908, | |
| "receive": 2.9780000913888216, | |
| "_blocked_queueing": 6.426000036299229 | |
| } | |
| }, | |
| { | |
| "_initiator": { | |
| "type": "other" | |
| }, | |
| "_priority": "VeryHigh", | |
| "_resourceType": "document", | |
| "cache": {}, | |
| "connection": "2084326", | |
| "pageref": "page_7", | |
| "request": { | |
| "method": "GET", | |
| "url": "http://localhost:8081/keycloak-example", | |
| "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.9" | |
| }, | |
| { | |
| "name": "Accept-Encoding", | |
| "value": "gzip, deflate, br" | |
| }, | |
| { | |
| "name": "Accept-Language", | |
| "value": "ru,en;q=0.9" | |
| }, | |
| { | |
| "name": "Cache-Control", | |
| "value": "no-cache" | |
| }, | |
| { | |
| "name": "Connection", | |
| "value": "keep-alive" | |
| }, | |
| { | |
| "name": "Host", | |
| "value": "localhost:8081" | |
| }, | |
| { | |
| "name": "Pragma", | |
| "value": "no-cache" | |
| }, | |
| { | |
| "name": "Sec-Fetch-Dest", | |
| "value": "document" | |
| }, | |
| { | |
| "name": "Sec-Fetch-Mode", | |
| "value": "navigate" | |
| }, | |
| { | |
| "name": "Sec-Fetch-Site", | |
| "value": "same-site" | |
| }, | |
| { | |
| "name": "Sec-Fetch-User", | |
| "value": "?1" | |
| }, | |
| { | |
| "name": "Upgrade-Insecure-Requests", | |
| "value": "1" | |
| }, | |
| { | |
| "name": "User-Agent", | |
| "value": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 YaBrowser/22.11.3.824 Yowser/2.5 Safari/537.36" | |
| }, | |
| { | |
| "name": "sec-ch-ua", | |
| "value": "\"Chromium\";v=\"106\", \"Yandex\";v=\"22\", \"Not;A=Brand\";v=\"99\"" | |
| }, | |
| { | |
| "name": "sec-ch-ua-mobile", | |
| "value": "?0" | |
| }, | |
| { | |
| "name": "sec-ch-ua-platform", | |
| "value": "\"macOS\"" | |
| } | |
| ], | |
| "queryString": [], | |
| "cookies": [], | |
| "headersSize": 746, | |
| "bodySize": 0 | |
| }, | |
| "response": { | |
| "status": 200, | |
| "statusText": "OK", | |
| "httpVersion": "HTTP/1.1", | |
| "headers": [ | |
| { | |
| "name": "Accept-Ranges", | |
| "value": "bytes" | |
| }, | |
| { | |
| "name": "Connection", | |
| "value": "keep-alive" | |
| }, | |
| { | |
| "name": "Content-Disposition", | |
| "value": "inline; filename=\"keycloak-example.html\"" | |
| }, | |
| { | |
| "name": "Content-Encoding", | |
| "value": "gzip" | |
| }, | |
| { | |
| "name": "Content-Type", | |
| "value": "text/html; charset=utf-8" | |
| }, | |
| { | |
| "name": "Date", | |
| "value": "Wed, 08 Feb 2023 17:16:49 GMT" | |
| }, | |
| { | |
| "name": "ETag", | |
| "value": "\"e5e3b7773fe1e2918ad40b59d1ed76dc2cd759ee\"" | |
| }, | |
| { | |
| "name": "Keep-Alive", | |
| "value": "timeout=5" | |
| }, | |
| { | |
| "name": "Transfer-Encoding", | |
| "value": "chunked" | |
| }, | |
| { | |
| "name": "Vary", | |
| "value": "Accept-Encoding" | |
| } | |
| ], | |
| "cookies": [], | |
| "content": { | |
| "size": 2777, | |
| "mimeType": "text/html", | |
| "compression": 1896, | |
| "text": "<!DOCTYPE html>\n<html lang=\"en\">\n\n<head>\n <meta charset=\"UTF-8\">\n\n <title>Keycloak JS Demo</title>\n</head>\n\n<body>\n\n <script>\n let keycloakUrl = \"http://localhost:8080/\"\n let keycloakJsSrc = \"https://cdn.jsdelivr.net/npm/keycloak-js@20.0.3/dist/keycloak.js\";\n\n var script = document.createElement('script');\n script.type = 'text/javascript';\n script.src = keycloakJsSrc;\n document.getElementsByTagName('head')[0].appendChild(script);\n\n window.onload = function () {\n\n window.keycloak = new Keycloak('./keycloak.json');\n\n keycloak.init({\n onLoad: 'login-required'\n }).success((...args) => {\n console.log('success', args)\n }).error(err => {\n console.error(\"Authenticated Failed\");\n console.error(err);\n });\n };\n\n function showMenu() {\n select('.menu').style.display = 'block';\n }\n\n function showWelcome() {\n show('#welcome');\n }\n\n function showProfile() {\n\n let firstname = keycloak.tokenParsed['given_name'];\n let lastname = keycloak.tokenParsed['family_name'];\n let email = keycloak.tokenParsed['email'];\n\n if (firstname) {\n select('#firstName').innerHTML = firstname;\n }\n if (lastname) {\n select('#lastName').innerHTML = lastname;\n }\n if (email) {\n select('#email').innerHTML = email;\n }\n\n show('#profile');\n }\n\n function showToken() {\n select('#token-content').innerHTML = prettyPrintJson(keycloak.tokenParsed);\n show('#token');\n }\n\n function showIdToken() {\n select('#idToken-content').innerHTML = prettyPrintJson(keycloak.idTokenParsed);\n show('#idToken');\n }\n\n function showUserInfo() {\n keycloak.loadUserInfo().then(userinfo => {\n select('#userinfo-content').innerHTML = prettyPrintJson(userinfo);\n show('#userinfo');\n });\n }\n\n function prettyPrintJson(obj) {\n return JSON.stringify(obj, null, ' ');\n }\n\n function show(selector) {\n select('#welcome').style.display = 'none';\n select('#profile').style.display = 'none';\n select('#token').style.display = 'none';\n select('#idToken').style.display = 'none';\n select('#userinfo').style.display = 'none';\n select(selector).style.display = 'block';\n }\n\n function select(selector) {\n return document.querySelector(selector);\n }\n </script>\n</body>\n\n</html>" | |
| }, | |
| "redirectURL": "", | |
| "headersSize": 353, | |
| "bodySize": 881, | |
| "_transferSize": 1234, | |
| "_error": null | |
| }, | |
| "serverIPAddress": "[::1]", | |
| "startedDateTime": "2023-02-08T17:16:49.897Z", | |
| "time": 6.10799986705184, | |
| "timings": { | |
| "blocked": 2.265999777927995, | |
| "dns": 0.010000000000000009, | |
| "ssl": -1, | |
| "connect": 0.34999999999999987, | |
| "send": 0.18500000000000005, | |
| "wait": 1.3960000494718552, | |
| "receive": 1.90100003965199, | |
| "_blocked_queueing": 0.8269997779279947 | |
| } | |
| }, | |
| { | |
| "_initiator": { | |
| "type": "script", | |
| "stack": { | |
| "callFrames": [ | |
| { | |
| "functionName": "", | |
| "scriptId": "155", | |
| "url": "http://localhost:8081/keycloak-example", | |
| "lineNumber": 18, | |
| "columnNumber": 49 | |
| } | |
| ] | |
| } | |
| }, | |
| "_priority": "Low", | |
| "_resourceType": "script", | |
| "cache": {}, | |
| "pageref": "page_7", | |
| "request": { | |
| "method": "GET", | |
| "url": "https://cdn.jsdelivr.net/npm/keycloak-js@20.0.3/dist/keycloak.js", | |
| "httpVersion": "h3", | |
| "headers": [ | |
| { | |
| "name": ":authority", | |
| "value": "cdn.jsdelivr.net" | |
| }, | |
| { | |
| "name": ":method", | |
| "value": "GET" | |
| }, | |
| { | |
| "name": ":path", | |
| "value": "/npm/keycloak-js@20.0.3/dist/keycloak.js" | |
| }, | |
| { | |
| "name": ":scheme", | |
| "value": "https" | |
| }, | |
| { | |
| "name": "accept", | |
| "value": "*/*" | |
| }, | |
| { | |
| "name": "accept-encoding", | |
| "value": "gzip, deflate, br" | |
| }, | |
| { | |
| "name": "accept-language", | |
| "value": "ru,en;q=0.9" | |
| }, | |
| { | |
| "name": "cache-control", | |
| "value": "no-cache" | |
| }, | |
| { | |
| "name": "pragma", | |
| "value": "no-cache" | |
| }, | |
| { | |
| "name": "referer", | |
| "value": "http://localhost:8081/" | |
| }, | |
| { | |
| "name": "sec-ch-ua", | |
| "value": "\"Chromium\";v=\"106\", \"Yandex\";v=\"22\", \"Not;A=Brand\";v=\"99\"" | |
| }, | |
| { | |
| "name": "sec-ch-ua-mobile", | |
| "value": "?0" | |
| }, | |
| { | |
| "name": "sec-ch-ua-platform", | |
| "value": "\"macOS\"" | |
| }, | |
| { | |
| "name": "sec-fetch-dest", | |
| "value": "script" | |
| }, | |
| { | |
| "name": "sec-fetch-mode", | |
| "value": "no-cors" | |
| }, | |
| { | |
| "name": "sec-fetch-site", | |
| "value": "cross-site" | |
| }, | |
| { | |
| "name": "user-agent", | |
| "value": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 YaBrowser/22.11.3.824 Yowser/2.5 Safari/537.36" | |
| } | |
| ], | |
| "queryString": [], | |
| "cookies": [], | |
| "headersSize": -1, | |
| "bodySize": 0 | |
| }, | |
| "response": { | |
| "status": 200, | |
| "statusText": "", | |
| "httpVersion": "h3", | |
| "headers": [ | |
| { | |
| "name": "access-control-allow-origin", | |
| "value": "*" | |
| }, | |
| { | |
| "name": "access-control-expose-headers", | |
| "value": "*" | |
| }, | |
| { | |
| "name": "age", | |
| "value": "3570" | |
| }, | |
| { | |
| "name": "alt-svc", | |
| "value": "h3=\":443\"; ma=86400, h3-29=\":443\"; ma=86400" | |
| }, | |
| { | |
| "name": "cache-control", | |
| "value": "public, max-age=31536000, s-maxage=31536000, immutable" | |
| }, | |
| { | |
| "name": "cf-cache-status", | |
| "value": "HIT" | |
| }, | |
| { | |
| "name": "cf-ray", | |
| "value": "796603ee1c4c005c-DME" | |
| }, | |
| { | |
| "name": "content-encoding", | |
| "value": "br" | |
| }, | |
| { | |
| "name": "content-type", | |
| "value": "application/javascript; charset=utf-8" | |
| }, | |
| { | |
| "name": "cross-origin-resource-policy", | |
| "value": "cross-origin" | |
| }, | |
| { | |
| "name": "date", | |
| "value": "Wed, 08 Feb 2023 17:16:50 GMT" | |
| }, | |
| { | |
| "name": "etag", | |
| "value": "W/\"16df2-AA8GSCXuFrb6UQ8eKyoXNXyYutc\"" | |
| }, | |
| { | |
| "name": "nel", | |
| "value": "{\"success_fraction\":0.01,\"report_to\":\"cf-nel\",\"max_age\":604800}" | |
| }, | |
| { | |
| "name": "report-to", | |
| "value": "{\"endpoints\":[{\"url\":\"https:\\/\\/a.nel.cloudflare.com\\/report\\/v3?s=vVB8SNPZD483MXXc6DCFRijA0Wxy%2Fa%2F8LQAgYGbc2urf8cezYmoDMOQSoI7USTz2OiJBsBHwWZeRN%2BJmjYT8apJpUqoLLiopK%2BkSEs6FY4mfOeCqgXnNVPRizhRphDhlgld%2BgMRPi2ysshtv%2Fj0%3D\"}],\"group\":\"cf-nel\",\"max_age\":604800}" | |
| }, | |
| { | |
| "name": "server", | |
| "value": "cloudflare" | |
| }, | |
| { | |
| "name": "strict-transport-security", | |
| "value": "max-age=31536000; includeSubDomains; preload" | |
| }, | |
| { | |
| "name": "timing-allow-origin", | |
| "value": "*" | |
| }, | |
| { | |
| "name": "vary", | |
| "value": "Accept-Encoding" | |
| }, | |
| { | |
| "name": "x-cache", | |
| "value": "HIT, MISS" | |
| }, | |
| { | |
| "name": "x-content-type-options", | |
| "value": "nosniff" | |
| }, | |
| { | |
| "name": "x-jsd-version", | |
| "value": "20.0.3" | |
| }, | |
| { | |
| "name": "x-jsd-version-type", | |
| "value": "version" | |
| }, | |
| { | |
| "name": "x-served-by", | |
| "value": "cache-fra-eddf8230104-FRA, cache-yyz4545-YYZ" | |
| } | |
| ], | |
| "cookies": [], | |
| "content": { | |
| "size": 93682, | |
| "mimeType": "application/javascript", | |
| "text": "(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n\ttypeof define === 'function' && define.amd ? define('keycloak', factory) :\n\t(global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Keycloak = factory());\n})(this, (function () { 'use strict';\n\n\tvar commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\n\n\tfunction commonjsRequire(path) {\n\t\tthrow new Error('Could not dynamically require \"' + path + '\". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.');\n\t}\n\n\tvar es6Promise_min = {exports: {}};\n\n\t(function (module, exports) {\n\t\t!function(t,e){module.exports=e();}(commonjsGlobal,function(){function t(t){var e=typeof t;return null!==t&&(\"object\"===e||\"function\"===e)}function e(t){return \"function\"==typeof t}function n(t){W=t;}function r(t){z=t;}function o(){return function(){return process.nextTick(a)}}function i(){return \"undefined\"!=typeof U?function(){U(a);}:c()}function s(){var t=0,e=new H(a),n=document.createTextNode(\"\");return e.observe(n,{characterData:!0}),function(){n.data=t=++t%2;}}function u(){var t=new MessageChannel;return t.port1.onmessage=a,function(){return t.port2.postMessage(0)}}function c(){var t=setTimeout;return function(){return t(a,1)}}function a(){for(var t=0;t<N;t+=2){var e=Q[t],n=Q[t+1];e(n),Q[t]=void 0,Q[t+1]=void 0;}N=0;}function f(){try{var t=Function(\"return this\")().require(\"vertx\");return U=t.runOnLoop||t.runOnContext,i()}catch(e){return c()}}function l(t,e){var n=this,r=new this.constructor(v);void 0===r[V]&&x(r);var o=n._state;if(o){var i=arguments[o-1];z(function(){return T(o,r,i,n._result)});}else j(n,r,t,e);return r}function h(t){var e=this;if(t&&\"object\"==typeof t&&t.constructor===e)return t;var n=new e(v);return w(n,t),n}function v(){}function p(){return new TypeError(\"You cannot resolve a promise with itself\")}function d(){return new TypeError(\"A promises callback cannot return that same promise.\")}function _(t,e,n,r){try{t.call(e,n,r);}catch(o){return o}}function y(t,e,n){z(function(t){var r=!1,o=_(n,e,function(n){r||(r=!0,e!==n?w(t,n):A(t,n));},function(e){r||(r=!0,S(t,e));},\"Settle: \"+(t._label||\" unknown promise\"));!r&&o&&(r=!0,S(t,o));},t);}function m(t,e){e._state===Z?A(t,e._result):e._state===$?S(t,e._result):j(e,void 0,function(e){return w(t,e)},function(e){return S(t,e)});}function b(t,n,r){n.constructor===t.constructor&&r===l&&n.constructor.resolve===h?m(t,n):void 0===r?A(t,n):e(r)?y(t,n,r):A(t,n);}function w(e,n){if(e===n)S(e,p());else if(t(n)){var r=void 0;try{r=n.then;}catch(o){return void S(e,o)}b(e,n,r);}else A(e,n);}function g(t){t._onerror&&t._onerror(t._result),E(t);}function A(t,e){t._state===X&&(t._result=e,t._state=Z,0!==t._subscribers.length&&z(E,t));}function S(t,e){t._state===X&&(t._state=$,t._result=e,z(g,t));}function j(t,e,n,r){var o=t._subscribers,i=o.length;t._onerror=null,o[i]=e,o[i+Z]=n,o[i+$]=r,0===i&&t._state&&z(E,t);}function E(t){var e=t._subscribers,n=t._state;if(0!==e.length){for(var r=void 0,o=void 0,i=t._result,s=0;s<e.length;s+=3)r=e[s],o=e[s+n],r?T(n,r,o,i):o(i);t._subscribers.length=0;}}function T(t,n,r,o){var i=e(r),s=void 0,u=void 0,c=!0;if(i){try{s=r(o);}catch(a){c=!1,u=a;}if(n===s)return void S(n,d())}else s=o;n._state!==X||(i&&c?w(n,s):c===!1?S(n,u):t===Z?A(n,s):t===$&&S(n,s));}function M(t,e){try{e(function(e){w(t,e);},function(e){S(t,e);});}catch(n){S(t,n);}}function P(){return tt++}function x(t){t[V]=tt++,t._state=void 0,t._result=void 0,t._subscribers=[];}function C(){return new Error(\"Array Methods must be provided an Array\")}function O(t){return new et(this,t).promise}function k(t){var e=this;return new e(L(t)?function(n,r){for(var o=t.length,i=0;i<o;i++)e.resolve(t[i]).then(n,r);}:function(t,e){return e(new TypeError(\"You must pass an array to race.\"))})}function F(t){var e=this,n=new e(v);return S(n,t),n}function Y(){throw new TypeError(\"You must pass a resolver function as the first argument to the promise constructor\")}function q(){throw new TypeError(\"Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.\")}function D(){var t=void 0;if(\"undefined\"!=typeof commonjsGlobal)t=commonjsGlobal;else if(\"undefined\"!=typeof self)t=self;else try{t=Function(\"return this\")();}catch(e){throw new Error(\"polyfill failed because global object is unavailable in this environment\")}var n=t.Promise;if(n){var r=null;try{r=Object.prototype.toString.call(n.resolve());}catch(e){}if(\"[object Promise]\"===r&&!n.cast)return}t.Promise=nt;}var K=void 0;K=Array.isArray?Array.isArray:function(t){return \"[object Array]\"===Object.prototype.toString.call(t)};var L=K,N=0,U=void 0,W=void 0,z=function(t,e){Q[N]=t,Q[N+1]=e,N+=2,2===N&&(W?W(a):R());},B=\"undefined\"!=typeof window?window:void 0,G=B||{},H=G.MutationObserver||G.WebKitMutationObserver,I=\"undefined\"==typeof self&&\"undefined\"!=typeof process&&\"[object process]\"==={}.toString.call(process),J=\"undefined\"!=typeof Uint8ClampedArray&&\"undefined\"!=typeof importScripts&&\"undefined\"!=typeof MessageChannel,Q=new Array(1e3),R=void 0;R=I?o():H?s():J?u():void 0===B&&\"function\"==typeof commonjsRequire?f():c();var V=Math.random().toString(36).substring(2),X=void 0,Z=1,$=2,tt=0,et=function(){function t(t,e){this._instanceConstructor=t,this.promise=new t(v),this.promise[V]||x(this.promise),L(e)?(this.length=e.length,this._remaining=e.length,this._result=new Array(this.length),0===this.length?A(this.promise,this._result):(this.length=this.length||0,this._enumerate(e),0===this._remaining&&A(this.promise,this._result))):S(this.promise,C());}return t.prototype._enumerate=function(t){for(var e=0;this._state===X&&e<t.length;e++)this._eachEntry(t[e],e);},t.prototype._eachEntry=function(t,e){var n=this._instanceConstructor,r=n.resolve;if(r===h){var o=void 0,i=void 0,s=!1;try{o=t.then;}catch(u){s=!0,i=u;}if(o===l&&t._state!==X)this._settledAt(t._state,e,t._result);else if(\"function\"!=typeof o)this._remaining--,this._result[e]=t;else if(n===nt){var c=new n(v);s?S(c,i):b(c,t,o),this._willSettleAt(c,e);}else this._willSettleAt(new n(function(e){return e(t)}),e);}else this._willSettleAt(r(t),e);},t.prototype._settledAt=function(t,e,n){var r=this.promise;r._state===X&&(this._remaining--,t===$?S(r,n):this._result[e]=n),0===this._remaining&&A(r,this._result);},t.prototype._willSettleAt=function(t,e){var n=this;j(t,void 0,function(t){return n._settledAt(Z,e,t)},function(t){return n._settledAt($,e,t)});},t}(),nt=function(){function t(e){this[V]=P(),this._result=this._state=void 0,this._subscribers=[],v!==e&&(\"function\"!=typeof e&&Y(),this instanceof t?M(this,e):q());}return t.prototype[\"catch\"]=function(t){return this.then(null,t)},t.prototype[\"finally\"]=function(t){var n=this,r=n.constructor;return e(t)?n.then(function(e){return r.resolve(t()).then(function(){return e})},function(e){return r.resolve(t()).then(function(){throw e})}):n.then(t,t)},t}();return nt.prototype.then=l,nt.all=O,nt.race=k,nt.resolve=h,nt.reject=F,nt._setScheduler=n,nt._setAsap=r,nt._asap=z,nt.polyfill=D,nt.Promise=nt,nt});\n\t} (es6Promise_min));\n\n\tvar base64Js = {};\n\n\tbase64Js.byteLength = byteLength;\n\tbase64Js.toByteArray = toByteArray;\n\tbase64Js.fromByteArray = fromByteArray;\n\n\tvar lookup = [];\n\tvar revLookup = [];\n\tvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array;\n\n\tvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\tfor (var i = 0, len = code.length; i < len; ++i) {\n\t lookup[i] = code[i];\n\t revLookup[code.charCodeAt(i)] = i;\n\t}\n\n\t// Support decoding URL-safe base64 strings, as Node.js does.\n\t// See: https://en.wikipedia.org/wiki/Base64#URL_applications\n\trevLookup['-'.charCodeAt(0)] = 62;\n\trevLookup['_'.charCodeAt(0)] = 63;\n\n\tfunction getLens (b64) {\n\t var len = b64.length;\n\n\t if (len % 4 > 0) {\n\t throw new Error('Invalid string. Length must be a multiple of 4')\n\t }\n\n\t // Trim off extra bytes after placeholder bytes are found\n\t // See: https://github.com/beatgammit/base64-js/issues/42\n\t var validLen = b64.indexOf('=');\n\t if (validLen === -1) validLen = len;\n\n\t var placeHoldersLen = validLen === len\n\t ? 0\n\t : 4 - (validLen % 4);\n\n\t return [validLen, placeHoldersLen]\n\t}\n\n\t// base64 is 4/3 + up to two characters of the original data\n\tfunction byteLength (b64) {\n\t var lens = getLens(b64);\n\t var validLen = lens[0];\n\t var placeHoldersLen = lens[1];\n\t return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n\t}\n\n\tfunction _byteLength (b64, validLen, placeHoldersLen) {\n\t return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n\t}\n\n\tfunction toByteArray (b64) {\n\t var tmp;\n\t var lens = getLens(b64);\n\t var validLen = lens[0];\n\t var placeHoldersLen = lens[1];\n\n\t var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen));\n\n\t var curByte = 0;\n\n\t // if there are placeholders, only get up to the last complete 4 chars\n\t var len = placeHoldersLen > 0\n\t ? validLen - 4\n\t : validLen;\n\n\t var i;\n\t for (i = 0; i < len; i += 4) {\n\t tmp =\n\t (revLookup[b64.charCodeAt(i)] << 18) |\n\t (revLookup[b64.charCodeAt(i + 1)] << 12) |\n\t (revLookup[b64.charCodeAt(i + 2)] << 6) |\n\t revLookup[b64.charCodeAt(i + 3)];\n\t arr[curByte++] = (tmp >> 16) & 0xFF;\n\t arr[curByte++] = (tmp >> 8) & 0xFF;\n\t arr[curByte++] = tmp & 0xFF;\n\t }\n\n\t if (placeHoldersLen === 2) {\n\t tmp =\n\t (revLookup[b64.charCodeAt(i)] << 2) |\n\t (revLookup[b64.charCodeAt(i + 1)] >> 4);\n\t arr[curByte++] = tmp & 0xFF;\n\t }\n\n\t if (placeHoldersLen === 1) {\n\t tmp =\n\t (revLookup[b64.charCodeAt(i)] << 10) |\n\t (revLookup[b64.charCodeAt(i + 1)] << 4) |\n\t (revLookup[b64.charCodeAt(i + 2)] >> 2);\n\t arr[curByte++] = (tmp >> 8) & 0xFF;\n\t arr[curByte++] = tmp & 0xFF;\n\t }\n\n\t return arr\n\t}\n\n\tfunction tripletToBase64 (num) {\n\t return lookup[num >> 18 & 0x3F] +\n\t lookup[num >> 12 & 0x3F] +\n\t lookup[num >> 6 & 0x3F] +\n\t lookup[num & 0x3F]\n\t}\n\n\tfunction encodeChunk (uint8, start, end) {\n\t var tmp;\n\t var output = [];\n\t for (var i = start; i < end; i += 3) {\n\t tmp =\n\t ((uint8[i] << 16) & 0xFF0000) +\n\t ((uint8[i + 1] << 8) & 0xFF00) +\n\t (uint8[i + 2] & 0xFF);\n\t output.push(tripletToBase64(tmp));\n\t }\n\t return output.join('')\n\t}\n\n\tfunction fromByteArray (uint8) {\n\t var tmp;\n\t var len = uint8.length;\n\t var extraBytes = len % 3; // if we have 1 byte left, pad 2 bytes\n\t var parts = [];\n\t var maxChunkLength = 16383; // must be multiple of 3\n\n\t // go through the array every three bytes, we'll deal with trailing stuff later\n\t for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n\t parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)));\n\t }\n\n\t // pad the end with zeros, but make sure to not forget the extra bytes\n\t if (extraBytes === 1) {\n\t tmp = uint8[len - 1];\n\t parts.push(\n\t lookup[tmp >> 2] +\n\t lookup[(tmp << 4) & 0x3F] +\n\t '=='\n\t );\n\t } else if (extraBytes === 2) {\n\t tmp = (uint8[len - 2] << 8) + uint8[len - 1];\n\t parts.push(\n\t lookup[tmp >> 10] +\n\t lookup[(tmp >> 4) & 0x3F] +\n\t lookup[(tmp << 2) & 0x3F] +\n\t '='\n\t );\n\t }\n\n\t return parts.join('')\n\t}\n\n\tvar sha256$1 = {exports: {}};\n\n\t/**\n\t * [js-sha256]{@link https://github.com/emn178/js-sha256}\n\t *\n\t * @version 0.9.0\n\t * @author Chen, Yi-Cyuan [emn178@gmail.com]\n\t * @copyright Chen, Yi-Cyuan 2014-2017\n\t * @license MIT\n\t */\n\n\t(function (module) {\n\t\t/*jslint bitwise: true */\n\t\t(function () {\n\n\t\t var ERROR = 'input is invalid type';\n\t\t var WINDOW = typeof window === 'object';\n\t\t var root = WINDOW ? window : {};\n\t\t if (root.JS_SHA256_NO_WINDOW) {\n\t\t WINDOW = false;\n\t\t }\n\t\t var WEB_WORKER = !WINDOW && typeof self === 'object';\n\t\t var NODE_JS = !root.JS_SHA256_NO_NODE_JS && typeof process === 'object' && process.versions && process.versions.node;\n\t\t if (NODE_JS) {\n\t\t root = commonjsGlobal;\n\t\t } else if (WEB_WORKER) {\n\t\t root = self;\n\t\t }\n\t\t var COMMON_JS = !root.JS_SHA256_NO_COMMON_JS && 'object' === 'object' && module.exports;\n\t\t var ARRAY_BUFFER = !root.JS_SHA256_NO_ARRAY_BUFFER && typeof ArrayBuffer !== 'undefined';\n\t\t var HEX_CHARS = '0123456789abcdef'.split('');\n\t\t var EXTRA = [-2147483648, 8388608, 32768, 128];\n\t\t var SHIFT = [24, 16, 8, 0];\n\t\t var K = [\n\t\t 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,\n\t\t 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,\n\t\t 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\n\t\t 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,\n\t\t 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n\t\t 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\n\t\t 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,\n\t\t 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2\n\t\t ];\n\t\t var OUTPUT_TYPES = ['hex', 'array', 'digest', 'arrayBuffer'];\n\n\t\t var blocks = [];\n\n\t\t if (root.JS_SHA256_NO_NODE_JS || !Array.isArray) {\n\t\t Array.isArray = function (obj) {\n\t\t return Object.prototype.toString.call(obj) === '[object Array]';\n\t\t };\n\t\t }\n\n\t\t if (ARRAY_BUFFER && (root.JS_SHA256_NO_ARRAY_BUFFER_IS_VIEW || !ArrayBuffer.isView)) {\n\t\t ArrayBuffer.isView = function (obj) {\n\t\t return typeof obj === 'object' && obj.buffer && obj.buffer.constructor === ArrayBuffer;\n\t\t };\n\t\t }\n\n\t\t var createOutputMethod = function (outputType, is224) {\n\t\t return function (message) {\n\t\t return new Sha256(is224, true).update(message)[outputType]();\n\t\t };\n\t\t };\n\n\t\t var createMethod = function (is224) {\n\t\t var method = createOutputMethod('hex', is224);\n\t\t if (NODE_JS) {\n\t\t method = nodeWrap(method, is224);\n\t\t }\n\t\t method.create = function () {\n\t\t return new Sha256(is224);\n\t\t };\n\t\t method.update = function (message) {\n\t\t return method.create().update(message);\n\t\t };\n\t\t for (var i = 0; i < OUTPUT_TYPES.length; ++i) {\n\t\t var type = OUTPUT_TYPES[i];\n\t\t method[type] = createOutputMethod(type, is224);\n\t\t }\n\t\t return method;\n\t\t };\n\n\t\t var nodeWrap = function (method, is224) {\n\t\t var crypto = eval(\"require('crypto')\");\n\t\t var Buffer = eval(\"require('buffer').Buffer\");\n\t\t var algorithm = is224 ? 'sha224' : 'sha256';\n\t\t var nodeMethod = function (message) {\n\t\t if (typeof message === 'string') {\n\t\t return crypto.createHash(algorithm).update(message, 'utf8').digest('hex');\n\t\t } else {\n\t\t if (message === null || message === undefined) {\n\t\t throw new Error(ERROR);\n\t\t } else if (message.constructor === ArrayBuffer) {\n\t\t message = new Uint8Array(message);\n\t\t }\n\t\t }\n\t\t if (Array.isArray(message) || ArrayBuffer.isView(message) ||\n\t\t message.constructor === Buffer) {\n\t\t return crypto.createHash(algorithm).update(new Buffer(message)).digest('hex');\n\t\t } else {\n\t\t return method(message);\n\t\t }\n\t\t };\n\t\t return nodeMethod;\n\t\t };\n\n\t\t var createHmacOutputMethod = function (outputType, is224) {\n\t\t return function (key, message) {\n\t\t return new HmacSha256(key, is224, true).update(message)[outputType]();\n\t\t };\n\t\t };\n\n\t\t var createHmacMethod = function (is224) {\n\t\t var method = createHmacOutputMethod('hex', is224);\n\t\t method.create = function (key) {\n\t\t return new HmacSha256(key, is224);\n\t\t };\n\t\t method.update = function (key, message) {\n\t\t return method.create(key).update(message);\n\t\t };\n\t\t for (var i = 0; i < OUTPUT_TYPES.length; ++i) {\n\t\t var type = OUTPUT_TYPES[i];\n\t\t method[type] = createHmacOutputMethod(type, is224);\n\t\t }\n\t\t return method;\n\t\t };\n\n\t\t function Sha256(is224, sharedMemory) {\n\t\t if (sharedMemory) {\n\t\t blocks[0] = blocks[16] = blocks[1] = blocks[2] = blocks[3] =\n\t\t blocks[4] = blocks[5] = blocks[6] = blocks[7] =\n\t\t blocks[8] = blocks[9] = blocks[10] = blocks[11] =\n\t\t blocks[12] = blocks[13] = blocks[14] = blocks[15] = 0;\n\t\t this.blocks = blocks;\n\t\t } else {\n\t\t this.blocks = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n\t\t }\n\n\t\t if (is224) {\n\t\t this.h0 = 0xc1059ed8;\n\t\t this.h1 = 0x367cd507;\n\t\t this.h2 = 0x3070dd17;\n\t\t this.h3 = 0xf70e5939;\n\t\t this.h4 = 0xffc00b31;\n\t\t this.h5 = 0x68581511;\n\t\t this.h6 = 0x64f98fa7;\n\t\t this.h7 = 0xbefa4fa4;\n\t\t } else { // 256\n\t\t this.h0 = 0x6a09e667;\n\t\t this.h1 = 0xbb67ae85;\n\t\t this.h2 = 0x3c6ef372;\n\t\t this.h3 = 0xa54ff53a;\n\t\t this.h4 = 0x510e527f;\n\t\t this.h5 = 0x9b05688c;\n\t\t this.h6 = 0x1f83d9ab;\n\t\t this.h7 = 0x5be0cd19;\n\t\t }\n\n\t\t this.block = this.start = this.bytes = this.hBytes = 0;\n\t\t this.finalized = this.hashed = false;\n\t\t this.first = true;\n\t\t this.is224 = is224;\n\t\t }\n\n\t\t Sha256.prototype.update = function (message) {\n\t\t if (this.finalized) {\n\t\t return;\n\t\t }\n\t\t var notString, type = typeof message;\n\t\t if (type !== 'string') {\n\t\t if (type === 'object') {\n\t\t if (message === null) {\n\t\t throw new Error(ERROR);\n\t\t } else if (ARRAY_BUFFER && message.constructor === ArrayBuffer) {\n\t\t message = new Uint8Array(message);\n\t\t } else if (!Array.isArray(message)) {\n\t\t if (!ARRAY_BUFFER || !ArrayBuffer.isView(message)) {\n\t\t throw new Error(ERROR);\n\t\t }\n\t\t }\n\t\t } else {\n\t\t throw new Error(ERROR);\n\t\t }\n\t\t notString = true;\n\t\t }\n\t\t var code, index = 0, i, length = message.length, blocks = this.blocks;\n\n\t\t while (index < length) {\n\t\t if (this.hashed) {\n\t\t this.hashed = false;\n\t\t blocks[0] = this.block;\n\t\t blocks[16] = blocks[1] = blocks[2] = blocks[3] =\n\t\t blocks[4] = blocks[5] = blocks[6] = blocks[7] =\n\t\t blocks[8] = blocks[9] = blocks[10] = blocks[11] =\n\t\t blocks[12] = blocks[13] = blocks[14] = blocks[15] = 0;\n\t\t }\n\n\t\t if (notString) {\n\t\t for (i = this.start; index < length && i < 64; ++index) {\n\t\t blocks[i >> 2] |= message[index] << SHIFT[i++ & 3];\n\t\t }\n\t\t } else {\n\t\t for (i = this.start; index < length && i < 64; ++index) {\n\t\t code = message.charCodeAt(index);\n\t\t if (code < 0x80) {\n\t\t blocks[i >> 2] |= code << SHIFT[i++ & 3];\n\t\t } else if (code < 0x800) {\n\t\t blocks[i >> 2] |= (0xc0 | (code >> 6)) << SHIFT[i++ & 3];\n\t\t blocks[i >> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];\n\t\t } else if (code < 0xd800 || code >= 0xe000) {\n\t\t blocks[i >> 2] |= (0xe0 | (code >> 12)) << SHIFT[i++ & 3];\n\t\t blocks[i >> 2] |= (0x80 | ((code >> 6) & 0x3f)) << SHIFT[i++ & 3];\n\t\t blocks[i >> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];\n\t\t } else {\n\t\t code = 0x10000 + (((code & 0x3ff) << 10) | (message.charCodeAt(++index) & 0x3ff));\n\t\t blocks[i >> 2] |= (0xf0 | (code >> 18)) << SHIFT[i++ & 3];\n\t\t blocks[i >> 2] |= (0x80 | ((code >> 12) & 0x3f)) << SHIFT[i++ & 3];\n\t\t blocks[i >> 2] |= (0x80 | ((code >> 6) & 0x3f)) << SHIFT[i++ & 3];\n\t\t blocks[i >> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];\n\t\t }\n\t\t }\n\t\t }\n\n\t\t this.lastByteIndex = i;\n\t\t this.bytes += i - this.start;\n\t\t if (i >= 64) {\n\t\t this.block = blocks[16];\n\t\t this.start = i - 64;\n\t\t this.hash();\n\t\t this.hashed = true;\n\t\t } else {\n\t\t this.start = i;\n\t\t }\n\t\t }\n\t\t if (this.bytes > 4294967295) {\n\t\t this.hBytes += this.bytes / 4294967296 << 0;\n\t\t this.bytes = this.bytes % 4294967296;\n\t\t }\n\t\t return this;\n\t\t };\n\n\t\t Sha256.prototype.finalize = function () {\n\t\t if (this.finalized) {\n\t\t return;\n\t\t }\n\t\t this.finalized = true;\n\t\t var blocks = this.blocks, i = this.lastByteIndex;\n\t\t blocks[16] = this.block;\n\t\t blocks[i >> 2] |= EXTRA[i & 3];\n\t\t this.block = blocks[16];\n\t\t if (i >= 56) {\n\t\t if (!this.hashed) {\n\t\t this.hash();\n\t\t }\n\t\t blocks[0] = this.block;\n\t\t blocks[16] = blocks[1] = blocks[2] = blocks[3] =\n\t\t blocks[4] = blocks[5] = blocks[6] = blocks[7] =\n\t\t blocks[8] = blocks[9] = blocks[10] = blocks[11] =\n\t\t blocks[12] = blocks[13] = blocks[14] = blocks[15] = 0;\n\t\t }\n\t\t blocks[14] = this.hBytes << 3 | this.bytes >>> 29;\n\t\t blocks[15] = this.bytes << 3;\n\t\t this.hash();\n\t\t };\n\n\t\t Sha256.prototype.hash = function () {\n\t\t var a = this.h0, b = this.h1, c = this.h2, d = this.h3, e = this.h4, f = this.h5, g = this.h6,\n\t\t h = this.h7, blocks = this.blocks, j, s0, s1, maj, t1, t2, ch, ab, da, cd, bc;\n\n\t\t for (j = 16; j < 64; ++j) {\n\t\t // rightrotate\n\t\t t1 = blocks[j - 15];\n\t\t s0 = ((t1 >>> 7) | (t1 << 25)) ^ ((t1 >>> 18) | (t1 << 14)) ^ (t1 >>> 3);\n\t\t t1 = blocks[j - 2];\n\t\t s1 = ((t1 >>> 17) | (t1 << 15)) ^ ((t1 >>> 19) | (t1 << 13)) ^ (t1 >>> 10);\n\t\t blocks[j] = blocks[j - 16] + s0 + blocks[j - 7] + s1 << 0;\n\t\t }\n\n\t\t bc = b & c;\n\t\t for (j = 0; j < 64; j += 4) {\n\t\t if (this.first) {\n\t\t if (this.is224) {\n\t\t ab = 300032;\n\t\t t1 = blocks[0] - 1413257819;\n\t\t h = t1 - 150054599 << 0;\n\t\t d = t1 + 24177077 << 0;\n\t\t } else {\n\t\t ab = 704751109;\n\t\t t1 = blocks[0] - 210244248;\n\t\t h = t1 - 1521486534 << 0;\n\t\t d = t1 + 143694565 << 0;\n\t\t }\n\t\t this.first = false;\n\t\t } else {\n\t\t s0 = ((a >>> 2) | (a << 30)) ^ ((a >>> 13) | (a << 19)) ^ ((a >>> 22) | (a << 10));\n\t\t s1 = ((e >>> 6) | (e << 26)) ^ ((e >>> 11) | (e << 21)) ^ ((e >>> 25) | (e << 7));\n\t\t ab = a & b;\n\t\t maj = ab ^ (a & c) ^ bc;\n\t\t ch = (e & f) ^ (~e & g);\n\t\t t1 = h + s1 + ch + K[j] + blocks[j];\n\t\t t2 = s0 + maj;\n\t\t h = d + t1 << 0;\n\t\t d = t1 + t2 << 0;\n\t\t }\n\t\t s0 = ((d >>> 2) | (d << 30)) ^ ((d >>> 13) | (d << 19)) ^ ((d >>> 22) | (d << 10));\n\t\t s1 = ((h >>> 6) | (h << 26)) ^ ((h >>> 11) | (h << 21)) ^ ((h >>> 25) | (h << 7));\n\t\t da = d & a;\n\t\t maj = da ^ (d & b) ^ ab;\n\t\t ch = (h & e) ^ (~h & f);\n\t\t t1 = g + s1 + ch + K[j + 1] + blocks[j + 1];\n\t\t t2 = s0 + maj;\n\t\t g = c + t1 << 0;\n\t\t c = t1 + t2 << 0;\n\t\t s0 = ((c >>> 2) | (c << 30)) ^ ((c >>> 13) | (c << 19)) ^ ((c >>> 22) | (c << 10));\n\t\t s1 = ((g >>> 6) | (g << 26)) ^ ((g >>> 11) | (g << 21)) ^ ((g >>> 25) | (g << 7));\n\t\t cd = c & d;\n\t\t maj = cd ^ (c & a) ^ da;\n\t\t ch = (g & h) ^ (~g & e);\n\t\t t1 = f + s1 + ch + K[j + 2] + blocks[j + 2];\n\t\t t2 = s0 + maj;\n\t\t f = b + t1 << 0;\n\t\t b = t1 + t2 << 0;\n\t\t s0 = ((b >>> 2) | (b << 30)) ^ ((b >>> 13) | (b << 19)) ^ ((b >>> 22) | (b << 10));\n\t\t s1 = ((f >>> 6) | (f << 26)) ^ ((f >>> 11) | (f << 21)) ^ ((f >>> 25) | (f << 7));\n\t\t bc = b & c;\n\t\t maj = bc ^ (b & d) ^ cd;\n\t\t ch = (f & g) ^ (~f & h);\n\t\t t1 = e + s1 + ch + K[j + 3] + blocks[j + 3];\n\t\t t2 = s0 + maj;\n\t\t e = a + t1 << 0;\n\t\t a = t1 + t2 << 0;\n\t\t }\n\n\t\t this.h0 = this.h0 + a << 0;\n\t\t this.h1 = this.h1 + b << 0;\n\t\t this.h2 = this.h2 + c << 0;\n\t\t this.h3 = this.h3 + d << 0;\n\t\t this.h4 = this.h4 + e << 0;\n\t\t this.h5 = this.h5 + f << 0;\n\t\t this.h6 = this.h6 + g << 0;\n\t\t this.h7 = this.h7 + h << 0;\n\t\t };\n\n\t\t Sha256.prototype.hex = function () {\n\t\t this.finalize();\n\n\t\t var h0 = this.h0, h1 = this.h1, h2 = this.h2, h3 = this.h3, h4 = this.h4, h5 = this.h5,\n\t\t h6 = this.h6, h7 = this.h7;\n\n\t\t var hex = HEX_CHARS[(h0 >> 28) & 0x0F] + HEX_CHARS[(h0 >> 24) & 0x0F] +\n\t\t HEX_CHARS[(h0 >> 20) & 0x0F] + HEX_CHARS[(h0 >> 16) & 0x0F] +\n\t\t HEX_CHARS[(h0 >> 12) & 0x0F] + HEX_CHARS[(h0 >> 8) & 0x0F] +\n\t\t HEX_CHARS[(h0 >> 4) & 0x0F] + HEX_CHARS[h0 & 0x0F] +\n\t\t HEX_CHARS[(h1 >> 28) & 0x0F] + HEX_CHARS[(h1 >> 24) & 0x0F] +\n\t\t HEX_CHARS[(h1 >> 20) & 0x0F] + HEX_CHARS[(h1 >> 16) & 0x0F] +\n\t\t HEX_CHARS[(h1 >> 12) & 0x0F] + HEX_CHARS[(h1 >> 8) & 0x0F] +\n\t\t HEX_CHARS[(h1 >> 4) & 0x0F] + HEX_CHARS[h1 & 0x0F] +\n\t\t HEX_CHARS[(h2 >> 28) & 0x0F] + HEX_CHARS[(h2 >> 24) & 0x0F] +\n\t\t HEX_CHARS[(h2 >> 20) & 0x0F] + HEX_CHARS[(h2 >> 16) & 0x0F] +\n\t\t HEX_CHARS[(h2 >> 12) & 0x0F] + HEX_CHARS[(h2 >> 8) & 0x0F] +\n\t\t HEX_CHARS[(h2 >> 4) & 0x0F] + HEX_CHARS[h2 & 0x0F] +\n\t\t HEX_CHARS[(h3 >> 28) & 0x0F] + HEX_CHARS[(h3 >> 24) & 0x0F] +\n\t\t HEX_CHARS[(h3 >> 20) & 0x0F] + HEX_CHARS[(h3 >> 16) & 0x0F] +\n\t\t HEX_CHARS[(h3 >> 12) & 0x0F] + HEX_CHARS[(h3 >> 8) & 0x0F] +\n\t\t HEX_CHARS[(h3 >> 4) & 0x0F] + HEX_CHARS[h3 & 0x0F] +\n\t\t HEX_CHARS[(h4 >> 28) & 0x0F] + HEX_CHARS[(h4 >> 24) & 0x0F] +\n\t\t HEX_CHARS[(h4 >> 20) & 0x0F] + HEX_CHARS[(h4 >> 16) & 0x0F] +\n\t\t HEX_CHARS[(h4 >> 12) & 0x0F] + HEX_CHARS[(h4 >> 8) & 0x0F] +\n\t\t HEX_CHARS[(h4 >> 4) & 0x0F] + HEX_CHARS[h4 & 0x0F] +\n\t\t HEX_CHARS[(h5 >> 28) & 0x0F] + HEX_CHARS[(h5 >> 24) & 0x0F] +\n\t\t HEX_CHARS[(h5 >> 20) & 0x0F] + HEX_CHARS[(h5 >> 16) & 0x0F] +\n\t\t HEX_CHARS[(h5 >> 12) & 0x0F] + HEX_CHARS[(h5 >> 8) & 0x0F] +\n\t\t HEX_CHARS[(h5 >> 4) & 0x0F] + HEX_CHARS[h5 & 0x0F] +\n\t\t HEX_CHARS[(h6 >> 28) & 0x0F] + HEX_CHARS[(h6 >> 24) & 0x0F] +\n\t\t HEX_CHARS[(h6 >> 20) & 0x0F] + HEX_CHARS[(h6 >> 16) & 0x0F] +\n\t\t HEX_CHARS[(h6 >> 12) & 0x0F] + HEX_CHARS[(h6 >> 8) & 0x0F] +\n\t\t HEX_CHARS[(h6 >> 4) & 0x0F] + HEX_CHARS[h6 & 0x0F];\n\t\t if (!this.is224) {\n\t\t hex += HEX_CHARS[(h7 >> 28) & 0x0F] + HEX_CHARS[(h7 >> 24) & 0x0F] +\n\t\t HEX_CHARS[(h7 >> 20) & 0x0F] + HEX_CHARS[(h7 >> 16) & 0x0F] +\n\t\t HEX_CHARS[(h7 >> 12) & 0x0F] + HEX_CHARS[(h7 >> 8) & 0x0F] +\n\t\t HEX_CHARS[(h7 >> 4) & 0x0F] + HEX_CHARS[h7 & 0x0F];\n\t\t }\n\t\t return hex;\n\t\t };\n\n\t\t Sha256.prototype.toString = Sha256.prototype.hex;\n\n\t\t Sha256.prototype.digest = function () {\n\t\t this.finalize();\n\n\t\t var h0 = this.h0, h1 = this.h1, h2 = this.h2, h3 = this.h3, h4 = this.h4, h5 = this.h5,\n\t\t h6 = this.h6, h7 = this.h7;\n\n\t\t var arr = [\n\t\t (h0 >> 24) & 0xFF, (h0 >> 16) & 0xFF, (h0 >> 8) & 0xFF, h0 & 0xFF,\n\t\t (h1 >> 24) & 0xFF, (h1 >> 16) & 0xFF, (h1 >> 8) & 0xFF, h1 & 0xFF,\n\t\t (h2 >> 24) & 0xFF, (h2 >> 16) & 0xFF, (h2 >> 8) & 0xFF, h2 & 0xFF,\n\t\t (h3 >> 24) & 0xFF, (h3 >> 16) & 0xFF, (h3 >> 8) & 0xFF, h3 & 0xFF,\n\t\t (h4 >> 24) & 0xFF, (h4 >> 16) & 0xFF, (h4 >> 8) & 0xFF, h4 & 0xFF,\n\t\t (h5 >> 24) & 0xFF, (h5 >> 16) & 0xFF, (h5 >> 8) & 0xFF, h5 & 0xFF,\n\t\t (h6 >> 24) & 0xFF, (h6 >> 16) & 0xFF, (h6 >> 8) & 0xFF, h6 & 0xFF\n\t\t ];\n\t\t if (!this.is224) {\n\t\t arr.push((h7 >> 24) & 0xFF, (h7 >> 16) & 0xFF, (h7 >> 8) & 0xFF, h7 & 0xFF);\n\t\t }\n\t\t return arr;\n\t\t };\n\n\t\t Sha256.prototype.array = Sha256.prototype.digest;\n\n\t\t Sha256.prototype.arrayBuffer = function () {\n\t\t this.finalize();\n\n\t\t var buffer = new ArrayBuffer(this.is224 ? 28 : 32);\n\t\t var dataView = new DataView(buffer);\n\t\t dataView.setUint32(0, this.h0);\n\t\t dataView.setUint32(4, this.h1);\n\t\t dataView.setUint32(8, this.h2);\n\t\t dataView.setUint32(12, this.h3);\n\t\t dataView.setUint32(16, this.h4);\n\t\t dataView.setUint32(20, this.h5);\n\t\t dataView.setUint32(24, this.h6);\n\t\t if (!this.is224) {\n\t\t dataView.setUint32(28, this.h7);\n\t\t }\n\t\t return buffer;\n\t\t };\n\n\t\t function HmacSha256(key, is224, sharedMemory) {\n\t\t var i, type = typeof key;\n\t\t if (type === 'string') {\n\t\t var bytes = [], length = key.length, index = 0, code;\n\t\t for (i = 0; i < length; ++i) {\n\t\t code = key.charCodeAt(i);\n\t\t if (code < 0x80) {\n\t\t bytes[index++] = code;\n\t\t } else if (code < 0x800) {\n\t\t bytes[index++] = (0xc0 | (code >> 6));\n\t\t bytes[index++] = (0x80 | (code & 0x3f));\n\t\t } else if (code < 0xd800 || code >= 0xe000) {\n\t\t bytes[index++] = (0xe0 | (code >> 12));\n\t\t bytes[index++] = (0x80 | ((code >> 6) & 0x3f));\n\t\t bytes[index++] = (0x80 | (code & 0x3f));\n\t\t } else {\n\t\t code = 0x10000 + (((code & 0x3ff) << 10) | (key.charCodeAt(++i) & 0x3ff));\n\t\t bytes[index++] = (0xf0 | (code >> 18));\n\t\t bytes[index++] = (0x80 | ((code >> 12) & 0x3f));\n\t\t bytes[index++] = (0x80 | ((code >> 6) & 0x3f));\n\t\t bytes[index++] = (0x80 | (code & 0x3f));\n\t\t }\n\t\t }\n\t\t key = bytes;\n\t\t } else {\n\t\t if (type === 'object') {\n\t\t if (key === null) {\n\t\t throw new Error(ERROR);\n\t\t } else if (ARRAY_BUFFER && key.constructor === ArrayBuffer) {\n\t\t key = new Uint8Array(key);\n\t\t } else if (!Array.isArray(key)) {\n\t\t if (!ARRAY_BUFFER || !ArrayBuffer.isView(key)) {\n\t\t throw new Error(ERROR);\n\t\t }\n\t\t }\n\t\t } else {\n\t\t throw new Error(ERROR);\n\t\t }\n\t\t }\n\n\t\t if (key.length > 64) {\n\t\t key = (new Sha256(is224, true)).update(key).array();\n\t\t }\n\n\t\t var oKeyPad = [], iKeyPad = [];\n\t\t for (i = 0; i < 64; ++i) {\n\t\t var b = key[i] || 0;\n\t\t oKeyPad[i] = 0x5c ^ b;\n\t\t iKeyPad[i] = 0x36 ^ b;\n\t\t }\n\n\t\t Sha256.call(this, is224, sharedMemory);\n\n\t\t this.update(iKeyPad);\n\t\t this.oKeyPad = oKeyPad;\n\t\t this.inner = true;\n\t\t this.sharedMemory = sharedMemory;\n\t\t }\n\t\t HmacSha256.prototype = new Sha256();\n\n\t\t HmacSha256.prototype.finalize = function () {\n\t\t Sha256.prototype.finalize.call(this);\n\t\t if (this.inner) {\n\t\t this.inner = false;\n\t\t var innerHash = this.array();\n\t\t Sha256.call(this, this.is224, this.sharedMemory);\n\t\t this.update(this.oKeyPad);\n\t\t this.update(innerHash);\n\t\t Sha256.prototype.finalize.call(this);\n\t\t }\n\t\t };\n\n\t\t var exports = createMethod();\n\t\t exports.sha256 = exports;\n\t\t exports.sha224 = createMethod(true);\n\t\t exports.sha256.hmac = createHmacMethod();\n\t\t exports.sha224.hmac = createHmacMethod(true);\n\n\t\t if (COMMON_JS) {\n\t\t module.exports = exports;\n\t\t } else {\n\t\t root.sha256 = exports.sha256;\n\t\t root.sha224 = exports.sha224;\n\t\t }\n\t\t})();\n\t} (sha256$1));\n\n\tvar sha256 = sha256$1.exports;\n\n\tif (typeof es6Promise_min.exports.Promise === 'undefined') {\n\t throw Error('Keycloak requires an environment that supports Promises. Make sure that you include the appropriate polyfill.');\n\t}\n\n\tvar loggedPromiseDeprecation = false;\n\n\tfunction logPromiseDeprecation() {\n\t if (!loggedPromiseDeprecation) {\n\t loggedPromiseDeprecation = true;\n\t console.warn('[KEYCLOAK] Usage of legacy style promise methods such as `.error()` and `.success()` has been deprecated and support will be removed in future versions. Use standard style promise methods such as `.then() and `.catch()` instead.');\n\t }\n\t}\n\n\tfunction Keycloak (config) {\n\t if (!(this instanceof Keycloak)) {\n\t return new Keycloak(config);\n\t }\n\n\t var kc = this;\n\t var adapter;\n\t var refreshQueue = [];\n\t var callbackStorage;\n\n\t var loginIframe = {\n\t enable: true,\n\t callbackList: [],\n\t interval: 5\n\t };\n\n\t var scripts = document.getElementsByTagName('script');\n\t for (var i = 0; i < scripts.length; i++) {\n\t if ((scripts[i].src.indexOf('keycloak.js') !== -1 || scripts[i].src.indexOf('keycloak.min.js') !== -1) && scripts[i].src.indexOf('version=') !== -1) {\n\t kc.iframeVersion = scripts[i].src.substring(scripts[i].src.indexOf('version=') + 8).split('&')[0];\n\t }\n\t }\n\n\t var useNonce = true;\n\t var logInfo = createLogger(console.info);\n\t var logWarn = createLogger(console.warn);\n\n\t kc.init = function (initOptions) {\n\t kc.authenticated = false;\n\n\t callbackStorage = createCallbackStorage();\n\t var adapters = ['default', 'cordova', 'cordova-native'];\n\n\t if (initOptions && adapters.indexOf(initOptions.adapter) > -1) {\n\t adapter = loadAdapter(initOptions.adapter);\n\t } else if (initOptions && typeof initOptions.adapter === \"object\") {\n\t adapter = initOptions.adapter;\n\t } else {\n\t if (window.Cordova || window.cordova) {\n\t adapter = loadAdapter('cordova');\n\t } else {\n\t adapter = loadAdapter();\n\t }\n\t }\n\n\t if (initOptions) {\n\t if (typeof initOptions.useNonce !== 'undefined') {\n\t useNonce = initOptions.useNonce;\n\t }\n\n\t if (typeof initOptions.checkLoginIframe !== 'undefined') {\n\t loginIframe.enable = initOptions.checkLoginIframe;\n\t }\n\n\t if (initOptions.checkLoginIframeInterval) {\n\t loginIframe.interval = initOptions.checkLoginIframeInterval;\n\t }\n\n\t if (initOptions.onLoad === 'login-required') {\n\t kc.loginRequired = true;\n\t }\n\n\t if (initOptions.responseMode) {\n\t if (initOptions.responseMode === 'query' || initOptions.responseMode === 'fragment') {\n\t kc.responseMode = initOptions.responseMode;\n\t } else {\n\t throw 'Invalid value for responseMode';\n\t }\n\t }\n\n\t if (initOptions.flow) {\n\t switch (initOptions.flow) {\n\t case 'standard':\n\t kc.responseType = 'code';\n\t break;\n\t case 'implicit':\n\t kc.responseType = 'id_token token';\n\t break;\n\t case 'hybrid':\n\t kc.responseType = 'code id_token token';\n\t break;\n\t default:\n\t throw 'Invalid value for flow';\n\t }\n\t kc.flow = initOptions.flow;\n\t }\n\n\t if (initOptions.timeSkew != null) {\n\t kc.timeSkew = initOptions.timeSkew;\n\t }\n\n\t if(initOptions.redirectUri) {\n\t kc.redirectUri = initOptions.redirectUri;\n\t }\n\n\t if (initOptions.silentCheckSsoRedirectUri) {\n\t kc.silentCheckSsoRedirectUri = initOptions.silentCheckSsoRedirectUri;\n\t }\n\n\t if (typeof initOptions.silentCheckSsoFallback === 'boolean') {\n\t kc.silentCheckSsoFallback = initOptions.silentCheckSsoFallback;\n\t } else {\n\t kc.silentCheckSsoFallback = true;\n\t }\n\n\t if (initOptions.pkceMethod) {\n\t if (initOptions.pkceMethod !== \"S256\") {\n\t throw 'Invalid value for pkceMethod';\n\t }\n\t kc.pkceMethod = initOptions.pkceMethod;\n\t }\n\n\t if (typeof initOptions.enableLogging === 'boolean') {\n\t kc.enableLogging = initOptions.enableLogging;\n\t } else {\n\t kc.enableLogging = false;\n\t }\n\n\t if (typeof initOptions.scope === 'string') {\n\t kc.scope = initOptions.scope;\n\t }\n\n\t if (typeof initOptions.messageReceiveTimeout === 'number' && initOptions.messageReceiveTimeout > 0) {\n\t kc.messageReceiveTimeout = initOptions.messageReceiveTimeout;\n\t } else {\n\t kc.messageReceiveTimeout = 10000;\n\t }\n\t }\n\n\t if (!kc.responseMode) {\n\t kc.responseMode = 'fragment';\n\t }\n\t if (!kc.responseType) {\n\t kc.responseType = 'code';\n\t kc.flow = 'standard';\n\t }\n\n\t var promise = createPromise();\n\n\t var initPromise = createPromise();\n\t initPromise.promise.then(function() {\n\t kc.onReady && kc.onReady(kc.authenticated);\n\t promise.setSuccess(kc.authenticated);\n\t }).catch(function(error) {\n\t promise.setError(error);\n\t });\n\n\t var configPromise = loadConfig();\n\n\t function onLoad() {\n\t var doLogin = function(prompt) {\n\t if (!prompt) {\n\t options.prompt = 'none';\n\t }\n\n\t kc.login(options).then(function () {\n\t initPromise.setSuccess();\n\t }).catch(function (error) {\n\t initPromise.setError(error);\n\t });\n\t };\n\n\t var checkSsoSilently = function() {\n\t var ifrm = document.createElement(\"iframe\");\n\t var src = kc.createLoginUrl({prompt: 'none', redirectUri: kc.silentCheckSsoRedirectUri});\n\t ifrm.setAttribute(\"src\", src);\n\t ifrm.setAttribute(\"title\", \"keycloak-silent-check-sso\");\n\t ifrm.style.display = \"none\";\n\t document.body.appendChild(ifrm);\n\n\t var messageCallback = function(event) {\n\t if (event.origin !== window.location.origin || ifrm.contentWindow !== event.source) {\n\t return;\n\t }\n\n\t var oauth = parseCallback(event.data);\n\t processCallback(oauth, initPromise);\n\n\t document.body.removeChild(ifrm);\n\t window.removeEventListener(\"message\", messageCallback);\n\t };\n\n\t window.addEventListener(\"message\", messageCallback);\n\t };\n\n\t var options = {};\n\t switch (initOptions.onLoad) {\n\t case 'check-sso':\n\t if (loginIframe.enable) {\n\t setupCheckLoginIframe().then(function() {\n\t checkLoginIframe().then(function (unchanged) {\n\t if (!unchanged) {\n\t kc.silentCheckSsoRedirectUri ? checkSsoSilently() : doLogin(false);\n\t } else {\n\t initPromise.setSuccess();\n\t }\n\t }).catch(function (error) {\n\t initPromise.setError(error);\n\t });\n\t });\n\t } else {\n\t kc.silentCheckSsoRedirectUri ? checkSsoSilently() : doLogin(false);\n\t }\n\t break;\n\t case 'login-required':\n\t doLogin(true);\n\t break;\n\t default:\n\t throw 'Invalid value for onLoad';\n\t }\n\t }\n\n\t function processInit() {\n\t var callback = parseCallback(window.location.href);\n\n\t if (callback) {\n\t window.history.replaceState(window.history.state, null, callback.newUrl);\n\t }\n\n\t if (callback && callback.valid) {\n\t return setupCheckLoginIframe().then(function() {\n\t processCallback(callback, initPromise);\n\t }).catch(function (error) {\n\t initPromise.setError(error);\n\t });\n\t } else if (initOptions) {\n\t if (initOptions.token && initOptions.refreshToken) {\n\t setToken(initOptions.token, initOptions.refreshToken, initOptions.idToken);\n\n\t if (loginIframe.enable) {\n\t setupCheckLoginIframe().then(function() {\n\t checkLoginIframe().then(function (unchanged) {\n\t if (unchanged) {\n\t kc.onAuthSuccess && kc.onAuthSuccess();\n\t initPromise.setSuccess();\n\t scheduleCheckIframe();\n\t } else {\n\t initPromise.setSuccess();\n\t }\n\t }).catch(function (error) {\n\t initPromise.setError(error);\n\t });\n\t });\n\t } else {\n\t kc.updateToken(-1).then(function() {\n\t kc.onAuthSuccess && kc.onAuthSuccess();\n\t initPromise.setSuccess();\n\t }).catch(function(error) {\n\t kc.onAuthError && kc.onAuthError();\n\t if (initOptions.onLoad) {\n\t onLoad();\n\t } else {\n\t initPromise.setError(error);\n\t }\n\t });\n\t }\n\t } else if (initOptions.onLoad) {\n\t onLoad();\n\t } else {\n\t initPromise.setSuccess();\n\t }\n\t } else {\n\t initPromise.setSuccess();\n\t }\n\t }\n\n\t function domReady() {\n\t var promise = createPromise();\n\n\t var checkReadyState = function () {\n\t if (document.readyState === 'interactive' || document.readyState === 'complete') {\n\t document.removeEventListener('readystatechange', checkReadyState);\n\t promise.setSuccess();\n\t }\n\t };\n\t document.addEventListener('readystatechange', checkReadyState);\n\n\t checkReadyState(); // just in case the event was already fired and we missed it (in case the init is done later than at the load time, i.e. it's done from code)\n\n\t return promise.promise;\n\t }\n\n\t configPromise.then(function () {\n\t domReady()\n\t .then(check3pCookiesSupported)\n\t .then(processInit)\n\t .catch(function (error) {\n\t promise.setError(error);\n\t });\n\t });\n\t configPromise.catch(function (error) {\n\t promise.setError(error);\n\t });\n\n\t return promise.promise;\n\t };\n\n\t kc.login = function (options) {\n\t return adapter.login(options);\n\t };\n\n\t function generateRandomData(len) {\n\t // use web crypto APIs if possible\n\t var array = null;\n\t var crypto = window.crypto || window.msCrypto;\n\t if (crypto && crypto.getRandomValues && window.Uint8Array) {\n\t array = new Uint8Array(len);\n\t crypto.getRandomValues(array);\n\t return array;\n\t }\n\n\t // fallback to Math random\n\t array = new Array(len);\n\t for (var j = 0; j < array.length; j++) {\n\t array[j] = Math.floor(256 * Math.random());\n\t }\n\t return array;\n\t }\n\n\t function generateCodeVerifier(len) {\n\t return generateRandomString(len, 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789');\n\t }\n\n\t function generateRandomString(len, alphabet){\n\t var randomData = generateRandomData(len);\n\t var chars = new Array(len);\n\t for (var i = 0; i < len; i++) {\n\t chars[i] = alphabet.charCodeAt(randomData[i] % alphabet.length);\n\t }\n\t return String.fromCharCode.apply(null, chars);\n\t }\n\n\t function generatePkceChallenge(pkceMethod, codeVerifier) {\n\t switch (pkceMethod) {\n\t // The use of the \"plain\" method is considered insecure and therefore not supported.\n\t case \"S256\":\n\t // hash codeVerifier, then encode as url-safe base64 without padding\n\t var hashBytes = new Uint8Array(sha256.arrayBuffer(codeVerifier));\n\t var encodedHash = base64Js.fromByteArray(hashBytes)\n\t .replace(/\\+/g, '-')\n\t .replace(/\\//g, '_')\n\t .replace(/\\=/g, '');\n\t return encodedHash;\n\t default:\n\t throw 'Invalid value for pkceMethod';\n\t }\n\t }\n\n\t function buildClaimsParameter(requestedAcr){\n\t var claims = {\n\t id_token: {\n\t acr: requestedAcr\n\t }\n\t };\n\t return JSON.stringify(claims);\n\t }\n\n\t kc.createLoginUrl = function(options) {\n\t var state = createUUID();\n\t var nonce = createUUID();\n\n\t var redirectUri = adapter.redirectUri(options);\n\n\t var callbackState = {\n\t state: state,\n\t nonce: nonce,\n\t redirectUri: encodeURIComponent(redirectUri)\n\t };\n\n\t if (options && options.prompt) {\n\t callbackState.prompt = options.prompt;\n\t }\n\n\t var baseUrl;\n\t if (options && options.action == 'register') {\n\t baseUrl = kc.endpoints.register();\n\t } else {\n\t baseUrl = kc.endpoints.authorize();\n\t }\n\n\t var scope = options && options.scope || kc.scope;\n\t if (!scope) {\n\t // if scope is not set, default to \"openid\"\n\t scope = \"openid\";\n\t } else if (scope.indexOf(\"openid\") === -1) {\n\t // if openid scope is missing, prefix the given scopes with it\n\t scope = \"openid \" + scope;\n\t }\n\n\t var url = baseUrl\n\t + '?client_id=' + encodeURIComponent(kc.clientId)\n\t + '&redirect_uri=' + encodeURIComponent(redirectUri)\n\t + '&state=' + encodeURIComponent(state)\n\t + '&response_mode=' + encodeURIComponent(kc.responseMode)\n\t + '&response_type=' + encodeURIComponent(kc.responseType)\n\t + '&scope=' + encodeURIComponent(scope);\n\t if (useNonce) {\n\t url = url + '&nonce=' + encodeURIComponent(nonce);\n\t }\n\n\t if (options && options.prompt) {\n\t url += '&prompt=' + encodeURIComponent(options.prompt);\n\t }\n\n\t if (options && options.maxAge) {\n\t url += '&max_age=' + encodeURIComponent(options.maxAge);\n\t }\n\n\t if (options && options.loginHint) {\n\t url += '&login_hint=' + encodeURIComponent(options.loginHint);\n\t }\n\n\t if (options && options.idpHint) {\n\t url += '&kc_idp_hint=' + encodeURIComponent(options.idpHint);\n\t }\n\n\t if (options && options.action && options.action != 'register') {\n\t url += '&kc_action=' + encodeURIComponent(options.action);\n\t }\n\n\t if (options && options.locale) {\n\t url += '&ui_locales=' + encodeURIComponent(options.locale);\n\t }\n\n\t if (options && options.acr) {\n\t var claimsParameter = buildClaimsParameter(options.acr);\n\t url += '&claims=' + encodeURIComponent(claimsParameter);\n\t }\n\n\t if (kc.pkceMethod) {\n\t var codeVerifier = generateCodeVerifier(96);\n\t callbackState.pkceCodeVerifier = codeVerifier;\n\t var pkceChallenge = generatePkceChallenge(kc.pkceMethod, codeVerifier);\n\t url += '&code_challenge=' + pkceChallenge;\n\t url += '&code_challenge_method=' + kc.pkceMethod;\n\t }\n\n\t callbackStorage.add(callbackState);\n\n\t return url;\n\t };\n\n\t kc.logout = function(options) {\n\t return adapter.logout(options);\n\t };\n\n\t kc.createLogoutUrl = function(options) {\n\t var url = kc.endpoints.logout()\n\t + '?client_id=' + encodeURIComponent(kc.clientId)\n\t + '&post_logout_redirect_uri=' + encodeURIComponent(adapter.redirectUri(options, false));\n\n\t if (kc.idToken) {\n\t url += '&id_token_hint=' + encodeURIComponent(kc.idToken);\n\t }\n\n\t return url;\n\t };\n\n\t kc.register = function (options) {\n\t return adapter.register(options);\n\t };\n\n\t kc.createRegisterUrl = function(options) {\n\t if (!options) {\n\t options = {};\n\t }\n\t options.action = 'register';\n\t return kc.createLoginUrl(options);\n\t };\n\n\t kc.createAccountUrl = function(options) {\n\t var realm = getRealmUrl();\n\t var url = undefined;\n\t if (typeof realm !== 'undefined') {\n\t url = realm\n\t + '/account'\n\t + '?referrer=' + encodeURIComponent(kc.clientId)\n\t + '&referrer_uri=' + encodeURIComponent(adapter.redirectUri(options));\n\t }\n\t return url;\n\t };\n\n\t kc.accountManagement = function() {\n\t return adapter.accountManagement();\n\t };\n\n\t kc.hasRealmRole = function (role) {\n\t var access = kc.realmAccess;\n\t return !!access && access.roles.indexOf(role) >= 0;\n\t };\n\n\t kc.hasResourceRole = function(role, resource) {\n\t if (!kc.resourceAccess) {\n\t return false;\n\t }\n\n\t var access = kc.resourceAccess[resource || kc.clientId];\n\t return !!access && access.roles.indexOf(role) >= 0;\n\t };\n\n\t kc.loadUserProfile = function() {\n\t var url = getRealmUrl() + '/account';\n\t var req = new XMLHttpRequest();\n\t req.open('GET', url, true);\n\t req.setRequestHeader('Accept', 'application/json');\n\t req.setRequestHeader('Authorization', 'bearer ' + kc.token);\n\n\t var promise = createPromise();\n\n\t req.onreadystatechange = function () {\n\t if (req.readyState == 4) {\n\t if (req.status == 200) {\n\t kc.profile = JSON.parse(req.responseText);\n\t promise.setSuccess(kc.profile);\n\t } else {\n\t promise.setError();\n\t }\n\t }\n\t };\n\n\t req.send();\n\n\t return promise.promise;\n\t };\n\n\t kc.loadUserInfo = function() {\n\t var url = kc.endpoints.userinfo();\n\t var req = new XMLHttpRequest();\n\t req.open('GET', url, true);\n\t req.setRequestHeader('Accept', 'application/json');\n\t req.setRequestHeader('Authorization', 'bearer ' + kc.token);\n\n\t var promise = createPromise();\n\n\t req.onreadystatechange = function () {\n\t if (req.readyState == 4) {\n\t if (req.status == 200) {\n\t kc.userInfo = JSON.parse(req.responseText);\n\t promise.setSuccess(kc.userInfo);\n\t } else {\n\t promise.setError();\n\t }\n\t }\n\t };\n\n\t req.send();\n\n\t return promise.promise;\n\t };\n\n\t kc.isTokenExpired = function(minValidity) {\n\t if (!kc.tokenParsed || (!kc.refreshToken && kc.flow != 'implicit' )) {\n\t throw 'Not authenticated';\n\t }\n\n\t if (kc.timeSkew == null) {\n\t logInfo('[KEYCLOAK] Unable to determine if token is expired as timeskew is not set');\n\t return true;\n\t }\n\n\t var expiresIn = kc.tokenParsed['exp'] - Math.ceil(new Date().getTime() / 1000) + kc.timeSkew;\n\t if (minValidity) {\n\t if (isNaN(minValidity)) {\n\t throw 'Invalid minValidity';\n\t }\n\t expiresIn -= minValidity;\n\t }\n\t return expiresIn < 0;\n\t };\n\n\t kc.updateToken = function(minValidity) {\n\t var promise = createPromise();\n\n\t if (!kc.refreshToken) {\n\t promise.setError();\n\t return promise.promise;\n\t }\n\n\t minValidity = minValidity || 5;\n\n\t var exec = function() {\n\t var refreshToken = false;\n\t if (minValidity == -1) {\n\t refreshToken = true;\n\t logInfo('[KEYCLOAK] Refreshing token: forced refresh');\n\t } else if (!kc.tokenParsed || kc.isTokenExpired(minValidity)) {\n\t refreshToken = true;\n\t logInfo('[KEYCLOAK] Refreshing token: token expired');\n\t }\n\n\t if (!refreshToken) {\n\t promise.setSuccess(false);\n\t } else {\n\t var params = 'grant_type=refresh_token&' + 'refresh_token=' + kc.refreshToken;\n\t var url = kc.endpoints.token();\n\n\t refreshQueue.push(promise);\n\n\t if (refreshQueue.length == 1) {\n\t var req = new XMLHttpRequest();\n\t req.open('POST', url, true);\n\t req.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');\n\t req.withCredentials = true;\n\n\t params += '&client_id=' + encodeURIComponent(kc.clientId);\n\n\t var timeLocal = new Date().getTime();\n\n\t req.onreadystatechange = function () {\n\t if (req.readyState == 4) {\n\t if (req.status == 200) {\n\t logInfo('[KEYCLOAK] Token refreshed');\n\n\t timeLocal = (timeLocal + new Date().getTime()) / 2;\n\n\t var tokenResponse = JSON.parse(req.responseText);\n\n\t setToken(tokenResponse['access_token'], tokenResponse['refresh_token'], tokenResponse['id_token'], timeLocal);\n\n\t kc.onAuthRefreshSuccess && kc.onAuthRefreshSuccess();\n\t for (var p = refreshQueue.pop(); p != null; p = refreshQueue.pop()) {\n\t p.setSuccess(true);\n\t }\n\t } else {\n\t logWarn('[KEYCLOAK] Failed to refresh token');\n\n\t if (req.status == 400) {\n\t kc.clearToken();\n\t }\n\n\t kc.onAuthRefreshError && kc.onAuthRefreshError();\n\t for (var p = refreshQueue.pop(); p != null; p = refreshQueue.pop()) {\n\t p.setError(true);\n\t }\n\t }\n\t }\n\t };\n\n\t req.send(params);\n\t }\n\t }\n\t };\n\n\t if (loginIframe.enable) {\n\t var iframePromise = checkLoginIframe();\n\t iframePromise.then(function() {\n\t exec();\n\t }).catch(function(error) {\n\t promise.setError(error);\n\t });\n\t } else {\n\t exec();\n\t }\n\n\t return promise.promise;\n\t };\n\n\t kc.clearToken = function() {\n\t if (kc.token) {\n\t setToken(null, null, null);\n\t kc.onAuthLogout && kc.onAuthLogout();\n\t if (kc.loginRequired) {\n\t kc.login();\n\t }\n\t }\n\t };\n\n\t function getRealmUrl() {\n\t if (typeof kc.authServerUrl !== 'undefined') {\n\t if (kc.authServerUrl.charAt(kc.authServerUrl.length - 1) == '/') {\n\t return kc.authServerUrl + 'realms/' + encodeURIComponent(kc.realm);\n\t } else {\n\t return kc.authServerUrl + '/realms/' + encodeURIComponent(kc.realm);\n\t }\n\t } else {\n\t return undefined;\n\t }\n\t }\n\n\t function getOrigin() {\n\t if (!window.location.origin) {\n\t return window.location.protocol + \"//\" + window.location.hostname + (window.location.port ? ':' + window.location.port: '');\n\t } else {\n\t return window.location.origin;\n\t }\n\t }\n\n\t function processCallback(oauth, promise) {\n\t var code = oauth.code;\n\t var error = oauth.error;\n\t var prompt = oauth.prompt;\n\n\t var timeLocal = new Date().getTime();\n\n\t if (oauth['kc_action_status']) {\n\t kc.onActionUpdate && kc.onActionUpdate(oauth['kc_action_status']);\n\t }\n\n\t if (error) {\n\t if (prompt != 'none') {\n\t var errorData = { error: error, error_description: oauth.error_description };\n\t kc.onAuthError && kc.onAuthError(errorData);\n\t promise && promise.setError(errorData);\n\t } else {\n\t promise && promise.setSuccess();\n\t }\n\t return;\n\t } else if ((kc.flow != 'standard') && (oauth.access_token || oauth.id_token)) {\n\t authSuccess(oauth.access_token, null, oauth.id_token, true);\n\t }\n\n\t if ((kc.flow != 'implicit') && code) {\n\t var params = 'code=' + code + '&grant_type=authorization_code';\n\t var url = kc.endpoints.token();\n\n\t var req = new XMLHttpRequest();\n\t req.open('POST', url, true);\n\t req.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');\n\n\t params += '&client_id=' + encodeURIComponent(kc.clientId);\n\t params += '&redirect_uri=' + oauth.redirectUri;\n\n\t if (oauth.pkceCodeVerifier) {\n\t params += '&code_verifier=' + oauth.pkceCodeVerifier;\n\t }\n\n\t req.withCredentials = true;\n\n\t req.onreadystatechange = function() {\n\t if (req.readyState == 4) {\n\t if (req.status == 200) {\n\n\t var tokenResponse = JSON.parse(req.responseText);\n\t authSuccess(tokenResponse['access_token'], tokenResponse['refresh_token'], tokenResponse['id_token'], kc.flow === 'standard');\n\t scheduleCheckIframe();\n\t } else {\n\t kc.onAuthError && kc.onAuthError();\n\t promise && promise.setError();\n\t }\n\t }\n\t };\n\n\t req.send(params);\n\t }\n\n\t function authSuccess(accessToken, refreshToken, idToken, fulfillPromise) {\n\t timeLocal = (timeLocal + new Date().getTime()) / 2;\n\n\t setToken(accessToken, refreshToken, idToken, timeLocal);\n\n\t if (useNonce && ((kc.tokenParsed && kc.tokenParsed.nonce != oauth.storedNonce) ||\n\t (kc.refreshTokenParsed && kc.refreshTokenParsed.nonce != oauth.storedNonce) ||\n\t (kc.idTokenParsed && kc.idTokenParsed.nonce != oauth.storedNonce))) {\n\n\t logInfo('[KEYCLOAK] Invalid nonce, clearing token');\n\t kc.clearToken();\n\t promise && promise.setError();\n\t } else {\n\t if (fulfillPromise) {\n\t kc.onAuthSuccess && kc.onAuthSuccess();\n\t promise && promise.setSuccess();\n\t }\n\t }\n\t }\n\n\t }\n\n\t function loadConfig(url) {\n\t var promise = createPromise();\n\t var configUrl;\n\n\t if (!config) {\n\t configUrl = 'keycloak.json';\n\t } else if (typeof config === 'string') {\n\t configUrl = config;\n\t }\n\n\t function setupOidcEndoints(oidcConfiguration) {\n\t if (! oidcConfiguration) {\n\t kc.endpoints = {\n\t authorize: function() {\n\t return getRealmUrl() + '/protocol/openid-connect/auth';\n\t },\n\t token: function() {\n\t return getRealmUrl() + '/protocol/openid-connect/token';\n\t },\n\t logout: function() {\n\t return getRealmUrl() + '/protocol/openid-connect/logout';\n\t },\n\t checkSessionIframe: function() {\n\t var src = getRealmUrl() + '/protocol/openid-connect/login-status-iframe.html';\n\t if (kc.iframeVersion) {\n\t src = src + '?version=' + kc.iframeVersion;\n\t }\n\t return src;\n\t },\n\t thirdPartyCookiesIframe: function() {\n\t var src = getRealmUrl() + '/protocol/openid-connect/3p-cookies/step1.html';\n\t if (kc.iframeVersion) {\n\t src = src + '?version=' + kc.iframeVersion;\n\t }\n\t return src;\n\t },\n\t register: function() {\n\t return getRealmUrl() + '/protocol/openid-connect/registrations';\n\t },\n\t userinfo: function() {\n\t return getRealmUrl() + '/protocol/openid-connect/userinfo';\n\t }\n\t };\n\t } else {\n\t kc.endpoints = {\n\t authorize: function() {\n\t return oidcConfiguration.authorization_endpoint;\n\t },\n\t token: function() {\n\t return oidcConfiguration.token_endpoint;\n\t },\n\t logout: function() {\n\t if (!oidcConfiguration.end_session_endpoint) {\n\t throw \"Not supported by the OIDC server\";\n\t }\n\t return oidcConfiguration.end_session_endpoint;\n\t },\n\t checkSessionIframe: function() {\n\t if (!oidcConfiguration.check_session_iframe) {\n\t throw \"Not supported by the OIDC server\";\n\t }\n\t return oidcConfiguration.check_session_iframe;\n\t },\n\t register: function() {\n\t throw 'Redirection to \"Register user\" page not supported in standard OIDC mode';\n\t },\n\t userinfo: function() {\n\t if (!oidcConfiguration.userinfo_endpoint) {\n\t throw \"Not supported by the OIDC server\";\n\t }\n\t return oidcConfiguration.userinfo_endpoint;\n\t }\n\t };\n\t }\n\t }\n\n\t if (configUrl) {\n\t var req = new XMLHttpRequest();\n\t req.open('GET', configUrl, true);\n\t req.setRequestHeader('Accept', 'application/json');\n\n\t req.onreadystatechange = function () {\n\t if (req.readyState == 4) {\n\t if (req.status == 200 || fileLoaded(req)) {\n\t var config = JSON.parse(req.responseText);\n\n\t kc.authServerUrl = config['auth-server-url'];\n\t kc.realm = config['realm'];\n\t kc.clientId = config['resource'];\n\t setupOidcEndoints(null);\n\t promise.setSuccess();\n\t } else {\n\t promise.setError();\n\t }\n\t }\n\t };\n\n\t req.send();\n\t } else {\n\t if (!config.clientId) {\n\t throw 'clientId missing';\n\t }\n\n\t kc.clientId = config.clientId;\n\n\t var oidcProvider = config['oidcProvider'];\n\t if (!oidcProvider) {\n\t if (!config['url']) {\n\t var scripts = document.getElementsByTagName('script');\n\t for (var i = 0; i < scripts.length; i++) {\n\t if (scripts[i].src.match(/.*keycloak\\.js/)) {\n\t config.url = scripts[i].src.substr(0, scripts[i].src.indexOf('/js/keycloak.js'));\n\t break;\n\t }\n\t }\n\t }\n\t if (!config.realm) {\n\t throw 'realm missing';\n\t }\n\n\t kc.authServerUrl = config.url;\n\t kc.realm = config.realm;\n\t setupOidcEndoints(null);\n\t promise.setSuccess();\n\t } else {\n\t if (typeof oidcProvider === 'string') {\n\t var oidcProviderConfigUrl;\n\t if (oidcProvider.charAt(oidcProvider.length - 1) == '/') {\n\t oidcProviderConfigUrl = oidcProvider + '.well-known/openid-configuration';\n\t } else {\n\t oidcProviderConfigUrl = oidcProvider + '/.well-known/openid-configuration';\n\t }\n\t var req = new XMLHttpRequest();\n\t req.open('GET', oidcProviderConfigUrl, true);\n\t req.setRequestHeader('Accept', 'application/json');\n\n\t req.onreadystatechange = function () {\n\t if (req.readyState == 4) {\n\t if (req.status == 200 || fileLoaded(req)) {\n\t var oidcProviderConfig = JSON.parse(req.responseText);\n\t setupOidcEndoints(oidcProviderConfig);\n\t promise.setSuccess();\n\t } else {\n\t promise.setError();\n\t }\n\t }\n\t };\n\n\t req.send();\n\t } else {\n\t setupOidcEndoints(oidcProvider);\n\t promise.setSuccess();\n\t }\n\t }\n\t }\n\n\t return promise.promise;\n\t }\n\n\t function fileLoaded(xhr) {\n\t return xhr.status == 0 && xhr.responseText && xhr.responseURL.startsWith('file:');\n\t }\n\n\t function setToken(token, refreshToken, idToken, timeLocal) {\n\t if (kc.tokenTimeoutHandle) {\n\t clearTimeout(kc.tokenTimeoutHandle);\n\t kc.tokenTimeoutHandle = null;\n\t }\n\n\t if (refreshToken) {\n\t kc.refreshToken = refreshToken;\n\t kc.refreshTokenParsed = decodeToken(refreshToken);\n\t } else {\n\t delete kc.refreshToken;\n\t delete kc.refreshTokenParsed;\n\t }\n\n\t if (idToken) {\n\t kc.idToken = idToken;\n\t kc.idTokenParsed = decodeToken(idToken);\n\t } else {\n\t delete kc.idToken;\n\t delete kc.idTokenParsed;\n\t }\n\n\t if (token) {\n\t kc.token = token;\n\t kc.tokenParsed = decodeToken(token);\n\t kc.sessionId = kc.tokenParsed.session_state;\n\t kc.authenticated = true;\n\t kc.subject = kc.tokenParsed.sub;\n\t kc.realmAccess = kc.tokenParsed.realm_access;\n\t kc.resourceAccess = kc.tokenParsed.resource_access;\n\n\t if (timeLocal) {\n\t kc.timeSkew = Math.floor(timeLocal / 1000) - kc.tokenParsed.iat;\n\t }\n\n\t if (kc.timeSkew != null) {\n\t logInfo('[KEYCLOAK] Estimated time difference between browser and server is ' + kc.timeSkew + ' seconds');\n\n\t if (kc.onTokenExpired) {\n\t var expiresIn = (kc.tokenParsed['exp'] - (new Date().getTime() / 1000) + kc.timeSkew) * 1000;\n\t logInfo('[KEYCLOAK] Token expires in ' + Math.round(expiresIn / 1000) + ' s');\n\t if (expiresIn <= 0) {\n\t kc.onTokenExpired();\n\t } else {\n\t kc.tokenTimeoutHandle = setTimeout(kc.onTokenExpired, expiresIn);\n\t }\n\t }\n\t }\n\t } else {\n\t delete kc.token;\n\t delete kc.tokenParsed;\n\t delete kc.subject;\n\t delete kc.realmAccess;\n\t delete kc.resourceAccess;\n\n\t kc.authenticated = false;\n\t }\n\t }\n\n\t function decodeToken(str) {\n\t str = str.split('.')[1];\n\n\t str = str.replace(/-/g, '+');\n\t str = str.replace(/_/g, '/');\n\t switch (str.length % 4) {\n\t case 0:\n\t break;\n\t case 2:\n\t str += '==';\n\t break;\n\t case 3:\n\t str += '=';\n\t break;\n\t default:\n\t throw 'Invalid token';\n\t }\n\n\t str = decodeURIComponent(escape(atob(str)));\n\n\t str = JSON.parse(str);\n\t return str;\n\t }\n\n\t function createUUID() {\n\t var hexDigits = '0123456789abcdef';\n\t var s = generateRandomString(36, hexDigits).split(\"\");\n\t s[14] = '4';\n\t s[19] = hexDigits.substr((s[19] & 0x3) | 0x8, 1);\n\t s[8] = s[13] = s[18] = s[23] = '-';\n\t var uuid = s.join('');\n\t return uuid;\n\t }\n\n\t function parseCallback(url) {\n\t var oauth = parseCallbackUrl(url);\n\t if (!oauth) {\n\t return;\n\t }\n\n\t var oauthState = callbackStorage.get(oauth.state);\n\n\t if (oauthState) {\n\t oauth.valid = true;\n\t oauth.redirectUri = oauthState.redirectUri;\n\t oauth.storedNonce = oauthState.nonce;\n\t oauth.prompt = oauthState.prompt;\n\t oauth.pkceCodeVerifier = oauthState.pkceCodeVerifier;\n\t }\n\n\t return oauth;\n\t }\n\n\t function parseCallbackUrl(url) {\n\t var supportedParams;\n\t switch (kc.flow) {\n\t case 'standard':\n\t supportedParams = ['code', 'state', 'session_state', 'kc_action_status'];\n\t break;\n\t case 'implicit':\n\t supportedParams = ['access_token', 'token_type', 'id_token', 'state', 'session_state', 'expires_in', 'kc_action_status'];\n\t break;\n\t case 'hybrid':\n\t supportedParams = ['access_token', 'token_type', 'id_token', 'code', 'state', 'session_state', 'expires_in', 'kc_action_status'];\n\t break;\n\t }\n\n\t supportedParams.push('error');\n\t supportedParams.push('error_description');\n\t supportedParams.push('error_uri');\n\n\t var queryIndex = url.indexOf('?');\n\t var fragmentIndex = url.indexOf('#');\n\n\t var newUrl;\n\t var parsed;\n\n\t if (kc.responseMode === 'query' && queryIndex !== -1) {\n\t newUrl = url.substring(0, queryIndex);\n\t parsed = parseCallbackParams(url.substring(queryIndex + 1, fragmentIndex !== -1 ? fragmentIndex : url.length), supportedParams);\n\t if (parsed.paramsString !== '') {\n\t newUrl += '?' + parsed.paramsString;\n\t }\n\t if (fragmentIndex !== -1) {\n\t newUrl += url.substring(fragmentIndex);\n\t }\n\t } else if (kc.responseMode === 'fragment' && fragmentIndex !== -1) {\n\t newUrl = url.substring(0, fragmentIndex);\n\t parsed = parseCallbackParams(url.substring(fragmentIndex + 1), supportedParams);\n\t if (parsed.paramsString !== '') {\n\t newUrl += '#' + parsed.paramsString;\n\t }\n\t }\n\n\t if (parsed && parsed.oauthParams) {\n\t if (kc.flow === 'standard' || kc.flow === 'hybrid') {\n\t if ((parsed.oauthParams.code || parsed.oauthParams.error) && parsed.oauthParams.state) {\n\t parsed.oauthParams.newUrl = newUrl;\n\t return parsed.oauthParams;\n\t }\n\t } else if (kc.flow === 'implicit') {\n\t if ((parsed.oauthParams.access_token || parsed.oauthParams.error) && parsed.oauthParams.state) {\n\t parsed.oauthParams.newUrl = newUrl;\n\t return parsed.oauthParams;\n\t }\n\t }\n\t }\n\t }\n\n\t function parseCallbackParams(paramsString, supportedParams) {\n\t var p = paramsString.split('&');\n\t var result = {\n\t paramsString: '',\n\t oauthParams: {}\n\t };\n\t for (var i = 0; i < p.length; i++) {\n\t var split = p[i].indexOf(\"=\");\n\t var key = p[i].slice(0, split);\n\t if (supportedParams.indexOf(key) !== -1) {\n\t result.oauthParams[key] = p[i].slice(split + 1);\n\t } else {\n\t if (result.paramsString !== '') {\n\t result.paramsString += '&';\n\t }\n\t result.paramsString += p[i];\n\t }\n\t }\n\t return result;\n\t }\n\n\t function createPromise() {\n\t // Need to create a native Promise which also preserves the\n\t // interface of the custom promise type previously used by the API\n\t var p = {\n\t setSuccess: function(result) {\n\t p.resolve(result);\n\t },\n\n\t setError: function(result) {\n\t p.reject(result);\n\t }\n\t };\n\t p.promise = new es6Promise_min.exports.Promise(function(resolve, reject) {\n\t p.resolve = resolve;\n\t p.reject = reject;\n\t });\n\n\t p.promise.success = function(callback) {\n\t logPromiseDeprecation();\n\n\t this.then(function handleSuccess(value) {\n\t callback(value);\n\t });\n\n\t return this;\n\t };\n\n\t p.promise.error = function(callback) {\n\t logPromiseDeprecation();\n\n\t this.catch(function handleError(error) {\n\t callback(error);\n\t });\n\n\t return this;\n\t };\n\n\t return p;\n\t }\n\n\t // Function to extend existing native Promise with timeout\n\t function applyTimeoutToPromise(promise, timeout, errorMessage) {\n\t var timeoutHandle = null;\n\t var timeoutPromise = new es6Promise_min.exports.Promise(function (resolve, reject) {\n\t timeoutHandle = setTimeout(function () {\n\t reject({ \"error\": errorMessage || \"Promise is not settled within timeout of \" + timeout + \"ms\" });\n\t }, timeout);\n\t });\n\n\t return es6Promise_min.exports.Promise.race([promise, timeoutPromise]).finally(function () {\n\t clearTimeout(timeoutHandle);\n\t });\n\t }\n\n\t function setupCheckLoginIframe() {\n\t var promise = createPromise();\n\n\t if (!loginIframe.enable) {\n\t promise.setSuccess();\n\t return promise.promise;\n\t }\n\n\t if (loginIframe.iframe) {\n\t promise.setSuccess();\n\t return promise.promise;\n\t }\n\n\t var iframe = document.createElement('iframe');\n\t loginIframe.iframe = iframe;\n\n\t iframe.onload = function() {\n\t var authUrl = kc.endpoints.authorize();\n\t if (authUrl.charAt(0) === '/') {\n\t loginIframe.iframeOrigin = getOrigin();\n\t } else {\n\t loginIframe.iframeOrigin = authUrl.substring(0, authUrl.indexOf('/', 8));\n\t }\n\t promise.setSuccess();\n\t };\n\n\t var src = kc.endpoints.checkSessionIframe();\n\t iframe.setAttribute('src', src );\n\t iframe.setAttribute('title', 'keycloak-session-iframe' );\n\t iframe.style.display = 'none';\n\t document.body.appendChild(iframe);\n\n\t var messageCallback = function(event) {\n\t if ((event.origin !== loginIframe.iframeOrigin) || (loginIframe.iframe.contentWindow !== event.source)) {\n\t return;\n\t }\n\n\t if (!(event.data == 'unchanged' || event.data == 'changed' || event.data == 'error')) {\n\t return;\n\t }\n\n\n\t if (event.data != 'unchanged') {\n\t kc.clearToken();\n\t }\n\n\t var callbacks = loginIframe.callbackList.splice(0, loginIframe.callbackList.length);\n\n\t for (var i = callbacks.length - 1; i >= 0; --i) {\n\t var promise = callbacks[i];\n\t if (event.data == 'error') {\n\t promise.setError();\n\t } else {\n\t promise.setSuccess(event.data == 'unchanged');\n\t }\n\t }\n\t };\n\n\t window.addEventListener('message', messageCallback, false);\n\n\t return promise.promise;\n\t }\n\n\t function scheduleCheckIframe() {\n\t if (loginIframe.enable) {\n\t if (kc.token) {\n\t setTimeout(function() {\n\t checkLoginIframe().then(function(unchanged) {\n\t if (unchanged) {\n\t scheduleCheckIframe();\n\t }\n\t });\n\t }, loginIframe.interval * 1000);\n\t }\n\t }\n\t }\n\n\t function checkLoginIframe() {\n\t var promise = createPromise();\n\n\t if (loginIframe.iframe && loginIframe.iframeOrigin ) {\n\t var msg = kc.clientId + ' ' + (kc.sessionId ? kc.sessionId : '');\n\t loginIframe.callbackList.push(promise);\n\t var origin = loginIframe.iframeOrigin;\n\t if (loginIframe.callbackList.length == 1) {\n\t loginIframe.iframe.contentWindow.postMessage(msg, origin);\n\t }\n\t } else {\n\t promise.setSuccess();\n\t }\n\n\t return promise.promise;\n\t }\n\n\t function check3pCookiesSupported() {\n\t var promise = createPromise();\n\n\t if (loginIframe.enable || kc.silentCheckSsoRedirectUri) {\n\t var iframe = document.createElement('iframe');\n\t iframe.setAttribute('src', kc.endpoints.thirdPartyCookiesIframe());\n\t iframe.setAttribute('title', 'keycloak-3p-check-iframe' );\n\t iframe.style.display = 'none';\n\t document.body.appendChild(iframe);\n\n\t var messageCallback = function(event) {\n\t if (iframe.contentWindow !== event.source) {\n\t return;\n\t }\n\n\t if (event.data !== \"supported\" && event.data !== \"unsupported\") {\n\t return;\n\t } else if (event.data === \"unsupported\") {\n\t loginIframe.enable = false;\n\t if (kc.silentCheckSsoFallback) {\n\t kc.silentCheckSsoRedirectUri = false;\n\t }\n\t logWarn(\"[KEYCLOAK] 3rd party cookies aren't supported by this browser. checkLoginIframe and \" +\n\t \"silent check-sso are not available.\");\n\t }\n\n\t document.body.removeChild(iframe);\n\t window.removeEventListener(\"message\", messageCallback);\n\t promise.setSuccess();\n\t };\n\n\t window.addEventListener('message', messageCallback, false);\n\t } else {\n\t promise.setSuccess();\n\t }\n\n\t return applyTimeoutToPromise(promise.promise, kc.messageReceiveTimeout, \"Timeout when waiting for 3rd party check iframe message.\");\n\t }\n\n\t function loadAdapter(type) {\n\t if (!type || type == 'default') {\n\t return {\n\t login: function(options) {\n\t window.location.replace(kc.createLoginUrl(options));\n\t return createPromise().promise;\n\t },\n\n\t logout: function(options) {\n\t window.location.replace(kc.createLogoutUrl(options));\n\t return createPromise().promise;\n\t },\n\n\t register: function(options) {\n\t window.location.replace(kc.createRegisterUrl(options));\n\t return createPromise().promise;\n\t },\n\n\t accountManagement : function() {\n\t var accountUrl = kc.createAccountUrl();\n\t if (typeof accountUrl !== 'undefined') {\n\t window.location.href = accountUrl;\n\t } else {\n\t throw \"Not supported by the OIDC server\";\n\t }\n\t return createPromise().promise;\n\t },\n\n\t redirectUri: function(options, encodeHash) {\n\n\t if (options && options.redirectUri) {\n\t return options.redirectUri;\n\t } else if (kc.redirectUri) {\n\t return kc.redirectUri;\n\t } else {\n\t return location.href;\n\t }\n\t }\n\t };\n\t }\n\n\t if (type == 'cordova') {\n\t loginIframe.enable = false;\n\t var cordovaOpenWindowWrapper = function(loginUrl, target, options) {\n\t if (window.cordova && window.cordova.InAppBrowser) {\n\t // Use inappbrowser for IOS and Android if available\n\t return window.cordova.InAppBrowser.open(loginUrl, target, options);\n\t } else {\n\t return window.open(loginUrl, target, options);\n\t }\n\t };\n\n\t var shallowCloneCordovaOptions = function (userOptions) {\n\t if (userOptions && userOptions.cordovaOptions) {\n\t return Object.keys(userOptions.cordovaOptions).reduce(function (options, optionName) {\n\t options[optionName] = userOptions.cordovaOptions[optionName];\n\t return options;\n\t }, {});\n\t } else {\n\t return {};\n\t }\n\t };\n\n\t var formatCordovaOptions = function (cordovaOptions) {\n\t return Object.keys(cordovaOptions).reduce(function (options, optionName) {\n\t options.push(optionName+\"=\"+cordovaOptions[optionName]);\n\t return options;\n\t }, []).join(\",\");\n\t };\n\n\t var createCordovaOptions = function (userOptions) {\n\t var cordovaOptions = shallowCloneCordovaOptions(userOptions);\n\t cordovaOptions.location = 'no';\n\t if (userOptions && userOptions.prompt == 'none') {\n\t cordovaOptions.hidden = 'yes';\n\t }\n\t return formatCordovaOptions(cordovaOptions);\n\t };\n\n\t return {\n\t login: function(options) {\n\t var promise = createPromise();\n\n\t var cordovaOptions = createCordovaOptions(options);\n\t var loginUrl = kc.createLoginUrl(options);\n\t var ref = cordovaOpenWindowWrapper(loginUrl, '_blank', cordovaOptions);\n\t var completed = false;\n\n\t var closed = false;\n\t var closeBrowser = function() {\n\t closed = true;\n\t ref.close();\n\t };\n\n\t ref.addEventListener('loadstart', function(event) {\n\t if (event.url.indexOf('http://localhost') == 0) {\n\t var callback = parseCallback(event.url);\n\t processCallback(callback, promise);\n\t closeBrowser();\n\t completed = true;\n\t }\n\t });\n\n\t ref.addEventListener('loaderror', function(event) {\n\t if (!completed) {\n\t if (event.url.indexOf('http://localhost') == 0) {\n\t var callback = parseCallback(event.url);\n\t processCallback(callback, promise);\n\t closeBrowser();\n\t completed = true;\n\t } else {\n\t promise.setError();\n\t closeBrowser();\n\t }\n\t }\n\t });\n\n\t ref.addEventListener('exit', function(event) {\n\t if (!closed) {\n\t promise.setError({\n\t reason: \"closed_by_user\"\n\t });\n\t }\n\t });\n\n\t return promise.promise;\n\t },\n\n\t logout: function(options) {\n\t var promise = createPromise();\n\n\t var logoutUrl = kc.createLogoutUrl(options);\n\t var ref = cordovaOpenWindowWrapper(logoutUrl, '_blank', 'location=no,hidden=yes,clearcache=yes');\n\n\t var error;\n\n\t ref.addEventListener('loadstart', function(event) {\n\t if (event.url.indexOf('http://localhost') == 0) {\n\t ref.close();\n\t }\n\t });\n\n\t ref.addEventListener('loaderror', function(event) {\n\t if (event.url.indexOf('http://localhost') == 0) {\n\t ref.close();\n\t } else {\n\t error = true;\n\t ref.close();\n\t }\n\t });\n\n\t ref.addEventListener('exit', function(event) {\n\t if (error) {\n\t promise.setError();\n\t } else {\n\t kc.clearToken();\n\t promise.setSuccess();\n\t }\n\t });\n\n\t return promise.promise;\n\t },\n\n\t register : function(options) {\n\t var promise = createPromise();\n\t var registerUrl = kc.createRegisterUrl();\n\t var cordovaOptions = createCordovaOptions(options);\n\t var ref = cordovaOpenWindowWrapper(registerUrl, '_blank', cordovaOptions);\n\t ref.addEventListener('loadstart', function(event) {\n\t if (event.url.indexOf('http://localhost') == 0) {\n\t ref.close();\n\t var oauth = parseCallback(event.url);\n\t processCallback(oauth, promise);\n\t }\n\t });\n\t return promise.promise;\n\t },\n\n\t accountManagement : function() {\n\t var accountUrl = kc.createAccountUrl();\n\t if (typeof accountUrl !== 'undefined') {\n\t var ref = cordovaOpenWindowWrapper(accountUrl, '_blank', 'location=no');\n\t ref.addEventListener('loadstart', function(event) {\n\t if (event.url.indexOf('http://localhost') == 0) {\n\t ref.close();\n\t }\n\t });\n\t } else {\n\t throw \"Not supported by the OIDC server\";\n\t }\n\t },\n\n\t redirectUri: function(options) {\n\t return 'http://localhost';\n\t }\n\t }\n\t }\n\n\t if (type == 'cordova-native') {\n\t loginIframe.enable = false;\n\n\t return {\n\t login: function(options) {\n\t var promise = createPromise();\n\t var loginUrl = kc.createLoginUrl(options);\n\n\t universalLinks.subscribe('keycloak', function(event) {\n\t universalLinks.unsubscribe('keycloak');\n\t window.cordova.plugins.browsertab.close();\n\t var oauth = parseCallback(event.url);\n\t processCallback(oauth, promise);\n\t });\n\n\t window.cordova.plugins.browsertab.openUrl(loginUrl);\n\t return promise.promise;\n\t },\n\n\t logout: function(options) {\n\t var promise = createPromise();\n\t var logoutUrl = kc.createLogoutUrl(options);\n\n\t universalLinks.subscribe('keycloak', function(event) {\n\t universalLinks.unsubscribe('keycloak');\n\t window.cordova.plugins.browsertab.close();\n\t kc.clearToken();\n\t promise.setSuccess();\n\t });\n\n\t window.cordova.plugins.browsertab.openUrl(logoutUrl);\n\t return promise.promise;\n\t },\n\n\t register : function(options) {\n\t var promise = createPromise();\n\t var registerUrl = kc.createRegisterUrl(options);\n\t universalLinks.subscribe('keycloak' , function(event) {\n\t universalLinks.unsubscribe('keycloak');\n\t window.cordova.plugins.browsertab.close();\n\t var oauth = parseCallback(event.url);\n\t processCallback(oauth, promise);\n\t });\n\t window.cordova.plugins.browsertab.openUrl(registerUrl);\n\t return promise.promise;\n\n\t },\n\n\t accountManagement : function() {\n\t var accountUrl = kc.createAccountUrl();\n\t if (typeof accountUrl !== 'undefined') {\n\t window.cordova.plugins.browsertab.openUrl(accountUrl);\n\t } else {\n\t throw \"Not supported by the OIDC server\";\n\t }\n\t },\n\n\t redirectUri: function(options) {\n\t if (options && options.redirectUri) {\n\t return options.redirectUri;\n\t } else if (kc.redirectUri) {\n\t return kc.redirectUri;\n\t } else {\n\t return \"http://localhost\";\n\t }\n\t }\n\t }\n\t }\n\n\t throw 'invalid adapter type: ' + type;\n\t }\n\n\t var LocalStorage = function() {\n\t if (!(this instanceof LocalStorage)) {\n\t return new LocalStorage();\n\t }\n\n\t localStorage.setItem('kc-test', 'test');\n\t localStorage.removeItem('kc-test');\n\n\t var cs = this;\n\n\t function clearExpired() {\n\t var time = new Date().getTime();\n\t for (var i = 0; i < localStorage.length; i++) {\n\t var key = localStorage.key(i);\n\t if (key && key.indexOf('kc-callback-') == 0) {\n\t var value = localStorage.getItem(key);\n\t if (value) {\n\t try {\n\t var expires = JSON.parse(value).expires;\n\t if (!expires || expires < time) {\n\t localStorage.removeItem(key);\n\t }\n\t } catch (err) {\n\t localStorage.removeItem(key);\n\t }\n\t }\n\t }\n\t }\n\t }\n\n\t cs.get = function(state) {\n\t if (!state) {\n\t return;\n\t }\n\n\t var key = 'kc-callback-' + state;\n\t var value = localStorage.getItem(key);\n\t if (value) {\n\t localStorage.removeItem(key);\n\t value = JSON.parse(value);\n\t }\n\n\t clearExpired();\n\t return value;\n\t };\n\n\t cs.add = function(state) {\n\t clearExpired();\n\n\t var key = 'kc-callback-' + state.state;\n\t state.expires = new Date().getTime() + (60 * 60 * 1000);\n\t localStorage.setItem(key, JSON.stringify(state));\n\t };\n\t };\n\n\t var CookieStorage = function() {\n\t if (!(this instanceof CookieStorage)) {\n\t return new CookieStorage();\n\t }\n\n\t var cs = this;\n\n\t cs.get = function(state) {\n\t if (!state) {\n\t return;\n\t }\n\n\t var value = getCookie('kc-callback-' + state);\n\t setCookie('kc-callback-' + state, '', cookieExpiration(-100));\n\t if (value) {\n\t return JSON.parse(value);\n\t }\n\t };\n\n\t cs.add = function(state) {\n\t setCookie('kc-callback-' + state.state, JSON.stringify(state), cookieExpiration(60));\n\t };\n\n\t cs.removeItem = function(key) {\n\t setCookie(key, '', cookieExpiration(-100));\n\t };\n\n\t var cookieExpiration = function (minutes) {\n\t var exp = new Date();\n\t exp.setTime(exp.getTime() + (minutes*60*1000));\n\t return exp;\n\t };\n\n\t var getCookie = function (key) {\n\t var name = key + '=';\n\t var ca = document.cookie.split(';');\n\t for (var i = 0; i < ca.length; i++) {\n\t var c = ca[i];\n\t while (c.charAt(0) == ' ') {\n\t c = c.substring(1);\n\t }\n\t if (c.indexOf(name) == 0) {\n\t return c.substring(name.length, c.length);\n\t }\n\t }\n\t return '';\n\t };\n\n\t var setCookie = function (key, value, expirationDate) {\n\t var cookie = key + '=' + value + '; '\n\t + 'expires=' + expirationDate.toUTCString() + '; ';\n\t document.cookie = cookie;\n\t };\n\t };\n\n\t function createCallbackStorage() {\n\t try {\n\t return new LocalStorage();\n\t } catch (err) {\n\t }\n\n\t return new CookieStorage();\n\t }\n\n\t function createLogger(fn) {\n\t return function() {\n\t if (kc.enableLogging) {\n\t fn.apply(console, Array.prototype.slice.call(arguments));\n\t }\n\t };\n\t }\n\t}\n\n\treturn Keycloak;\n\n}));\n" | |
| }, | |
| "redirectURL": "", | |
| "headersSize": -1, | |
| "bodySize": -1, | |
| "_transferSize": 20336, | |
| "_error": null | |
| }, | |
| "serverIPAddress": "[2606:4700::6810:5914]", | |
| "startedDateTime": "2023-02-08T17:16:49.985Z", | |
| "time": 178.63099998794496, | |
| "timings": { | |
| "blocked": 29.291000000998377, | |
| "dns": -1, | |
| "ssl": -1, | |
| "connect": -1, | |
| "send": 0.18800000000000017, | |
| "wait": 79.80600001218914, | |
| "receive": 69.34599997475743, | |
| "_blocked_queueing": 26.847000000998378 | |
| } | |
| }, | |
| { | |
| "_initiator": { | |
| "type": "script", | |
| "stack": { | |
| "callFrames": [ | |
| { | |
| "functionName": "loadConfig", | |
| "scriptId": "161", | |
| "url": "https://cdn.jsdelivr.net/npm/keycloak-js@20.0.3/dist/keycloak.js", | |
| "lineNumber": 1565, | |
| "columnNumber": 17 | |
| }, | |
| { | |
| "functionName": "Keycloak.kc.init", | |
| "scriptId": "161", | |
| "url": "https://cdn.jsdelivr.net/npm/keycloak-js@20.0.3/dist/keycloak.js", | |
| "lineNumber": 848, | |
| "columnNumber": 29 | |
| }, | |
| { | |
| "functionName": "window.onload", | |
| "scriptId": "155", | |
| "url": "http://localhost:8081/keycloak-example", | |
| "lineNumber": 24, | |
| "columnNumber": 21 | |
| } | |
| ], | |
| "parent": { | |
| "description": "load", | |
| "callFrames": [ | |
| { | |
| "functionName": "", | |
| "scriptId": "155", | |
| "url": "http://localhost:8081/keycloak-example", | |
| "lineNumber": 20, | |
| "columnNumber": 22 | |
| } | |
| ] | |
| } | |
| } | |
| }, | |
| "_priority": "High", | |
| "_resourceType": "xhr", | |
| "cache": {}, | |
| "connection": "2084326", | |
| "pageref": "page_7", | |
| "request": { | |
| "method": "GET", | |
| "url": "http://localhost:8081/keycloak.json", | |
| "httpVersion": "HTTP/1.1", | |
| "headers": [ | |
| { | |
| "name": "Accept", | |
| "value": "application/json" | |
| }, | |
| { | |
| "name": "Accept-Encoding", | |
| "value": "gzip, deflate, br" | |
| }, | |
| { | |
| "name": "Accept-Language", | |
| "value": "ru,en;q=0.9" | |
| }, | |
| { | |
| "name": "Cache-Control", | |
| "value": "no-cache" | |
| }, | |
| { | |
| "name": "Connection", | |
| "value": "keep-alive" | |
| }, | |
| { | |
| "name": "Host", | |
| "value": "localhost:8081" | |
| }, | |
| { | |
| "name": "Pragma", | |
| "value": "no-cache" | |
| }, | |
| { | |
| "name": "Referer", | |
| "value": "http://localhost:8081/keycloak-example" | |
| }, | |
| { | |
| "name": "Sec-Fetch-Dest", | |
| "value": "empty" | |
| }, | |
| { | |
| "name": "Sec-Fetch-Mode", | |
| "value": "cors" | |
| }, | |
| { | |
| "name": "Sec-Fetch-Site", | |
| "value": "same-origin" | |
| }, | |
| { | |
| "name": "User-Agent", | |
| "value": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 YaBrowser/22.11.3.824 Yowser/2.5 Safari/537.36" | |
| }, | |
| { | |
| "name": "sec-ch-ua", | |
| "value": "\"Chromium\";v=\"106\", \"Yandex\";v=\"22\", \"Not;A=Brand\";v=\"99\"" | |
| }, | |
| { | |
| "name": "sec-ch-ua-mobile", | |
| "value": "?0" | |
| }, | |
| { | |
| "name": "sec-ch-ua-platform", | |
| "value": "\"macOS\"" | |
| } | |
| ], | |
| "queryString": [], | |
| "cookies": [], | |
| "headersSize": 618, | |
| "bodySize": 0 | |
| }, | |
| "response": { | |
| "status": 200, | |
| "statusText": "OK", | |
| "httpVersion": "HTTP/1.1", | |
| "headers": [ | |
| { | |
| "name": "Accept-Ranges", | |
| "value": "bytes" | |
| }, | |
| { | |
| "name": "Connection", | |
| "value": "keep-alive" | |
| }, | |
| { | |
| "name": "Content-Disposition", | |
| "value": "inline; filename=\"keycloak.json\"" | |
| }, | |
| { | |
| "name": "Content-Length", | |
| "value": "310" | |
| }, | |
| { | |
| "name": "Content-Type", | |
| "value": "application/json; charset=utf-8" | |
| }, | |
| { | |
| "name": "Date", | |
| "value": "Wed, 08 Feb 2023 17:16:50 GMT" | |
| }, | |
| { | |
| "name": "ETag", | |
| "value": "\"443cd03a1d3792eed96bb947449fe0ad19250b3e\"" | |
| }, | |
| { | |
| "name": "Keep-Alive", | |
| "value": "timeout=5" | |
| }, | |
| { | |
| "name": "Vary", | |
| "value": "Accept-Encoding" | |
| } | |
| ], | |
| "cookies": [], | |
| "content": { | |
| "size": 310, | |
| "mimeType": "application/json", | |
| "compression": 0, | |
| "text": "{\n \"realm\": \"realm-name\",\n \"auth-server-url\": \"http://localhost:8080/\",\n \"ssl-required\": \"external\",\n \"resource\": \"client-id\",\n \"verify-token-audience\": true,\n \"credentials\": {\n \"secret\": \"5Gq4MJbbMnZxcXw3j0pq4XSipsMQSTOm\"\n },\n \"confidential-port\": 0,\n \"policy-enforcer\": {}\n }" | |
| }, | |
| "redirectURL": "", | |
| "headersSize": 321, | |
| "bodySize": 310, | |
| "_transferSize": 631, | |
| "_error": null | |
| }, | |
| "serverIPAddress": "[::1]", | |
| "startedDateTime": "2023-02-08T17:16:50.169Z", | |
| "time": 42.74000017903745, | |
| "timings": { | |
| "blocked": 29.173000180870293, | |
| "dns": -1, | |
| "ssl": -1, | |
| "connect": -1, | |
| "send": 0.09500000000000242, | |
| "wait": 1.0290000130981198, | |
| "receive": 12.442999985069036, | |
| "_blocked_queueing": 1.3080001808702946 | |
| } | |
| }, | |
| { | |
| "_initiator": { | |
| "type": "script", | |
| "stack": { | |
| "callFrames": [ | |
| { | |
| "functionName": "check3pCookiesSupported", | |
| "scriptId": "161", | |
| "url": "https://cdn.jsdelivr.net/npm/keycloak-js@20.0.3/dist/keycloak.js", | |
| "lineNumber": 1976, | |
| "columnNumber": 27 | |
| }, | |
| { | |
| "functionName": "T", | |
| "scriptId": "161", | |
| "url": "https://cdn.jsdelivr.net/npm/keycloak-js@20.0.3/dist/keycloak.js", | |
| "lineNumber": 15, | |
| "columnNumber": 2554 | |
| }, | |
| { | |
| "functionName": "", | |
| "scriptId": "161", | |
| "url": "https://cdn.jsdelivr.net/npm/keycloak-js@20.0.3/dist/keycloak.js", | |
| "lineNumber": 15, | |
| "columnNumber": 998 | |
| }, | |
| { | |
| "functionName": "a", | |
| "scriptId": "161", | |
| "url": "https://cdn.jsdelivr.net/npm/keycloak-js@20.0.3/dist/keycloak.js", | |
| "lineNumber": 15, | |
| "columnNumber": 698 | |
| } | |
| ], | |
| "parent": { | |
| "description": "characterData", | |
| "callFrames": [ | |
| { | |
| "functionName": "", | |
| "scriptId": "161", | |
| "url": "https://cdn.jsdelivr.net/npm/keycloak-js@20.0.3/dist/keycloak.js", | |
| "lineNumber": 15, | |
| "columnNumber": 462 | |
| }, | |
| { | |
| "functionName": "z", | |
| "scriptId": "161", | |
| "url": "https://cdn.jsdelivr.net/npm/keycloak-js@20.0.3/dist/keycloak.js", | |
| "lineNumber": 15, | |
| "columnNumber": 4114 | |
| }, | |
| { | |
| "functionName": "A", | |
| "scriptId": "161", | |
| "url": "https://cdn.jsdelivr.net/npm/keycloak-js@20.0.3/dist/keycloak.js", | |
| "lineNumber": 15, | |
| "columnNumber": 2117 | |
| }, | |
| { | |
| "functionName": "w", | |
| "scriptId": "161", | |
| "url": "https://cdn.jsdelivr.net/npm/keycloak-js@20.0.3/dist/keycloak.js", | |
| "lineNumber": 15, | |
| "columnNumber": 1974 | |
| }, | |
| { | |
| "functionName": "", | |
| "scriptId": "161", | |
| "url": "https://cdn.jsdelivr.net/npm/keycloak-js@20.0.3/dist/keycloak.js", | |
| "lineNumber": 15, | |
| "columnNumber": 2722 | |
| }, | |
| { | |
| "functionName": "setSuccess", | |
| "scriptId": "161", | |
| "url": "https://cdn.jsdelivr.net/npm/keycloak-js@20.0.3/dist/keycloak.js", | |
| "lineNumber": 1825, | |
| "columnNumber": 19 | |
| }, | |
| { | |
| "functionName": "req.onreadystatechange", | |
| "scriptId": "161", | |
| "url": "https://cdn.jsdelivr.net/npm/keycloak-js@20.0.3/dist/keycloak.js", | |
| "lineNumber": 1558, | |
| "columnNumber": 33 | |
| } | |
| ] | |
| } | |
| } | |
| }, | |
| "_priority": "VeryHigh", | |
| "_resourceType": "document", | |
| "cache": {}, | |
| "connection": "2080548", | |
| "pageref": "page_7", | |
| "request": { | |
| "method": "GET", | |
| "url": "http://localhost:8080/realms/realm-name/protocol/openid-connect/3p-cookies/step1.html", | |
| "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.9" | |
| }, | |
| { | |
| "name": "Accept-Encoding", | |
| "value": "gzip, deflate, br" | |
| }, | |
| { | |
| "name": "Accept-Language", | |
| "value": "ru,en;q=0.9" | |
| }, | |
| { | |
| "name": "Cache-Control", | |
| "value": "no-cache" | |
| }, | |
| { | |
| "name": "Connection", | |
| "value": "keep-alive" | |
| }, | |
| { | |
| "name": "Cookie", | |
| "value": "AUTH_SESSION_ID=df13ef51-698c-461d-95ab-fea114d7055c; AUTH_SESSION_ID_LEGACY=df13ef51-698c-461d-95ab-fea114d7055c; KEYCLOAK_IDENTITY=eyJhbGciOiJIUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICI4N2UwYWNmZC0yMTgzLTRlZTgtYjRhMS1mM2IyMzA4ZjE1ZTAifQ.eyJleHAiOjE2NzU5MTI2MDksImlhdCI6MTY3NTg3NjYwOSwianRpIjoiOWZkOWI0MTUtY2YwNi00N2ZmLTkyNmUtOWNkZTA5N2JlYTZmIiwiaXNzIjoiaHR0cDovL2xvY2FsaG9zdDo4MDgwL3JlYWxtcy9yZWFsbS1uYW1lIiwic3ViIjoiZmIxMmFhNjItZDUyOS00ZmJhLWJmY2EtNDY5ZTAyZDAwZTM5IiwidHlwIjoiU2VyaWFsaXplZC1JRCIsInNlc3Npb25fc3RhdGUiOiJkZjEzZWY1MS02OThjLTQ2MWQtOTVhYi1mZWExMTRkNzA1NWMiLCJzaWQiOiJkZjEzZWY1MS02OThjLTQ2MWQtOTVhYi1mZWExMTRkNzA1NWMiLCJzdGF0ZV9jaGVja2VyIjoib0NacFUtenN2MVN2ZlZTVVpPZXM3T0tCRmxQWDBWWXIzaWNUcTlXQXlHRSJ9.j56dMKbkzwTdcAd2CUl_POadxjwAOgRLofhoNpdlIyw; KEYCLOAK_IDENTITY_LEGACY=eyJhbGciOiJIUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICI4N2UwYWNmZC0yMTgzLTRlZTgtYjRhMS1mM2IyMzA4ZjE1ZTAifQ.eyJleHAiOjE2NzU5MTI2MDksImlhdCI6MTY3NTg3NjYwOSwianRpIjoiOWZkOWI0MTUtY2YwNi00N2ZmLTkyNmUtOWNkZTA5N2JlYTZmIiwiaXNzIjoiaHR0cDovL2xvY2FsaG9zdDo4MDgwL3JlYWxtcy9yZWFsbS1uYW1lIiwic3ViIjoiZmIxMmFhNjItZDUyOS00ZmJhLWJmY2EtNDY5ZTAyZDAwZTM5IiwidHlwIjoiU2VyaWFsaXplZC1JRCIsInNlc3Npb25fc3RhdGUiOiJkZjEzZWY1MS02OThjLTQ2MWQtOTVhYi1mZWExMTRkNzA1NWMiLCJzaWQiOiJkZjEzZWY1MS02OThjLTQ2MWQtOTVhYi1mZWExMTRkNzA1NWMiLCJzdGF0ZV9jaGVja2VyIjoib0NacFUtenN2MVN2ZlZTVVpPZXM3T0tCRmxQWDBWWXIzaWNUcTlXQXlHRSJ9.j56dMKbkzwTdcAd2CUl_POadxjwAOgRLofhoNpdlIyw; KEYCLOAK_SESSION=realm-name/fb12aa62-d529-4fba-bfca-469e02d00e39/df13ef51-698c-461d-95ab-fea114d7055c; KEYCLOAK_SESSION_LEGACY=realm-name/fb12aa62-d529-4fba-bfca-469e02d00e39/df13ef51-698c-461d-95ab-fea114d7055c" | |
| }, | |
| { | |
| "name": "Host", | |
| "value": "localhost:8080" | |
| }, | |
| { | |
| "name": "Pragma", | |
| "value": "no-cache" | |
| }, | |
| { | |
| "name": "Referer", | |
| "value": "http://localhost:8081/" | |
| }, | |
| { | |
| "name": "Sec-Fetch-Dest", | |
| "value": "iframe" | |
| }, | |
| { | |
| "name": "Sec-Fetch-Mode", | |
| "value": "navigate" | |
| }, | |
| { | |
| "name": "Sec-Fetch-Site", | |
| "value": "same-site" | |
| }, | |
| { | |
| "name": "Upgrade-Insecure-Requests", | |
| "value": "1" | |
| }, | |
| { | |
| "name": "User-Agent", | |
| "value": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 YaBrowser/22.11.3.824 Yowser/2.5 Safari/537.36" | |
| }, | |
| { | |
| "name": "sec-ch-ua", | |
| "value": "\"Chromium\";v=\"106\", \"Yandex\";v=\"22\", \"Not;A=Brand\";v=\"99\"" | |
| }, | |
| { | |
| "name": "sec-ch-ua-mobile", | |
| "value": "?0" | |
| }, | |
| { | |
| "name": "sec-ch-ua-platform", | |
| "value": "\"macOS\"" | |
| } | |
| ], | |
| "queryString": [], | |
| "cookies": [ | |
| { | |
| "name": "AUTH_SESSION_ID", | |
| "value": "df13ef51-698c-461d-95ab-fea114d7055c", | |
| "path": "/realms/realm-name/", | |
| "domain": "localhost", | |
| "expires": "1969-12-31T23:59:59.000Z", | |
| "httpOnly": true, | |
| "secure": true, | |
| "sameSite": "None" | |
| }, | |
| { | |
| "name": "AUTH_SESSION_ID_LEGACY", | |
| "value": "df13ef51-698c-461d-95ab-fea114d7055c", | |
| "path": "/realms/realm-name/", | |
| "domain": "localhost", | |
| "expires": "1969-12-31T23:59:59.000Z", | |
| "httpOnly": true, | |
| "secure": false | |
| }, | |
| { | |
| "name": "KEYCLOAK_IDENTITY", | |
| "value": "eyJhbGciOiJIUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICI4N2UwYWNmZC0yMTgzLTRlZTgtYjRhMS1mM2IyMzA4ZjE1ZTAifQ.eyJleHAiOjE2NzU5MTI2MDksImlhdCI6MTY3NTg3NjYwOSwianRpIjoiOWZkOWI0MTUtY2YwNi00N2ZmLTkyNmUtOWNkZTA5N2JlYTZmIiwiaXNzIjoiaHR0cDovL2xvY2FsaG9zdDo4MDgwL3JlYWxtcy9yZWFsbS1uYW1lIiwic3ViIjoiZmIxMmFhNjItZDUyOS00ZmJhLWJmY2EtNDY5ZTAyZDAwZTM5IiwidHlwIjoiU2VyaWFsaXplZC1JRCIsInNlc3Npb25fc3RhdGUiOiJkZjEzZWY1MS02OThjLTQ2MWQtOTVhYi1mZWExMTRkNzA1NWMiLCJzaWQiOiJkZjEzZWY1MS02OThjLTQ2MWQtOTVhYi1mZWExMTRkNzA1NWMiLCJzdGF0ZV9jaGVja2VyIjoib0NacFUtenN2MVN2ZlZTVVpPZXM3T0tCRmxQWDBWWXIzaWNUcTlXQXlHRSJ9.j56dMKbkzwTdcAd2CUl_POadxjwAOgRLofhoNpdlIyw", | |
| "path": "/realms/realm-name/", | |
| "domain": "localhost", | |
| "expires": "1969-12-31T23:59:59.000Z", | |
| "httpOnly": true, | |
| "secure": true, | |
| "sameSite": "None" | |
| }, | |
| { | |
| "name": "KEYCLOAK_IDENTITY_LEGACY", | |
| "value": "eyJhbGciOiJIUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICI4N2UwYWNmZC0yMTgzLTRlZTgtYjRhMS1mM2IyMzA4ZjE1ZTAifQ.eyJleHAiOjE2NzU5MTI2MDksImlhdCI6MTY3NTg3NjYwOSwianRpIjoiOWZkOWI0MTUtY2YwNi00N2ZmLTkyNmUtOWNkZTA5N2JlYTZmIiwiaXNzIjoiaHR0cDovL2xvY2FsaG9zdDo4MDgwL3JlYWxtcy9yZWFsbS1uYW1lIiwic3ViIjoiZmIxMmFhNjItZDUyOS00ZmJhLWJmY2EtNDY5ZTAyZDAwZTM5IiwidHlwIjoiU2VyaWFsaXplZC1JRCIsInNlc3Npb25fc3RhdGUiOiJkZjEzZWY1MS02OThjLTQ2MWQtOTVhYi1mZWExMTRkNzA1NWMiLCJzaWQiOiJkZjEzZWY1MS02OThjLTQ2MWQtOTVhYi1mZWExMTRkNzA1NWMiLCJzdGF0ZV9jaGVja2VyIjoib0NacFUtenN2MVN2ZlZTVVpPZXM3T0tCRmxQWDBWWXIzaWNUcTlXQXlHRSJ9.j56dMKbkzwTdcAd2CUl_POadxjwAOgRLofhoNpdlIyw", | |
| "path": "/realms/realm-name/", | |
| "domain": "localhost", | |
| "expires": "1969-12-31T23:59:59.000Z", | |
| "httpOnly": true, | |
| "secure": false | |
| }, | |
| { | |
| "name": "KEYCLOAK_SESSION", | |
| "value": "realm-name/fb12aa62-d529-4fba-bfca-469e02d00e39/df13ef51-698c-461d-95ab-fea114d7055c", | |
| "path": "/realms/realm-name/", | |
| "domain": "localhost", | |
| "expires": "2023-02-09T03:16:49.895Z", | |
| "httpOnly": false, | |
| "secure": true, | |
| "sameSite": "None" | |
| }, | |
| { | |
| "name": "KEYCLOAK_SESSION_LEGACY", | |
| "value": "realm-name/fb12aa62-d529-4fba-bfca-469e02d00e39/df13ef51-698c-461d-95ab-fea114d7055c", | |
| "path": "/realms/realm-name/", | |
| "domain": "localhost", | |
| "expires": "2023-02-09T03:16:49.895Z", | |
| "httpOnly": false, | |
| "secure": false | |
| } | |
| ], | |
| "headersSize": 2433, | |
| "bodySize": 0 | |
| }, | |
| "response": { | |
| "status": 200, | |
| "statusText": "OK", | |
| "httpVersion": "HTTP/1.1", | |
| "headers": [ | |
| { | |
| "name": "Cache-Control", | |
| "value": "no-cache, must-revalidate, no-transform, no-store" | |
| }, | |
| { | |
| "name": "Content-Security-Policy", | |
| "value": "frame-src 'self'; object-src 'none';" | |
| }, | |
| { | |
| "name": "Content-Type", | |
| "value": "text/html;charset=utf-8" | |
| }, | |
| { | |
| "name": "P3P", | |
| "value": "CP=\"This is not a P3P policy!\"" | |
| }, | |
| { | |
| "name": "Referrer-Policy", | |
| "value": "no-referrer" | |
| }, | |
| { | |
| "name": "Strict-Transport-Security", | |
| "value": "max-age=31536000; includeSubDomains" | |
| }, | |
| { | |
| "name": "X-Content-Type-Options", | |
| "value": "nosniff" | |
| }, | |
| { | |
| "name": "X-Robots-Tag", | |
| "value": "none" | |
| }, | |
| { | |
| "name": "X-XSS-Protection", | |
| "value": "1; mode=block" | |
| }, | |
| { | |
| "name": "content-length", | |
| "value": "757" | |
| } | |
| ], | |
| "cookies": [], | |
| "content": { | |
| "size": 757, | |
| "mimeType": "text/html", | |
| "compression": 0, | |
| "text": "<!DOCTYPE html>\n<html>\n <head>\n <meta charset=\"utf-8\" />\n </head>\n <body>\n <script>\n if (\"hasStorageAccess\" in document) {\n checkStorageAccess();\n } else {\n placeTestCookie();\n }\n\n function checkStorageAccess() {\n document.hasStorageAccess().then(function (hasAccess) {\n window.parent.postMessage(\n hasAccess ? \"supported\" : \"unsupported\",\n \"*\"\n );\n });\n }\n\n function placeTestCookie() {\n document.cookie =\n \"KEYCLOAK_3P_COOKIE_SAMESITE=supported; Max-Age=60; SameSite=None; Secure\";\n document.cookie = \"KEYCLOAK_3P_COOKIE=supported; Max-Age=60\";\n window.location = \"step2.html\";\n }\n </script>\n </body>\n</html>\n" | |
| }, | |
| "redirectURL": "", | |
| "headersSize": 425, | |
| "bodySize": 757, | |
| "_transferSize": 1182, | |
| "_error": null | |
| }, | |
| "serverIPAddress": "[::1]", | |
| "startedDateTime": "2023-02-08T17:16:50.217Z", | |
| "time": 8.751999819651246, | |
| "timings": { | |
| "blocked": 3.1790000182241203, | |
| "dns": -1, | |
| "ssl": -1, | |
| "connect": -1, | |
| "send": 0.09199999999999997, | |
| "wait": 3.8829999734908345, | |
| "receive": 1.5979998279362917, | |
| "_blocked_queueing": 2.41800001822412 | |
| } | |
| }, | |
| { | |
| "_initiator": { | |
| "type": "script", | |
| "stack": { | |
| "callFrames": [ | |
| { | |
| "functionName": "placeTestCookie", | |
| "scriptId": "166", | |
| "url": "http://localhost:8080/realms/realm-name/protocol/openid-connect/3p-cookies/step1.html", | |
| "lineNumber": 26, | |
| "columnNumber": 24 | |
| }, | |
| { | |
| "functionName": "", | |
| "scriptId": "166", | |
| "url": "http://localhost:8080/realms/realm-name/protocol/openid-connect/3p-cookies/step1.html", | |
| "lineNumber": 10, | |
| "columnNumber": 8 | |
| } | |
| ] | |
| } | |
| }, | |
| "_priority": "VeryHigh", | |
| "_resourceType": "document", | |
| "cache": {}, | |
| "connection": "2080548", | |
| "pageref": "page_7", | |
| "request": { | |
| "method": "GET", | |
| "url": "http://localhost:8080/realms/realm-name/protocol/openid-connect/3p-cookies/step2.html", | |
| "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.9" | |
| }, | |
| { | |
| "name": "Accept-Encoding", | |
| "value": "gzip, deflate, br" | |
| }, | |
| { | |
| "name": "Accept-Language", | |
| "value": "ru,en;q=0.9" | |
| }, | |
| { | |
| "name": "Cache-Control", | |
| "value": "no-cache" | |
| }, | |
| { | |
| "name": "Connection", | |
| "value": "keep-alive" | |
| }, | |
| { | |
| "name": "Cookie", | |
| "value": "KEYCLOAK_3P_COOKIE_SAMESITE=supported; KEYCLOAK_3P_COOKIE=supported; AUTH_SESSION_ID=df13ef51-698c-461d-95ab-fea114d7055c; AUTH_SESSION_ID_LEGACY=df13ef51-698c-461d-95ab-fea114d7055c; KEYCLOAK_IDENTITY=eyJhbGciOiJIUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICI4N2UwYWNmZC0yMTgzLTRlZTgtYjRhMS1mM2IyMzA4ZjE1ZTAifQ.eyJleHAiOjE2NzU5MTI2MDksImlhdCI6MTY3NTg3NjYwOSwianRpIjoiOWZkOWI0MTUtY2YwNi00N2ZmLTkyNmUtOWNkZTA5N2JlYTZmIiwiaXNzIjoiaHR0cDovL2xvY2FsaG9zdDo4MDgwL3JlYWxtcy9yZWFsbS1uYW1lIiwic3ViIjoiZmIxMmFhNjItZDUyOS00ZmJhLWJmY2EtNDY5ZTAyZDAwZTM5IiwidHlwIjoiU2VyaWFsaXplZC1JRCIsInNlc3Npb25fc3RhdGUiOiJkZjEzZWY1MS02OThjLTQ2MWQtOTVhYi1mZWExMTRkNzA1NWMiLCJzaWQiOiJkZjEzZWY1MS02OThjLTQ2MWQtOTVhYi1mZWExMTRkNzA1NWMiLCJzdGF0ZV9jaGVja2VyIjoib0NacFUtenN2MVN2ZlZTVVpPZXM3T0tCRmxQWDBWWXIzaWNUcTlXQXlHRSJ9.j56dMKbkzwTdcAd2CUl_POadxjwAOgRLofhoNpdlIyw; KEYCLOAK_IDENTITY_LEGACY=eyJhbGciOiJIUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICI4N2UwYWNmZC0yMTgzLTRlZTgtYjRhMS1mM2IyMzA4ZjE1ZTAifQ.eyJleHAiOjE2NzU5MTI2MDksImlhdCI6MTY3NTg3NjYwOSwianRpIjoiOWZkOWI0MTUtY2YwNi00N2ZmLTkyNmUtOWNkZTA5N2JlYTZmIiwiaXNzIjoiaHR0cDovL2xvY2FsaG9zdDo4MDgwL3JlYWxtcy9yZWFsbS1uYW1lIiwic3ViIjoiZmIxMmFhNjItZDUyOS00ZmJhLWJmY2EtNDY5ZTAyZDAwZTM5IiwidHlwIjoiU2VyaWFsaXplZC1JRCIsInNlc3Npb25fc3RhdGUiOiJkZjEzZWY1MS02OThjLTQ2MWQtOTVhYi1mZWExMTRkNzA1NWMiLCJzaWQiOiJkZjEzZWY1MS02OThjLTQ2MWQtOTVhYi1mZWExMTRkNzA1NWMiLCJzdGF0ZV9jaGVja2VyIjoib0NacFUtenN2MVN2ZlZTVVpPZXM3T0tCRmxQWDBWWXIzaWNUcTlXQXlHRSJ9.j56dMKbkzwTdcAd2CUl_POadxjwAOgRLofhoNpdlIyw; KEYCLOAK_SESSION=realm-name/fb12aa62-d529-4fba-bfca-469e02d00e39/df13ef51-698c-461d-95ab-fea114d7055c; KEYCLOAK_SESSION_LEGACY=realm-name/fb12aa62-d529-4fba-bfca-469e02d00e39/df13ef51-698c-461d-95ab-fea114d7055c" | |
| }, | |
| { | |
| "name": "Host", | |
| "value": "localhost:8080" | |
| }, | |
| { | |
| "name": "Pragma", | |
| "value": "no-cache" | |
| }, | |
| { | |
| "name": "Sec-Fetch-Dest", | |
| "value": "iframe" | |
| }, | |
| { | |
| "name": "Sec-Fetch-Mode", | |
| "value": "navigate" | |
| }, | |
| { | |
| "name": "Sec-Fetch-Site", | |
| "value": "same-origin" | |
| }, | |
| { | |
| "name": "Upgrade-Insecure-Requests", | |
| "value": "1" | |
| }, | |
| { | |
| "name": "User-Agent", | |
| "value": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 YaBrowser/22.11.3.824 Yowser/2.5 Safari/537.36" | |
| }, | |
| { | |
| "name": "sec-ch-ua", | |
| "value": "\"Chromium\";v=\"106\", \"Yandex\";v=\"22\", \"Not;A=Brand\";v=\"99\"" | |
| }, | |
| { | |
| "name": "sec-ch-ua-mobile", | |
| "value": "?0" | |
| }, | |
| { | |
| "name": "sec-ch-ua-platform", | |
| "value": "\"macOS\"" | |
| } | |
| ], | |
| "queryString": [], | |
| "cookies": [ | |
| { | |
| "name": "KEYCLOAK_3P_COOKIE_SAMESITE", | |
| "value": "supported", | |
| "path": "/realms/realm-name/protocol/openid-connect/3p-cookies", | |
| "domain": "localhost", | |
| "expires": "2023-02-08T17:17:50.300Z", | |
| "httpOnly": false, | |
| "secure": true, | |
| "sameSite": "None" | |
| }, | |
| { | |
| "name": "KEYCLOAK_3P_COOKIE", | |
| "value": "supported", | |
| "path": "/realms/realm-name/protocol/openid-connect/3p-cookies", | |
| "domain": "localhost", | |
| "expires": "2023-02-08T17:17:50.300Z", | |
| "httpOnly": false, | |
| "secure": false | |
| }, | |
| { | |
| "name": "AUTH_SESSION_ID", | |
| "value": "df13ef51-698c-461d-95ab-fea114d7055c", | |
| "path": "/realms/realm-name/", | |
| "domain": "localhost", | |
| "expires": "1969-12-31T23:59:59.000Z", | |
| "httpOnly": true, | |
| "secure": true, | |
| "sameSite": "None" | |
| }, | |
| { | |
| "name": "AUTH_SESSION_ID_LEGACY", | |
| "value": "df13ef51-698c-461d-95ab-fea114d7055c", | |
| "path": "/realms/realm-name/", | |
| "domain": "localhost", | |
| "expires": "1969-12-31T23:59:59.000Z", | |
| "httpOnly": true, | |
| "secure": false | |
| }, | |
| { | |
| "name": "KEYCLOAK_IDENTITY", | |
| "value": "eyJhbGciOiJIUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICI4N2UwYWNmZC0yMTgzLTRlZTgtYjRhMS1mM2IyMzA4ZjE1ZTAifQ.eyJleHAiOjE2NzU5MTI2MDksImlhdCI6MTY3NTg3NjYwOSwianRpIjoiOWZkOWI0MTUtY2YwNi00N2ZmLTkyNmUtOWNkZTA5N2JlYTZmIiwiaXNzIjoiaHR0cDovL2xvY2FsaG9zdDo4MDgwL3JlYWxtcy9yZWFsbS1uYW1lIiwic3ViIjoiZmIxMmFhNjItZDUyOS00ZmJhLWJmY2EtNDY5ZTAyZDAwZTM5IiwidHlwIjoiU2VyaWFsaXplZC1JRCIsInNlc3Npb25fc3RhdGUiOiJkZjEzZWY1MS02OThjLTQ2MWQtOTVhYi1mZWExMTRkNzA1NWMiLCJzaWQiOiJkZjEzZWY1MS02OThjLTQ2MWQtOTVhYi1mZWExMTRkNzA1NWMiLCJzdGF0ZV9jaGVja2VyIjoib0NacFUtenN2MVN2ZlZTVVpPZXM3T0tCRmxQWDBWWXIzaWNUcTlXQXlHRSJ9.j56dMKbkzwTdcAd2CUl_POadxjwAOgRLofhoNpdlIyw", | |
| "path": "/realms/realm-name/", | |
| "domain": "localhost", | |
| "expires": "1969-12-31T23:59:59.000Z", | |
| "httpOnly": true, | |
| "secure": true, | |
| "sameSite": "None" | |
| }, | |
| { | |
| "name": "KEYCLOAK_IDENTITY_LEGACY", | |
| "value": "eyJhbGciOiJIUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICI4N2UwYWNmZC0yMTgzLTRlZTgtYjRhMS1mM2IyMzA4ZjE1ZTAifQ.eyJleHAiOjE2NzU5MTI2MDksImlhdCI6MTY3NTg3NjYwOSwianRpIjoiOWZkOWI0MTUtY2YwNi00N2ZmLTkyNmUtOWNkZTA5N2JlYTZmIiwiaXNzIjoiaHR0cDovL2xvY2FsaG9zdDo4MDgwL3JlYWxtcy9yZWFsbS1uYW1lIiwic3ViIjoiZmIxMmFhNjItZDUyOS00ZmJhLWJmY2EtNDY5ZTAyZDAwZTM5IiwidHlwIjoiU2VyaWFsaXplZC1JRCIsInNlc3Npb25fc3RhdGUiOiJkZjEzZWY1MS02OThjLTQ2MWQtOTVhYi1mZWExMTRkNzA1NWMiLCJzaWQiOiJkZjEzZWY1MS02OThjLTQ2MWQtOTVhYi1mZWExMTRkNzA1NWMiLCJzdGF0ZV9jaGVja2VyIjoib0NacFUtenN2MVN2ZlZTVVpPZXM3T0tCRmxQWDBWWXIzaWNUcTlXQXlHRSJ9.j56dMKbkzwTdcAd2CUl_POadxjwAOgRLofhoNpdlIyw", | |
| "path": "/realms/realm-name/", | |
| "domain": "localhost", | |
| "expires": "1969-12-31T23:59:59.000Z", | |
| "httpOnly": true, | |
| "secure": false | |
| }, | |
| { | |
| "name": "KEYCLOAK_SESSION", | |
| "value": "realm-name/fb12aa62-d529-4fba-bfca-469e02d00e39/df13ef51-698c-461d-95ab-fea114d7055c", | |
| "path": "/realms/realm-name/", | |
| "domain": "localhost", | |
| "expires": "2023-02-09T03:16:49.895Z", | |
| "httpOnly": false, | |
| "secure": true, | |
| "sameSite": "None" | |
| }, | |
| { | |
| "name": "KEYCLOAK_SESSION_LEGACY", | |
| "value": "realm-name/fb12aa62-d529-4fba-bfca-469e02d00e39/df13ef51-698c-461d-95ab-fea114d7055c", | |
| "path": "/realms/realm-name/", | |
| "domain": "localhost", | |
| "expires": "2023-02-09T03:16:49.895Z", | |
| "httpOnly": false, | |
| "secure": false | |
| } | |
| ], | |
| "headersSize": 2471, | |
| "bodySize": 0 | |
| }, | |
| "response": { | |
| "status": 200, | |
| "statusText": "OK", | |
| "httpVersion": "HTTP/1.1", | |
| "headers": [ | |
| { | |
| "name": "Cache-Control", | |
| "value": "no-cache, must-revalidate, no-transform, no-store" | |
| }, | |
| { | |
| "name": "Content-Security-Policy", | |
| "value": "frame-src 'self'; object-src 'none';" | |
| }, | |
| { | |
| "name": "Content-Type", | |
| "value": "text/html;charset=utf-8" | |
| }, | |
| { | |
| "name": "P3P", | |
| "value": "CP=\"This is not a P3P policy!\"" | |
| }, | |
| { | |
| "name": "Referrer-Policy", | |
| "value": "no-referrer" | |
| }, | |
| { | |
| "name": "Strict-Transport-Security", | |
| "value": "max-age=31536000; includeSubDomains" | |
| }, | |
| { | |
| "name": "X-Content-Type-Options", | |
| "value": "nosniff" | |
| }, | |
| { | |
| "name": "X-Robots-Tag", | |
| "value": "none" | |
| }, | |
| { | |
| "name": "X-XSS-Protection", | |
| "value": "1; mode=block" | |
| }, | |
| { | |
| "name": "content-length", | |
| "value": "442" | |
| } | |
| ], | |
| "cookies": [], | |
| "content": { | |
| "size": 442, | |
| "mimeType": "text/html", | |
| "compression": 0, | |
| "text": "<!DOCTYPE html>\n<html>\n <head>\n <meta charset=\"utf-8\" />\n </head>\n <body>\n <script>\n var hasAccess = document.cookie.indexOf(\"KEYCLOAK_3P_COOKIE\") !== -1;\n\n if (hasAccess) {\n document.cookie = \"KEYCLOAK_3P_COOKIE_SAMESITE=; Max-Age=0\";\n document.cookie = \"KEYCLOAK_3P_COOKIE=; Max-Age=0\";\n }\n\n window.parent.postMessage(hasAccess ? \"supported\" : \"unsupported\", \"*\");\n </script>\n </body>\n</html>\n" | |
| }, | |
| "redirectURL": "", | |
| "headersSize": 425, | |
| "bodySize": 442, | |
| "_transferSize": 867, | |
| "_error": null | |
| }, | |
| "serverIPAddress": "[::1]", | |
| "startedDateTime": "2023-02-08T17:16:50.301Z", | |
| "time": 14.761999947950244, | |
| "timings": { | |
| "blocked": 8.462999984100462, | |
| "dns": -1, | |
| "ssl": -1, | |
| "connect": -1, | |
| "send": 0.16100000000000003, | |
| "wait": 4.732999975696206, | |
| "receive": 1.4049999881535769, | |
| "_blocked_queueing": 7.152999984100461 | |
| } | |
| }, | |
| { | |
| "_initiator": { | |
| "type": "script", | |
| "stack": { | |
| "callFrames": [ | |
| { | |
| "functionName": "setupCheckLoginIframe", | |
| "scriptId": "161", | |
| "url": "https://cdn.jsdelivr.net/npm/keycloak-js@20.0.3/dist/keycloak.js", | |
| "lineNumber": 1904, | |
| "columnNumber": 23 | |
| }, | |
| { | |
| "functionName": "processInit", | |
| "scriptId": "161", | |
| "url": "https://cdn.jsdelivr.net/npm/keycloak-js@20.0.3/dist/keycloak.js", | |
| "lineNumber": 921, | |
| "columnNumber": 24 | |
| }, | |
| { | |
| "functionName": "T", | |
| "scriptId": "161", | |
| "url": "https://cdn.jsdelivr.net/npm/keycloak-js@20.0.3/dist/keycloak.js", | |
| "lineNumber": 15, | |
| "columnNumber": 2554 | |
| }, | |
| { | |
| "functionName": "E", | |
| "scriptId": "161", | |
| "url": "https://cdn.jsdelivr.net/npm/keycloak-js@20.0.3/dist/keycloak.js", | |
| "lineNumber": 15, | |
| "columnNumber": 2446 | |
| }, | |
| { | |
| "functionName": "a", | |
| "scriptId": "161", | |
| "url": "https://cdn.jsdelivr.net/npm/keycloak-js@20.0.3/dist/keycloak.js", | |
| "lineNumber": 15, | |
| "columnNumber": 698 | |
| } | |
| ], | |
| "parent": { | |
| "description": "characterData", | |
| "callFrames": [ | |
| { | |
| "functionName": "", | |
| "scriptId": "161", | |
| "url": "https://cdn.jsdelivr.net/npm/keycloak-js@20.0.3/dist/keycloak.js", | |
| "lineNumber": 15, | |
| "columnNumber": 462 | |
| }, | |
| { | |
| "functionName": "z", | |
| "scriptId": "161", | |
| "url": "https://cdn.jsdelivr.net/npm/keycloak-js@20.0.3/dist/keycloak.js", | |
| "lineNumber": 15, | |
| "columnNumber": 4114 | |
| }, | |
| { | |
| "functionName": "A", | |
| "scriptId": "161", | |
| "url": "https://cdn.jsdelivr.net/npm/keycloak-js@20.0.3/dist/keycloak.js", | |
| "lineNumber": 15, | |
| "columnNumber": 2117 | |
| }, | |
| { | |
| "functionName": "w", | |
| "scriptId": "161", | |
| "url": "https://cdn.jsdelivr.net/npm/keycloak-js@20.0.3/dist/keycloak.js", | |
| "lineNumber": 15, | |
| "columnNumber": 1974 | |
| }, | |
| { | |
| "functionName": "", | |
| "scriptId": "161", | |
| "url": "https://cdn.jsdelivr.net/npm/keycloak-js@20.0.3/dist/keycloak.js", | |
| "lineNumber": 15, | |
| "columnNumber": 2722 | |
| }, | |
| { | |
| "functionName": "setSuccess", | |
| "scriptId": "161", | |
| "url": "https://cdn.jsdelivr.net/npm/keycloak-js@20.0.3/dist/keycloak.js", | |
| "lineNumber": 1825, | |
| "columnNumber": 19 | |
| }, | |
| { | |
| "functionName": "messageCallback", | |
| "scriptId": "161", | |
| "url": "https://cdn.jsdelivr.net/npm/keycloak-js@20.0.3/dist/keycloak.js", | |
| "lineNumber": 1996, | |
| "columnNumber": 25 | |
| } | |
| ] | |
| } | |
| } | |
| }, | |
| "_priority": "VeryHigh", | |
| "_resourceType": "document", | |
| "cache": {}, | |
| "connection": "2080548", | |
| "pageref": "page_7", | |
| "request": { | |
| "method": "GET", | |
| "url": "http://localhost:8080/realms/realm-name/protocol/openid-connect/login-status-iframe.html", | |
| "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.9" | |
| }, | |
| { | |
| "name": "Accept-Encoding", | |
| "value": "gzip, deflate, br" | |
| }, | |
| { | |
| "name": "Accept-Language", | |
| "value": "ru,en;q=0.9" | |
| }, | |
| { | |
| "name": "Cache-Control", | |
| "value": "no-cache" | |
| }, | |
| { | |
| "name": "Connection", | |
| "value": "keep-alive" | |
| }, | |
| { | |
| "name": "Cookie", | |
| "value": "AUTH_SESSION_ID=df13ef51-698c-461d-95ab-fea114d7055c; AUTH_SESSION_ID_LEGACY=df13ef51-698c-461d-95ab-fea114d7055c; KEYCLOAK_IDENTITY=eyJhbGciOiJIUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICI4N2UwYWNmZC0yMTgzLTRlZTgtYjRhMS1mM2IyMzA4ZjE1ZTAifQ.eyJleHAiOjE2NzU5MTI2MDksImlhdCI6MTY3NTg3NjYwOSwianRpIjoiOWZkOWI0MTUtY2YwNi00N2ZmLTkyNmUtOWNkZTA5N2JlYTZmIiwiaXNzIjoiaHR0cDovL2xvY2FsaG9zdDo4MDgwL3JlYWxtcy9yZWFsbS1uYW1lIiwic3ViIjoiZmIxMmFhNjItZDUyOS00ZmJhLWJmY2EtNDY5ZTAyZDAwZTM5IiwidHlwIjoiU2VyaWFsaXplZC1JRCIsInNlc3Npb25fc3RhdGUiOiJkZjEzZWY1MS02OThjLTQ2MWQtOTVhYi1mZWExMTRkNzA1NWMiLCJzaWQiOiJkZjEzZWY1MS02OThjLTQ2MWQtOTVhYi1mZWExMTRkNzA1NWMiLCJzdGF0ZV9jaGVja2VyIjoib0NacFUtenN2MVN2ZlZTVVpPZXM3T0tCRmxQWDBWWXIzaWNUcTlXQXlHRSJ9.j56dMKbkzwTdcAd2CUl_POadxjwAOgRLofhoNpdlIyw; KEYCLOAK_IDENTITY_LEGACY=eyJhbGciOiJIUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICI4N2UwYWNmZC0yMTgzLTRlZTgtYjRhMS1mM2IyMzA4ZjE1ZTAifQ.eyJleHAiOjE2NzU5MTI2MDksImlhdCI6MTY3NTg3NjYwOSwianRpIjoiOWZkOWI0MTUtY2YwNi00N2ZmLTkyNmUtOWNkZTA5N2JlYTZmIiwiaXNzIjoiaHR0cDovL2xvY2FsaG9zdDo4MDgwL3JlYWxtcy9yZWFsbS1uYW1lIiwic3ViIjoiZmIxMmFhNjItZDUyOS00ZmJhLWJmY2EtNDY5ZTAyZDAwZTM5IiwidHlwIjoiU2VyaWFsaXplZC1JRCIsInNlc3Npb25fc3RhdGUiOiJkZjEzZWY1MS02OThjLTQ2MWQtOTVhYi1mZWExMTRkNzA1NWMiLCJzaWQiOiJkZjEzZWY1MS02OThjLTQ2MWQtOTVhYi1mZWExMTRkNzA1NWMiLCJzdGF0ZV9jaGVja2VyIjoib0NacFUtenN2MVN2ZlZTVVpPZXM3T0tCRmxQWDBWWXIzaWNUcTlXQXlHRSJ9.j56dMKbkzwTdcAd2CUl_POadxjwAOgRLofhoNpdlIyw; KEYCLOAK_SESSION=realm-name/fb12aa62-d529-4fba-bfca-469e02d00e39/df13ef51-698c-461d-95ab-fea114d7055c; KEYCLOAK_SESSION_LEGACY=realm-name/fb12aa62-d529-4fba-bfca-469e02d00e39/df13ef51-698c-461d-95ab-fea114d7055c" | |
| }, | |
| { | |
| "name": "Host", | |
| "value": "localhost:8080" | |
| }, | |
| { | |
| "name": "Pragma", | |
| "value": "no-cache" | |
| }, | |
| { | |
| "name": "Referer", | |
| "value": "http://localhost:8081/" | |
| }, | |
| { | |
| "name": "Sec-Fetch-Dest", | |
| "value": "iframe" | |
| }, | |
| { | |
| "name": "Sec-Fetch-Mode", | |
| "value": "navigate" | |
| }, | |
| { | |
| "name": "Sec-Fetch-Site", | |
| "value": "same-site" | |
| }, | |
| { | |
| "name": "Upgrade-Insecure-Requests", | |
| "value": "1" | |
| }, | |
| { | |
| "name": "User-Agent", | |
| "value": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 YaBrowser/22.11.3.824 Yowser/2.5 Safari/537.36" | |
| }, | |
| { | |
| "name": "sec-ch-ua", | |
| "value": "\"Chromium\";v=\"106\", \"Yandex\";v=\"22\", \"Not;A=Brand\";v=\"99\"" | |
| }, | |
| { | |
| "name": "sec-ch-ua-mobile", | |
| "value": "?0" | |
| }, | |
| { | |
| "name": "sec-ch-ua-platform", | |
| "value": "\"macOS\"" | |
| } | |
| ], | |
| "queryString": [], | |
| "cookies": [ | |
| { | |
| "name": "AUTH_SESSION_ID", | |
| "value": "df13ef51-698c-461d-95ab-fea114d7055c", | |
| "path": "/realms/realm-name/", | |
| "domain": "localhost", | |
| "expires": "1969-12-31T23:59:59.000Z", | |
| "httpOnly": true, | |
| "secure": true, | |
| "sameSite": "None" | |
| }, | |
| { | |
| "name": "AUTH_SESSION_ID_LEGACY", | |
| "value": "df13ef51-698c-461d-95ab-fea114d7055c", | |
| "path": "/realms/realm-name/", | |
| "domain": "localhost", | |
| "expires": "1969-12-31T23:59:59.000Z", | |
| "httpOnly": true, | |
| "secure": false | |
| }, | |
| { | |
| "name": "KEYCLOAK_IDENTITY", | |
| "value": "eyJhbGciOiJIUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICI4N2UwYWNmZC0yMTgzLTRlZTgtYjRhMS1mM2IyMzA4ZjE1ZTAifQ.eyJleHAiOjE2NzU5MTI2MDksImlhdCI6MTY3NTg3NjYwOSwianRpIjoiOWZkOWI0MTUtY2YwNi00N2ZmLTkyNmUtOWNkZTA5N2JlYTZmIiwiaXNzIjoiaHR0cDovL2xvY2FsaG9zdDo4MDgwL3JlYWxtcy9yZWFsbS1uYW1lIiwic3ViIjoiZmIxMmFhNjItZDUyOS00ZmJhLWJmY2EtNDY5ZTAyZDAwZTM5IiwidHlwIjoiU2VyaWFsaXplZC1JRCIsInNlc3Npb25fc3RhdGUiOiJkZjEzZWY1MS02OThjLTQ2MWQtOTVhYi1mZWExMTRkNzA1NWMiLCJzaWQiOiJkZjEzZWY1MS02OThjLTQ2MWQtOTVhYi1mZWExMTRkNzA1NWMiLCJzdGF0ZV9jaGVja2VyIjoib0NacFUtenN2MVN2ZlZTVVpPZXM3T0tCRmxQWDBWWXIzaWNUcTlXQXlHRSJ9.j56dMKbkzwTdcAd2CUl_POadxjwAOgRLofhoNpdlIyw", | |
| "path": "/realms/realm-name/", | |
| "domain": "localhost", | |
| "expires": "1969-12-31T23:59:59.000Z", | |
| "httpOnly": true, | |
| "secure": true, | |
| "sameSite": "None" | |
| }, | |
| { | |
| "name": "KEYCLOAK_IDENTITY_LEGACY", | |
| "value": "eyJhbGciOiJIUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICI4N2UwYWNmZC0yMTgzLTRlZTgtYjRhMS1mM2IyMzA4ZjE1ZTAifQ.eyJleHAiOjE2NzU5MTI2MDksImlhdCI6MTY3NTg3NjYwOSwianRpIjoiOWZkOWI0MTUtY2YwNi00N2ZmLTkyNmUtOWNkZTA5N2JlYTZmIiwiaXNzIjoiaHR0cDovL2xvY2FsaG9zdDo4MDgwL3JlYWxtcy9yZWFsbS1uYW1lIiwic3ViIjoiZmIxMmFhNjItZDUyOS00ZmJhLWJmY2EtNDY5ZTAyZDAwZTM5IiwidHlwIjoiU2VyaWFsaXplZC1JRCIsInNlc3Npb25fc3RhdGUiOiJkZjEzZWY1MS02OThjLTQ2MWQtOTVhYi1mZWExMTRkNzA1NWMiLCJzaWQiOiJkZjEzZWY1MS02OThjLTQ2MWQtOTVhYi1mZWExMTRkNzA1NWMiLCJzdGF0ZV9jaGVja2VyIjoib0NacFUtenN2MVN2ZlZTVVpPZXM3T0tCRmxQWDBWWXIzaWNUcTlXQXlHRSJ9.j56dMKbkzwTdcAd2CUl_POadxjwAOgRLofhoNpdlIyw", | |
| "path": "/realms/realm-name/", | |
| "domain": "localhost", | |
| "expires": "1969-12-31T23:59:59.000Z", | |
| "httpOnly": true, | |
| "secure": false | |
| }, | |
| { | |
| "name": "KEYCLOAK_SESSION", | |
| "value": "realm-name/fb12aa62-d529-4fba-bfca-469e02d00e39/df13ef51-698c-461d-95ab-fea114d7055c", | |
| "path": "/realms/realm-name/", | |
| "domain": "localhost", | |
| "expires": "2023-02-09T03:16:49.895Z", | |
| "httpOnly": false, | |
| "secure": true, | |
| "sameSite": "None" | |
| }, | |
| { | |
| "name": "KEYCLOAK_SESSION_LEGACY", | |
| "value": "realm-name/fb12aa62-d529-4fba-bfca-469e02d00e39/df13ef51-698c-461d-95ab-fea114d7055c", | |
| "path": "/realms/realm-name/", | |
| "domain": "localhost", | |
| "expires": "2023-02-09T03:16:49.895Z", | |
| "httpOnly": false, | |
| "secure": false | |
| } | |
| ], | |
| "headersSize": 2436, | |
| "bodySize": 0 | |
| }, | |
| "response": { | |
| "status": 200, | |
| "statusText": "OK", | |
| "httpVersion": "HTTP/1.1", | |
| "headers": [ | |
| { | |
| "name": "Cache-Control", | |
| "value": "no-cache, must-revalidate, no-transform, no-store" | |
| }, | |
| { | |
| "name": "Content-Security-Policy", | |
| "value": "frame-src 'self'; object-src 'none';" | |
| }, | |
| { | |
| "name": "Content-Type", | |
| "value": "text/html;charset=utf-8" | |
| }, | |
| { | |
| "name": "P3P", | |
| "value": "CP=\"This is not a P3P policy!\"" | |
| }, | |
| { | |
| "name": "Referrer-Policy", | |
| "value": "no-referrer" | |
| }, | |
| { | |
| "name": "Strict-Transport-Security", | |
| "value": "max-age=31536000; includeSubDomains" | |
| }, | |
| { | |
| "name": "X-Content-Type-Options", | |
| "value": "nosniff" | |
| }, | |
| { | |
| "name": "X-Robots-Tag", | |
| "value": "none" | |
| }, | |
| { | |
| "name": "X-XSS-Protection", | |
| "value": "1; mode=block" | |
| }, | |
| { | |
| "name": "content-length", | |
| "value": "3233" | |
| } | |
| ], | |
| "cookies": [], | |
| "content": { | |
| "size": 3233, | |
| "mimeType": "text/html", | |
| "compression": 0, | |
| "text": "<!DOCTYPE html>\n<html>\n <head>\n <meta charset=\"utf-8\" />\n </head>\n <body>\n <script>\n var init;\n\n function checkState(clientId, origin, sessionState, callback) {\n var cookie = getCookie();\n\n var checkCookie = function () {\n if (clientId === init.clientId && origin === init.origin) {\n var c = cookie.split(\"/\");\n if (sessionState === c[2]) {\n callback(\"unchanged\");\n } else {\n callback(\"changed\");\n }\n } else {\n callback(\"error\");\n }\n };\n\n if (!init) {\n var req = new XMLHttpRequest();\n\n var url = location.href.split(\"?\")[0] + \"/init\";\n url += \"?client_id=\" + encodeURIComponent(clientId);\n url += \"&origin=\" + encodeURIComponent(origin);\n\n req.open(\"GET\", url, true);\n\n req.onreadystatechange = function () {\n if (req.readyState === 4) {\n if (req.status === 204 || req.status === 1223) {\n init = {\n clientId: clientId,\n origin: origin,\n };\n if (!cookie) {\n if (sessionState != \"\") {\n callback(\"changed\");\n } else {\n callback(\"unchanged\");\n }\n } else {\n checkCookie();\n }\n } else {\n callback(\"error\");\n }\n }\n };\n\n req.send();\n } else if (!cookie) {\n if (sessionState != \"\") {\n callback(\"changed\");\n } else {\n callback(\"unchanged\");\n }\n } else {\n checkCookie();\n }\n }\n\n function getCookie() {\n var cookie = getCookieByName(\"KEYCLOAK_SESSION\");\n if (cookie === null) {\n return getCookieByName(\"KEYCLOAK_SESSION_LEGACY\");\n }\n return cookie;\n }\n\n function getCookieByName(name) {\n name = name + \"=\";\n var ca = document.cookie.split(\";\");\n for (var i = 0; i < ca.length; i++) {\n var c = ca[i].trim();\n if (c.indexOf(name) === 0) return c.substring(name.length, c.length);\n }\n return null;\n }\n\n function receiveMessage(event) {\n if (typeof event.data !== \"string\") {\n return;\n }\n\n var origin = event.origin;\n var data = event.data.split(\" \");\n if (data.length != 2) {\n return;\n }\n\n var clientId = data[0];\n var sessionState = data[1];\n\n function doStateCheck() {\n checkState(clientId, event.origin, sessionState, function (result) {\n event.source.postMessage(result, origin);\n });\n }\n\n if (!(\"hasStorageAccess\" in document)) {\n doStateCheck();\n return;\n }\n\n document.hasStorageAccess().then(function (hasAccess) {\n if (!hasAccess) {\n event.source.postMessage(\"error\");\n return;\n }\n\n doStateCheck();\n });\n }\n\n window.addEventListener(\"message\", receiveMessage, false);\n </script>\n </body>\n</html>\n" | |
| }, | |
| "redirectURL": "", | |
| "headersSize": 426, | |
| "bodySize": 3233, | |
| "_transferSize": 3659, | |
| "_error": null | |
| }, | |
| "serverIPAddress": "[::1]", | |
| "startedDateTime": "2023-02-08T17:16:50.397Z", | |
| "time": 43.4650001116097, | |
| "timings": { | |
| "blocked": 30.98300014874339, | |
| "dns": -1, | |
| "ssl": -1, | |
| "connect": -1, | |
| "send": 0.10400000000000009, | |
| "wait": 3.624999902769923, | |
| "receive": 8.753000060096383, | |
| "_blocked_queueing": 28.48700014874339 | |
| } | |
| }, | |
| { | |
| "_initiator": { | |
| "type": "script", | |
| "stack": { | |
| "callFrames": [ | |
| { | |
| "functionName": "processCallback", | |
| "scriptId": "161", | |
| "url": "https://cdn.jsdelivr.net/npm/keycloak-js@20.0.3/dist/keycloak.js", | |
| "lineNumber": 1443, | |
| "columnNumber": 17 | |
| }, | |
| { | |
| "functionName": "", | |
| "scriptId": "161", | |
| "url": "https://cdn.jsdelivr.net/npm/keycloak-js@20.0.3/dist/keycloak.js", | |
| "lineNumber": 922, | |
| "columnNumber": 21 | |
| }, | |
| { | |
| "functionName": "T", | |
| "scriptId": "161", | |
| "url": "https://cdn.jsdelivr.net/npm/keycloak-js@20.0.3/dist/keycloak.js", | |
| "lineNumber": 15, | |
| "columnNumber": 2554 | |
| }, | |
| { | |
| "functionName": "E", | |
| "scriptId": "161", | |
| "url": "https://cdn.jsdelivr.net/npm/keycloak-js@20.0.3/dist/keycloak.js", | |
| "lineNumber": 15, | |
| "columnNumber": 2446 | |
| }, | |
| { | |
| "functionName": "a", | |
| "scriptId": "161", | |
| "url": "https://cdn.jsdelivr.net/npm/keycloak-js@20.0.3/dist/keycloak.js", | |
| "lineNumber": 15, | |
| "columnNumber": 698 | |
| } | |
| ], | |
| "parent": { | |
| "description": "characterData", | |
| "callFrames": [ | |
| { | |
| "functionName": "", | |
| "scriptId": "161", | |
| "url": "https://cdn.jsdelivr.net/npm/keycloak-js@20.0.3/dist/keycloak.js", | |
| "lineNumber": 15, | |
| "columnNumber": 462 | |
| }, | |
| { | |
| "functionName": "z", | |
| "scriptId": "161", | |
| "url": "https://cdn.jsdelivr.net/npm/keycloak-js@20.0.3/dist/keycloak.js", | |
| "lineNumber": 15, | |
| "columnNumber": 4114 | |
| }, | |
| { | |
| "functionName": "A", | |
| "scriptId": "161", | |
| "url": "https://cdn.jsdelivr.net/npm/keycloak-js@20.0.3/dist/keycloak.js", | |
| "lineNumber": 15, | |
| "columnNumber": 2117 | |
| }, | |
| { | |
| "functionName": "w", | |
| "scriptId": "161", | |
| "url": "https://cdn.jsdelivr.net/npm/keycloak-js@20.0.3/dist/keycloak.js", | |
| "lineNumber": 15, | |
| "columnNumber": 1974 | |
| }, | |
| { | |
| "functionName": "", | |
| "scriptId": "161", | |
| "url": "https://cdn.jsdelivr.net/npm/keycloak-js@20.0.3/dist/keycloak.js", | |
| "lineNumber": 15, | |
| "columnNumber": 2722 | |
| }, | |
| { | |
| "functionName": "setSuccess", | |
| "scriptId": "161", | |
| "url": "https://cdn.jsdelivr.net/npm/keycloak-js@20.0.3/dist/keycloak.js", | |
| "lineNumber": 1825, | |
| "columnNumber": 19 | |
| }, | |
| { | |
| "functionName": "iframe.onload", | |
| "scriptId": "161", | |
| "url": "https://cdn.jsdelivr.net/npm/keycloak-js@20.0.3/dist/keycloak.js", | |
| "lineNumber": 1897, | |
| "columnNumber": 21 | |
| } | |
| ], | |
| "parent": { | |
| "description": "load", | |
| "callFrames": [ | |
| { | |
| "functionName": "setupCheckLoginIframe", | |
| "scriptId": "161", | |
| "url": "https://cdn.jsdelivr.net/npm/keycloak-js@20.0.3/dist/keycloak.js", | |
| "lineNumber": 1890, | |
| "columnNumber": 23 | |
| }, | |
| { | |
| "functionName": "processInit", | |
| "scriptId": "161", | |
| "url": "https://cdn.jsdelivr.net/npm/keycloak-js@20.0.3/dist/keycloak.js", | |
| "lineNumber": 921, | |
| "columnNumber": 24 | |
| }, | |
| { | |
| "functionName": "T", | |
| "scriptId": "161", | |
| "url": "https://cdn.jsdelivr.net/npm/keycloak-js@20.0.3/dist/keycloak.js", | |
| "lineNumber": 15, | |
| "columnNumber": 2554 | |
| }, | |
| { | |
| "functionName": "E", | |
| "scriptId": "161", | |
| "url": "https://cdn.jsdelivr.net/npm/keycloak-js@20.0.3/dist/keycloak.js", | |
| "lineNumber": 15, | |
| "columnNumber": 2446 | |
| }, | |
| { | |
| "functionName": "a", | |
| "scriptId": "161", | |
| "url": "https://cdn.jsdelivr.net/npm/keycloak-js@20.0.3/dist/keycloak.js", | |
| "lineNumber": 15, | |
| "columnNumber": 698 | |
| } | |
| ], | |
| "parent": { | |
| "description": "characterData", | |
| "callFrames": [ | |
| { | |
| "functionName": "", | |
| "scriptId": "161", | |
| "url": "https://cdn.jsdelivr.net/npm/keycloak-js@20.0.3/dist/keycloak.js", | |
| "lineNumber": 15, | |
| "columnNumber": 462 | |
| }, | |
| { | |
| "functionName": "z", | |
| "scriptId": "161", | |
| "url": "https://cdn.jsdelivr.net/npm/keycloak-js@20.0.3/dist/keycloak.js", | |
| "lineNumber": 15, | |
| "columnNumber": 4114 | |
| }, | |
| { | |
| "functionName": "A", | |
| "scriptId": "161", | |
| "url": "https://cdn.jsdelivr.net/npm/keycloak-js@20.0.3/dist/keycloak.js", | |
| "lineNumber": 15, | |
| "columnNumber": 2117 | |
| }, | |
| { | |
| "functionName": "w", | |
| "scriptId": "161", | |
| "url": "https://cdn.jsdelivr.net/npm/keycloak-js@20.0.3/dist/keycloak.js", | |
| "lineNumber": 15, | |
| "columnNumber": 1974 | |
| }, | |
| { | |
| "functionName": "", | |
| "scriptId": "161", | |
| "url": "https://cdn.jsdelivr.net/npm/keycloak-js@20.0.3/dist/keycloak.js", | |
| "lineNumber": 15, | |
| "columnNumber": 2722 | |
| }, | |
| { | |
| "functionName": "setSuccess", | |
| "scriptId": "161", | |
| "url": "https://cdn.jsdelivr.net/npm/keycloak-js@20.0.3/dist/keycloak.js", | |
| "lineNumber": 1825, | |
| "columnNumber": 19 | |
| }, | |
| { | |
| "functionName": "messageCallback", | |
| "scriptId": "161", | |
| "url": "https://cdn.jsdelivr.net/npm/keycloak-js@20.0.3/dist/keycloak.js", | |
| "lineNumber": 1996, | |
| "columnNumber": 25 | |
| } | |
| ], | |
| "parent": { | |
| "description": "postMessage", | |
| "callFrames": [ | |
| { | |
| "functionName": "", | |
| "scriptId": "171", | |
| "url": "http://localhost:8080/realms/realm-name/protocol/openid-connect/3p-cookies/step2.html", | |
| "lineNumber": 14, | |
| "columnNumber": 20 | |
| } | |
| ] | |
| } | |
| } | |
| } | |
| } | |
| } | |
| }, | |
| "_priority": "High", | |
| "_resourceType": "xhr", | |
| "cache": {}, | |
| "connection": "2080548", | |
| "pageref": "page_7", | |
| "request": { | |
| "method": "POST", | |
| "url": "http://localhost:8080/realms/realm-name/protocol/openid-connect/token", | |
| "httpVersion": "HTTP/1.1", | |
| "headers": [ | |
| { | |
| "name": "Accept", | |
| "value": "*/*" | |
| }, | |
| { | |
| "name": "Accept-Encoding", | |
| "value": "gzip, deflate, br" | |
| }, | |
| { | |
| "name": "Accept-Language", | |
| "value": "ru,en;q=0.9" | |
| }, | |
| { | |
| "name": "Cache-Control", | |
| "value": "no-cache" | |
| }, | |
| { | |
| "name": "Connection", | |
| "value": "keep-alive" | |
| }, | |
| { | |
| "name": "Content-Length", | |
| "value": "227" | |
| }, | |
| { | |
| "name": "Content-type", | |
| "value": "application/x-www-form-urlencoded" | |
| }, | |
| { | |
| "name": "Cookie", | |
| "value": "AUTH_SESSION_ID=df13ef51-698c-461d-95ab-fea114d7055c; AUTH_SESSION_ID_LEGACY=df13ef51-698c-461d-95ab-fea114d7055c; KEYCLOAK_IDENTITY=eyJhbGciOiJIUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICI4N2UwYWNmZC0yMTgzLTRlZTgtYjRhMS1mM2IyMzA4ZjE1ZTAifQ.eyJleHAiOjE2NzU5MTI2MDksImlhdCI6MTY3NTg3NjYwOSwianRpIjoiOWZkOWI0MTUtY2YwNi00N2ZmLTkyNmUtOWNkZTA5N2JlYTZmIiwiaXNzIjoiaHR0cDovL2xvY2FsaG9zdDo4MDgwL3JlYWxtcy9yZWFsbS1uYW1lIiwic3ViIjoiZmIxMmFhNjItZDUyOS00ZmJhLWJmY2EtNDY5ZTAyZDAwZTM5IiwidHlwIjoiU2VyaWFsaXplZC1JRCIsInNlc3Npb25fc3RhdGUiOiJkZjEzZWY1MS02OThjLTQ2MWQtOTVhYi1mZWExMTRkNzA1NWMiLCJzaWQiOiJkZjEzZWY1MS02OThjLTQ2MWQtOTVhYi1mZWExMTRkNzA1NWMiLCJzdGF0ZV9jaGVja2VyIjoib0NacFUtenN2MVN2ZlZTVVpPZXM3T0tCRmxQWDBWWXIzaWNUcTlXQXlHRSJ9.j56dMKbkzwTdcAd2CUl_POadxjwAOgRLofhoNpdlIyw; KEYCLOAK_IDENTITY_LEGACY=eyJhbGciOiJIUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICI4N2UwYWNmZC0yMTgzLTRlZTgtYjRhMS1mM2IyMzA4ZjE1ZTAifQ.eyJleHAiOjE2NzU5MTI2MDksImlhdCI6MTY3NTg3NjYwOSwianRpIjoiOWZkOWI0MTUtY2YwNi00N2ZmLTkyNmUtOWNkZTA5N2JlYTZmIiwiaXNzIjoiaHR0cDovL2xvY2FsaG9zdDo4MDgwL3JlYWxtcy9yZWFsbS1uYW1lIiwic3ViIjoiZmIxMmFhNjItZDUyOS00ZmJhLWJmY2EtNDY5ZTAyZDAwZTM5IiwidHlwIjoiU2VyaWFsaXplZC1JRCIsInNlc3Npb25fc3RhdGUiOiJkZjEzZWY1MS02OThjLTQ2MWQtOTVhYi1mZWExMTRkNzA1NWMiLCJzaWQiOiJkZjEzZWY1MS02OThjLTQ2MWQtOTVhYi1mZWExMTRkNzA1NWMiLCJzdGF0ZV9jaGVja2VyIjoib0NacFUtenN2MVN2ZlZTVVpPZXM3T0tCRmxQWDBWWXIzaWNUcTlXQXlHRSJ9.j56dMKbkzwTdcAd2CUl_POadxjwAOgRLofhoNpdlIyw; KEYCLOAK_SESSION=realm-name/fb12aa62-d529-4fba-bfca-469e02d00e39/df13ef51-698c-461d-95ab-fea114d7055c; KEYCLOAK_SESSION_LEGACY=realm-name/fb12aa62-d529-4fba-bfca-469e02d00e39/df13ef51-698c-461d-95ab-fea114d7055c" | |
| }, | |
| { | |
| "name": "Host", | |
| "value": "localhost:8080" | |
| }, | |
| { | |
| "name": "Origin", | |
| "value": "http://localhost:8081" | |
| }, | |
| { | |
| "name": "Pragma", | |
| "value": "no-cache" | |
| }, | |
| { | |
| "name": "Referer", | |
| "value": "http://localhost:8081/" | |
| }, | |
| { | |
| "name": "Sec-Fetch-Dest", | |
| "value": "empty" | |
| }, | |
| { | |
| "name": "Sec-Fetch-Mode", | |
| "value": "cors" | |
| }, | |
| { | |
| "name": "Sec-Fetch-Site", | |
| "value": "same-site" | |
| }, | |
| { | |
| "name": "User-Agent", | |
| "value": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 YaBrowser/22.11.3.824 Yowser/2.5 Safari/537.36" | |
| }, | |
| { | |
| "name": "sec-ch-ua", | |
| "value": "\"Chromium\";v=\"106\", \"Yandex\";v=\"22\", \"Not;A=Brand\";v=\"99\"" | |
| }, | |
| { | |
| "name": "sec-ch-ua-mobile", | |
| "value": "?0" | |
| }, | |
| { | |
| "name": "sec-ch-ua-platform", | |
| "value": "\"macOS\"" | |
| } | |
| ], | |
| "queryString": [], | |
| "cookies": [ | |
| { | |
| "name": "AUTH_SESSION_ID", | |
| "value": "df13ef51-698c-461d-95ab-fea114d7055c", | |
| "path": "/realms/realm-name/", | |
| "domain": "localhost", | |
| "expires": "1969-12-31T23:59:59.000Z", | |
| "httpOnly": true, | |
| "secure": true, | |
| "sameSite": "None" | |
| }, | |
| { | |
| "name": "AUTH_SESSION_ID_LEGACY", | |
| "value": "df13ef51-698c-461d-95ab-fea114d7055c", | |
| "path": "/realms/realm-name/", | |
| "domain": "localhost", | |
| "expires": "1969-12-31T23:59:59.000Z", | |
| "httpOnly": true, | |
| "secure": false | |
| }, | |
| { | |
| "name": "KEYCLOAK_IDENTITY", | |
| "value": "eyJhbGciOiJIUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICI4N2UwYWNmZC0yMTgzLTRlZTgtYjRhMS1mM2IyMzA4ZjE1ZTAifQ.eyJleHAiOjE2NzU5MTI2MDksImlhdCI6MTY3NTg3NjYwOSwianRpIjoiOWZkOWI0MTUtY2YwNi00N2ZmLTkyNmUtOWNkZTA5N2JlYTZmIiwiaXNzIjoiaHR0cDovL2xvY2FsaG9zdDo4MDgwL3JlYWxtcy9yZWFsbS1uYW1lIiwic3ViIjoiZmIxMmFhNjItZDUyOS00ZmJhLWJmY2EtNDY5ZTAyZDAwZTM5IiwidHlwIjoiU2VyaWFsaXplZC1JRCIsInNlc3Npb25fc3RhdGUiOiJkZjEzZWY1MS02OThjLTQ2MWQtOTVhYi1mZWExMTRkNzA1NWMiLCJzaWQiOiJkZjEzZWY1MS02OThjLTQ2MWQtOTVhYi1mZWExMTRkNzA1NWMiLCJzdGF0ZV9jaGVja2VyIjoib0NacFUtenN2MVN2ZlZTVVpPZXM3T0tCRmxQWDBWWXIzaWNUcTlXQXlHRSJ9.j56dMKbkzwTdcAd2CUl_POadxjwAOgRLofhoNpdlIyw", | |
| "path": "/realms/realm-name/", | |
| "domain": "localhost", | |
| "expires": "1969-12-31T23:59:59.000Z", | |
| "httpOnly": true, | |
| "secure": true, | |
| "sameSite": "None" | |
| }, | |
| { | |
| "name": "KEYCLOAK_IDENTITY_LEGACY", | |
| "value": "eyJhbGciOiJIUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICI4N2UwYWNmZC0yMTgzLTRlZTgtYjRhMS1mM2IyMzA4ZjE1ZTAifQ.eyJleHAiOjE2NzU5MTI2MDksImlhdCI6MTY3NTg3NjYwOSwianRpIjoiOWZkOWI0MTUtY2YwNi00N2ZmLTkyNmUtOWNkZTA5N2JlYTZmIiwiaXNzIjoiaHR0cDovL2xvY2FsaG9zdDo4MDgwL3JlYWxtcy9yZWFsbS1uYW1lIiwic3ViIjoiZmIxMmFhNjItZDUyOS00ZmJhLWJmY2EtNDY5ZTAyZDAwZTM5IiwidHlwIjoiU2VyaWFsaXplZC1JRCIsInNlc3Npb25fc3RhdGUiOiJkZjEzZWY1MS02OThjLTQ2MWQtOTVhYi1mZWExMTRkNzA1NWMiLCJzaWQiOiJkZjEzZWY1MS02OThjLTQ2MWQtOTVhYi1mZWExMTRkNzA1NWMiLCJzdGF0ZV9jaGVja2VyIjoib0NacFUtenN2MVN2ZlZTVVpPZXM3T0tCRmxQWDBWWXIzaWNUcTlXQXlHRSJ9.j56dMKbkzwTdcAd2CUl_POadxjwAOgRLofhoNpdlIyw", | |
| "path": "/realms/realm-name/", | |
| "domain": "localhost", | |
| "expires": "1969-12-31T23:59:59.000Z", | |
| "httpOnly": true, | |
| "secure": false | |
| }, | |
| { | |
| "name": "KEYCLOAK_SESSION", | |
| "value": "realm-name/fb12aa62-d529-4fba-bfca-469e02d00e39/df13ef51-698c-461d-95ab-fea114d7055c", | |
| "path": "/realms/realm-name/", | |
| "domain": "localhost", | |
| "expires": "2023-02-09T03:16:49.895Z", | |
| "httpOnly": false, | |
| "secure": true, | |
| "sameSite": "None" | |
| }, | |
| { | |
| "name": "KEYCLOAK_SESSION_LEGACY", | |
| "value": "realm-name/fb12aa62-d529-4fba-bfca-469e02d00e39/df13ef51-698c-461d-95ab-fea114d7055c", | |
| "path": "/realms/realm-name/", | |
| "domain": "localhost", | |
| "expires": "2023-02-09T03:16:49.895Z", | |
| "httpOnly": false, | |
| "secure": false | |
| } | |
| ], | |
| "headersSize": 2352, | |
| "bodySize": 227, | |
| "postData": { | |
| "mimeType": "application/x-www-form-urlencoded", | |
| "text": "code=59f4de64-f7c2-40ec-9dc4-8e4003a0a6dd.df13ef51-698c-461d-95ab-fea114d7055c.4f4e5444-ab78-4702-8cfd-51a19e554988&grant_type=authorization_code&client_id=client-id&redirect_uri=http%3A%2F%2Flocalhost%3A8081%2Fkeycloak-example", | |
| "params": [ | |
| { | |
| "name": "code", | |
| "value": "59f4de64-f7c2-40ec-9dc4-8e4003a0a6dd.df13ef51-698c-461d-95ab-fea114d7055c.4f4e5444-ab78-4702-8cfd-51a19e554988" | |
| }, | |
| { | |
| "name": "grant_type", | |
| "value": "authorization_code" | |
| }, | |
| { | |
| "name": "client_id", | |
| "value": "client-id" | |
| }, | |
| { | |
| "name": "redirect_uri", | |
| "value": "http%3A%2F%2Flocalhost%3A8081%2Fkeycloak-example" | |
| } | |
| ] | |
| } | |
| }, | |
| "response": { | |
| "status": 401, | |
| "statusText": "Unauthorized", | |
| "httpVersion": "HTTP/1.1", | |
| "headers": [ | |
| { | |
| "name": "Access-Control-Allow-Credentials", | |
| "value": "true" | |
| }, | |
| { | |
| "name": "Access-Control-Allow-Origin", | |
| "value": "http://localhost:8081" | |
| }, | |
| { | |
| "name": "Access-Control-Expose-Headers", | |
| "value": "Access-Control-Allow-Methods" | |
| }, | |
| { | |
| "name": "Cache-Control", | |
| "value": "no-store" | |
| }, | |
| { | |
| "name": "Content-Type", | |
| "value": "application/json" | |
| }, | |
| { | |
| "name": "Pragma", | |
| "value": "no-cache" | |
| }, | |
| { | |
| "name": "Referrer-Policy", | |
| "value": "no-referrer" | |
| }, | |
| { | |
| "name": "Strict-Transport-Security", | |
| "value": "max-age=31536000; includeSubDomains" | |
| }, | |
| { | |
| "name": "X-Content-Type-Options", | |
| "value": "nosniff" | |
| }, | |
| { | |
| "name": "X-Frame-Options", | |
| "value": "SAMEORIGIN" | |
| }, | |
| { | |
| "name": "X-XSS-Protection", | |
| "value": "1; mode=block" | |
| }, | |
| { | |
| "name": "content-length", | |
| "value": "98" | |
| } | |
| ], | |
| "cookies": [], | |
| "content": { | |
| "size": 98, | |
| "mimeType": "application/json", | |
| "compression": 0, | |
| "text": "{\"error\":\"unauthorized_client\",\"error_description\":\"Invalid client or Invalid client credentials\"}" | |
| }, | |
| "redirectURL": "", | |
| "headersSize": 466, | |
| "bodySize": 98, | |
| "_transferSize": 564, | |
| "_error": null | |
| }, | |
| "serverIPAddress": "[::1]", | |
| "startedDateTime": "2023-02-08T17:16:50.592Z", | |
| "time": 12.45600008405745, | |
| "timings": { | |
| "blocked": 3.2860000741928816, | |
| "dns": -1, | |
| "ssl": -1, | |
| "connect": -1, | |
| "send": 0.11399999999999988, | |
| "wait": 6.072000105619431, | |
| "receive": 2.983999904245138, | |
| "_blocked_queueing": 2.0890000741928816 | |
| } | |
| } | |
| ] | |
| } | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment