mirror of
https://github.com/Kong/insomnia
synced 2024-11-12 17:26:32 +00:00
cd54a74f2f
* Allow wildcards in client certificate hosts * Add test for certificate hosts that are only wildcards * Constants should be upper case * Fix function import for urlMatchesCertHost * Document certificate host wildcards * Prefer direct function exports in library files * Use string substitution for wildcards when parsing certificate urls
20 lines
812 B
JavaScript
20 lines
812 B
JavaScript
import {parse as urlParse} from 'url';
|
|
import certificateUrlParse from './certificate-url-parse';
|
|
import {setDefaultProtocol} from '../common/misc';
|
|
|
|
const DEFAULT_PORT = 443;
|
|
|
|
export default 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 = (cHostname || '').replace(/([.+?^=!:${}()|[\]/\\])/g, '\\$1')
|
|
.replace(/\*/g, '.*');
|
|
|
|
return (assumedCPort === assumedPort && !!hostname.match(`^${cHostnameRegex}$`));
|
|
}
|