Last change
on this file since e3d4e0a was e3d4e0a, checked in by Vlado 222039 <vlado.popovski@…>, 7 days ago |
Upload project files
|
-
Property mode
set to
100644
|
File size:
1.1 KB
|
Line | |
---|
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 | }
|
---|
Note:
See
TracBrowser
for help on using the repository browser.