Proyectos de Subversion Moodle

Rev

| Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
1 efrain 1
<?php
2
 
3
declare(strict_types=1);
4
 
5
namespace GuzzleHttp\Psr7;
6
 
7
use Psr\Http\Message\UriInterface;
8
 
9
/**
10
 * Provides methods to determine if a modified URL should be considered cross-origin.
11
 *
12
 * @author Graham Campbell
13
 */
14
final class UriComparator
15
{
16
    /**
17
     * Determines if a modified URL should be considered cross-origin with
18
     * respect to an original URL.
19
     */
20
    public static function isCrossOrigin(UriInterface $original, UriInterface $modified): bool
21
    {
22
        if (\strcasecmp($original->getHost(), $modified->getHost()) !== 0) {
23
            return true;
24
        }
25
 
26
        if ($original->getScheme() !== $modified->getScheme()) {
27
            return true;
28
        }
29
 
30
        if (self::computePort($original) !== self::computePort($modified)) {
31
            return true;
32
        }
33
 
34
        return false;
35
    }
36
 
37
    private static function computePort(UriInterface $uri): int
38
    {
39
        $port = $uri->getPort();
40
 
41
        if (null !== $port) {
42
            return $port;
43
        }
44
 
45
        return 'https' === $uri->getScheme() ? 443 : 80;
46
    }
47
 
48
    private function __construct()
49
    {
50
        // cannot be instantiated
51
    }
52
}