in src/msha/auth/routes/auth-login-provider-callback.ts [258:304]
const getRoles = function (clientPrincipal: RolesSourceFunctionRequestBody, rolesSource: string) {
let cliApiUri = SWA_CLI_API_URI();
const { protocol, hostname, port } = parseUrl(cliApiUri);
const target = hostname === "localhost" ? `${protocol}//127.0.0.1:${port}` : cliApiUri;
const targetUrl = new URL(target!);
const data = JSON.stringify(clientPrincipal);
const options = {
host: targetUrl.hostname,
port: targetUrl.port,
path: rolesSource,
method: "POST",
headers: {
"Content-Type": "application/json",
"Content-Length": Buffer.byteLength(data),
},
};
return new Promise((resolve, reject) => {
const protocolModule = targetUrl.protocol === "https:" ? https : http;
const req = protocolModule.request(options, (res) => {
res.setEncoding("utf8");
let responseBody = "";
res.on("data", (chunk) => {
responseBody += chunk;
});
res.on("end", () => {
try {
resolve(JSON.parse(responseBody));
} catch (err) {
reject(err);
}
});
});
req.on("error", (err) => {
reject(err);
});
req.write(data);
req.end();
});
};