oont-contents/plugins/wp-optimize/vendor/intervention/httpauth/src/Token/PhpAuthDigest.php
2025-02-10 13:57:45 +01:00

49 lines
1 KiB
PHP

<?php
namespace Intervention\HttpAuth\Token;
use Intervention\HttpAuth\Key;
class PhpAuthDigest extends NullToken
{
/**
* Parsed authentification value
*
* @var string
*/
protected $value;
/**
* Transform current instance to key object
*
* @return Key
*/
public function toKey(): Key
{
$authKey = new Key();
preg_match_all('@(\w+)=(?:(?:")([^"]+)"|([^\s,$]+))@', $this->value, $matches, PREG_SET_ORDER);
foreach ($matches as $m) {
$key = $m[1];
$value = $m[2] ? $m[2] : $m[3];
$authKey->setProperty($key, $value);
}
return $authKey;
}
/**
* Parse environment variables and store value in object
*
* @return bool "true" if value was found or "false"
*/
protected function parse(): bool
{
if ($value = $this->getArrayValue($_SERVER, 'PHP_AUTH_DIGEST')) {
$this->value = $value;
return true;
}
return false;
}
}