OpenXE/classes/Modules/Api/Http/ServerParameter.php
2021-05-21 08:49:41 +02:00

65 lines
1.7 KiB
PHP

<?php
namespace Xentral\Modules\Api\Http;
/**
* @deprecated Use Xentral\Components\Http instead
*/
class ServerParameter extends ParameterCollection
{
/**
* @return array
*/
public function getHeaders()
{
$header = [];
if (isset($this->params['CONTENT_TYPE'])) {
$header['Content-Type'] = $this->params['CONTENT_TYPE'];
}
foreach ($this->params as $name => $value) {
if (substr($name, 0, 4) === 'HTTP') {
$header[$this->transformHeaderName($name)] = $value;
}
}
// Auth-Header ist bereits gesetzt durch $_SERVER[HTTP_AUTHORIZATION]
if (!empty($header['Authorization'])) {
return $header;
}
// Basic-Auth
if (isset($this->params['PHP_AUTH_USER'])) {
$authString = base64_encode($this->params['PHP_AUTH_USER'] . ':' . $this->params['PHP_AUTH_PW']);
$header['Authorization'] = sprintf('Basic %s', $authString);
}
// Digest-Auth
if (isset($this->params['PHP_AUTH_DIGEST'])) {
$header['Authorization'] = sprintf('Digest %s', $this->params['PHP_AUTH_DIGEST']);
}
return $header;
}
/**
* Header-Bezeichnungen umwandeln
*
* @param string $name
*
* @return string
*
* @example Wandelt "HTTP_USER_AGENT" zu "User-Agent"
*/
private function transformHeaderName($name)
{
$name = substr($name, 5); // HTTP-Prefix entfernen
$name = str_replace('_', ' ', $name);
$name = strtolower($name);
$name = ucwords($name);
return str_replace(' ', '-', $name);
}
}