tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

server_continue_on_idtoken.sjs (1704B)


      1 /* Any copyright is dedicated to the Public Domain.
      2  * http://creativecommons.org/publicdomain/zero/1.0/
      3  */
      4 
      5 const BinaryInputStream = Components.Constructor(
      6   "@mozilla.org/binaryinputstream;1",
      7   "nsIBinaryInputStream",
      8   "setInputStream"
      9 );
     10 
     11 function readStream(inputStream) {
     12   let available = 0;
     13   let result = [];
     14   while ((available = inputStream.available()) > 0) {
     15     result.push(inputStream.readBytes(available));
     16   }
     17   return result.join("");
     18 }
     19 
     20 function handleRequest(request, response) {
     21   if (request.method != "POST") {
     22     response.setStatusLine(request.httpVersion, 405, "Method Not Allowed");
     23     return;
     24   }
     25   if (
     26     !request.hasHeader("Cookie") ||
     27     request.getHeader("Cookie") != "credential=authcookieval"
     28   ) {
     29     response.setStatusLine(request.httpVersion, 400, "Bad Request");
     30     return;
     31   }
     32   if (
     33     !request.hasHeader("Sec-Fetch-Dest") ||
     34     request.getHeader("Sec-Fetch-Dest") != "webidentity"
     35   ) {
     36     response.setStatusLine(request.httpVersion, 400, "Bad Request");
     37     return;
     38   }
     39   if (
     40     !request.hasHeader("Origin") ||
     41     request.getHeader("Origin") != "https://example.com"
     42   ) {
     43     response.setStatusLine(request.httpVersion, 400, "Bad Request");
     44     return;
     45   }
     46 
     47   response.setHeader("Access-Control-Allow-Origin", "https://example.com");
     48   response.setHeader("Access-Control-Allow-Credentials", "true");
     49   response.setHeader("Content-Type", "application/json");
     50   let responseContent = {
     51     continue_on:
     52       "https://example.net/tests/dom/credentialmanagement/identity/tests/mochitest/helper_continue_on.html",
     53   };
     54   let body = JSON.stringify(responseContent);
     55   response.setStatusLine(request.httpVersion, 200, "OK");
     56   response.write(body);
     57 }