Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 | 1x 1x 1x 9x 1x 8x 8x 8x 8x 1x 3x 1x 2x 2x 2x 1x 4686x 4686x 4686x 4686x 1573x 3113x 3113x 1x 1x 3113x 106x 106x 2x 2x 106x 72x 34x 34x 3113x 1x 4687x 1x 4686x 4686x 9x 4677x 1x 12x | import Uri from "urijs";
import defined from "./defined.js";
import DeveloperError from "./DeveloperError.js";
/**
* A singleton that contains all of the servers that are trusted. Credentials will be sent with
* any requests to these servers.
*
* @namespace TrustedServers
*
* @see {@link http://www.w3.org/TR/cors/|Cross-Origin Resource Sharing}
*/
const TrustedServers = {};
let _servers = {};
/**
* Adds a trusted server to the registry
*
* @param {string} host The host to be added.
* @param {number} port The port used to access the host.
*
* @example
* // Add a trusted server
* TrustedServers.add('my.server.com', 80);
*/
TrustedServers.add = function (host, port) {
//>>includeStart('debug', pragmas.debug);
if (!defined(host)) {
throw new DeveloperError("host is required.");
}
Iif (!defined(port) || port <= 0) {
throw new DeveloperError("port is required to be greater than 0.");
}
//>>includeEnd('debug');
const authority = `${host.toLowerCase()}:${port}`;
Eif (!defined(_servers[authority])) {
_servers[authority] = true;
}
};
/**
* Removes a trusted server from the registry
*
* @param {string} host The host to be removed.
* @param {number} port The port used to access the host.
*
* @example
* // Remove a trusted server
* TrustedServers.remove('my.server.com', 80);
*/
TrustedServers.remove = function (host, port) {
//>>includeStart('debug', pragmas.debug);
if (!defined(host)) {
throw new DeveloperError("host is required.");
}
Iif (!defined(port) || port <= 0) {
throw new DeveloperError("port is required to be greater than 0.");
}
//>>includeEnd('debug');
const authority = `${host.toLowerCase()}:${port}`;
if (defined(_servers[authority])) {
delete _servers[authority];
}
};
function getAuthority(url) {
const uri = new Uri(url);
uri.normalize();
// Removes username:password@ so we just have host[:port]
let authority = uri.authority();
if (authority.length === 0) {
return undefined; // Relative URL
}
uri.authority(authority);
if (authority.indexOf("@") !== -1) {
const parts = authority.split("@");
authority = parts[1];
}
// If the port is missing add one based on the scheme
if (authority.indexOf(":") === -1) {
let scheme = uri.scheme();
if (scheme.length === 0) {
scheme = window.location.protocol;
scheme = scheme.substring(0, scheme.length - 1);
}
if (scheme === "http") {
authority += ":80";
} else if (scheme === "https") {
authority += ":443";
} else E{
return undefined;
}
}
return authority;
}
/**
* Tests whether a server is trusted or not. The server must have been added with the port if it is included in the url.
*
* @param {string} url The url to be tested against the trusted list
*
* @returns {boolean} Returns true if url is trusted, false otherwise.
*
* @example
* // Add server
* TrustedServers.add('my.server.com', 81);
*
* // Check if server is trusted
* if (TrustedServers.contains('https://my.server.com:81/path/to/file.png')) {
* // my.server.com:81 is trusted
* }
* if (TrustedServers.contains('https://my.server.com/path/to/file.png')) {
* // my.server.com isn't trusted
* }
*/
TrustedServers.contains = function (url) {
//>>includeStart('debug', pragmas.debug);
if (!defined(url)) {
throw new DeveloperError("url is required.");
}
//>>includeEnd('debug');
const authority = getAuthority(url);
if (defined(authority) && defined(_servers[authority])) {
return true;
}
return false;
};
/**
* Clears the registry
*
* @example
* // Remove a trusted server
* TrustedServers.clear();
*/
TrustedServers.clear = function () {
_servers = {};
};
export default TrustedServers;
|