mirror of
https://github.com/Kong/insomnia
synced 2024-11-08 14:49:53 +00:00
549ce23ce8
* All projects into monorepo * Update CI * More CI updates * Extracted a bunch of things into packages * Publish - insomnia-plugin-base64@1.0.1 - insomnia-plugin-default-headers@1.0.2 - insomnia-plugin-file@1.0.1 - insomnia-plugin-hash@1.0.1 - insomnia-plugin-now@1.0.1 - insomnia-plugin-request@1.0.1 - insomnia-plugin-response@1.0.1 - insomnia-plugin-uuid@1.0.1 - insomnia-cookies@0.0.2 - insomnia-importers@1.5.2 - insomnia-prettify@0.0.3 - insomnia-url@0.0.2 - insomnia-xpath@0.0.2 * A bunch of small fixes * Improved build script * Fixed * Merge dangling files * Usability refactor * Handle duplicate plugin names
38 lines
1.1 KiB
JavaScript
38 lines
1.1 KiB
JavaScript
import {parse as urlParse} from 'url';
|
|
import certificateUrlParse from './certificate-url-parse';
|
|
import {escapeRegex} from '../common/misc';
|
|
import {setDefaultProtocol} from 'insomnia-url';
|
|
|
|
const DEFAULT_PORT = 443;
|
|
|
|
export function urlMatchesCertHost (certificateHost, requestUrl) {
|
|
const cHostWithProtocol = setDefaultProtocol(certificateHost, 'https:');
|
|
const {hostname, port} = urlParse(requestUrl);
|
|
const {hostname: cHostname, port: cPort} = certificateUrlParse(cHostWithProtocol);
|
|
|
|
const assumedPort = parseInt(port) || DEFAULT_PORT;
|
|
const assumedCPort = parseInt(cPort) || DEFAULT_PORT;
|
|
|
|
const cHostnameRegex = escapeRegex(cHostname || '').replace(/\\\*/g, '.*');
|
|
const cPortRegex = escapeRegex(cPort || '').replace(/\\\*/g, '.*');
|
|
|
|
// Check ports
|
|
if ((cPort + '').includes('*')) {
|
|
if (!(port || '').match(`^${cPortRegex}$`)) {
|
|
return false;
|
|
}
|
|
} else {
|
|
if (assumedCPort !== assumedPort) {
|
|
return false;
|
|
}
|
|
}
|
|
|
|
// Check hostnames
|
|
if (!(hostname || '').match(`^${cHostnameRegex}$`)) {
|
|
return false;
|
|
}
|
|
|
|
// Everything matches
|
|
return true;
|
|
}
|