whitelist: Do case-insensitive whitelist matching
Matching whitelisted bridges using a case-insensitive match makes sense for following reasons: - Wrong upper/lower case spelling in the whitelist is not easily discovered. Example: Misspelling 'Youtube' as 'YouTube' will not show the 'Youtube' bridge (while it is expected to show) - Two bridges with the same name but different letter casing are discouraged to prevent confusion and keep the project compatible with Windows machines
This commit is contained in:
parent
fc0ae42450
commit
84d2c02a09
2 changed files with 7 additions and 4 deletions
|
@ -119,6 +119,9 @@ try {
|
||||||
} else {
|
} else {
|
||||||
$whitelist_selection = Bridge::listBridges();
|
$whitelist_selection = Bridge::listBridges();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Prepare for case-insensitive match
|
||||||
|
$whitelist_selection = array_map('strtolower', $whitelist_selection);
|
||||||
}
|
}
|
||||||
|
|
||||||
$action = filter_input(INPUT_GET, 'action');
|
$action = filter_input(INPUT_GET, 'action');
|
||||||
|
@ -140,7 +143,7 @@ try {
|
||||||
}
|
}
|
||||||
|
|
||||||
// whitelist control
|
// whitelist control
|
||||||
if(!Bridge::isWhitelisted($whitelist_selection, $bridge)) {
|
if(!Bridge::isWhitelisted($whitelist_selection, strtolower($bridge))) {
|
||||||
throw new \HttpException('This bridge is not whitelisted', 401);
|
throw new \HttpException('This bridge is not whitelisted', 401);
|
||||||
die;
|
die;
|
||||||
}
|
}
|
||||||
|
@ -246,7 +249,7 @@ EOD;
|
||||||
$inactiveBridges = '';
|
$inactiveBridges = '';
|
||||||
$bridgeList = Bridge::listBridges();
|
$bridgeList = Bridge::listBridges();
|
||||||
foreach($bridgeList as $bridgeName) {
|
foreach($bridgeList as $bridgeName) {
|
||||||
if(Bridge::isWhitelisted($whitelist_selection, $bridgeName)) {
|
if(Bridge::isWhitelisted($whitelist_selection, strtolower($bridgeName))) {
|
||||||
echo displayBridgeCard($bridgeName, $formats);
|
echo displayBridgeCard($bridgeName, $formats);
|
||||||
$activeFoundBridgeCount++;
|
$activeFoundBridgeCount++;
|
||||||
} elseif($showInactive) {
|
} elseif($showInactive) {
|
||||||
|
|
|
@ -94,8 +94,8 @@ EOD;
|
||||||
static public function isWhitelisted($whitelist, $name){
|
static public function isWhitelisted($whitelist, $name){
|
||||||
if(in_array($name, $whitelist)
|
if(in_array($name, $whitelist)
|
||||||
|| in_array($name . '.php', $whitelist)
|
|| in_array($name . '.php', $whitelist)
|
||||||
|| in_array($name . 'Bridge', $whitelist) // DEPRECATED
|
|| in_array($name . 'bridge', $whitelist) // DEPRECATED
|
||||||
|| in_array($name . 'Bridge.php', $whitelist) // DEPRECATED
|
|| in_array($name . 'bridge.php', $whitelist) // DEPRECATED
|
||||||
|| (count($whitelist) === 1 && trim($whitelist[0]) === '*')) {
|
|| (count($whitelist) === 1 && trim($whitelist[0]) === '*')) {
|
||||||
return true;
|
return true;
|
||||||
} else {
|
} else {
|
||||||
|
|
Loading…
Reference in a new issue