ILIAS  release_9 Revision v9.13-25-g2c18ec4c24f
ilWhiteListUrlValidator Class Reference

Class ilWhiteListUrlValidator. More...

+ Collaboration diagram for ilWhiteListUrlValidator:

Public Member Functions

 __construct (private string $url, array $whitelist)
 ilWhiteListUrlValidator constructor. More...
 
 isValid ()
 

Private Member Functions

 isValidDomain (string $domain)
 

Private Attributes

array $whitelist
 

Detailed Description

Constructor & Destructor Documentation

◆ __construct()

ilWhiteListUrlValidator::__construct ( private string  $url,
array  $whitelist 
)

ilWhiteListUrlValidator constructor.

Parameters
string[]$whitelist

Definition at line 32 of file class.ilWhiteListUrlValidator.php.

References $whitelist.

33  {
34  $this->whitelist = array_filter(array_map(static function (string $domain): string {
35  return trim($domain); // Used for trimming and type validation (strict primitive type hint)
36  }, $whitelist));
37  }

Member Function Documentation

◆ isValid()

ilWhiteListUrlValidator::isValid ( )

Definition at line 62 of file class.ilWhiteListUrlValidator.php.

References isValidDomain().

62  : bool
63  {
64  $redirectDomain = parse_url($this->url, PHP_URL_HOST);
65  if (null === $redirectDomain) {
66  return false;
67  }
68 
69  return $this->isValidDomain($redirectDomain);
70  }
+ Here is the call graph for this function:

◆ isValidDomain()

ilWhiteListUrlValidator::isValidDomain ( string  $domain)
private

Definition at line 39 of file class.ilWhiteListUrlValidator.php.

Referenced by isValid().

39  : bool
40  {
41  foreach ($this->whitelist as $validDomain) {
42  if ($domain === $validDomain) {
43  return true;
44  }
45 
46  $firstChar = $validDomain[0];
47  if ('.' !== $firstChar) {
48  $validDomain = '.' . $validDomain;
49  }
50 
51  if ((strlen($domain) > strlen($validDomain)) && substr(
52  $domain,
53  (0 - strlen($validDomain))
54  ) === $validDomain) {
55  return true;
56  }
57  }
58 
59  return false;
60  }
+ Here is the caller graph for this function:

Field Documentation

◆ $whitelist

array ilWhiteListUrlValidator::$whitelist
private

Definition at line 26 of file class.ilWhiteListUrlValidator.php.

Referenced by __construct().


The documentation for this class was generated from the following file: