docs: add quixzoom-auth-core product to AAMOS
- Product documentation in docs/products/ - Updated MEMORY.md with product info - quiXzoom Auth Core as AAMOS Identity product
This commit is contained in:
+48
@@ -0,0 +1,48 @@
|
||||
"use strict";
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const net_1 = __importDefault(require("net"));
|
||||
const tls_1 = __importDefault(require("tls"));
|
||||
const Agent_1 = __importDefault(require("./Agent"));
|
||||
class HttpsProxyAgent extends Agent_1.default {
|
||||
constructor(isProxyConfigured, mustUrlUseProxy, getUrlProxy, fallbackAgent, socketConnectionTimeout, ca) {
|
||||
super(isProxyConfigured, mustUrlUseProxy, getUrlProxy, fallbackAgent, socketConnectionTimeout, ca);
|
||||
this.protocol = 'https:';
|
||||
this.defaultPort = 443;
|
||||
}
|
||||
createConnection(configuration, callback) {
|
||||
const socket = net_1.default.connect(configuration.proxy.port, configuration.proxy.hostname);
|
||||
socket.on('error', (error) => {
|
||||
callback(error);
|
||||
});
|
||||
socket.once('data', (data) => {
|
||||
var _a;
|
||||
// Proxies with HTTPS as protocal are not allowed by parseProxyUrl(), so it should be safe to assume that the response is plain text
|
||||
const statusLine = data.toString().split('\r\n')[0];
|
||||
const statusLineExp = /^HTTP\/(\d)\.(\d) (\d{3}) ?(.*)$/;
|
||||
const statusCode = (_a = statusLineExp.exec(statusLine)) === null || _a === void 0 ? void 0 : _a[3];
|
||||
if (typeof statusCode === 'string' && Number(statusCode) >= 400) {
|
||||
const error = new Error(`Proxy server refused connecting to '${configuration.host}:${configuration.port}' (${statusLine})`);
|
||||
socket.destroy();
|
||||
callback(error);
|
||||
return;
|
||||
}
|
||||
const secureSocket = tls_1.default.connect({
|
||||
...configuration.tls,
|
||||
socket,
|
||||
});
|
||||
callback(null, secureSocket);
|
||||
});
|
||||
let connectMessage = '';
|
||||
connectMessage += 'CONNECT ' + configuration.host + ':' + configuration.port + ' HTTP/1.1\r\n';
|
||||
connectMessage += 'Host: ' + configuration.host + ':' + configuration.port + '\r\n';
|
||||
if (configuration.proxy.authorization) {
|
||||
connectMessage += 'Proxy-Authorization: Basic ' + Buffer.from(configuration.proxy.authorization).toString('base64') + '\r\n';
|
||||
}
|
||||
connectMessage += '\r\n';
|
||||
socket.write(connectMessage);
|
||||
}
|
||||
}
|
||||
exports.default = HttpsProxyAgent;
|
||||
Reference in New Issue
Block a user