21 class ServerBag
extends ParameterBag
31 foreach ($this->parameters as $key => $value) {
32 if (0 === strpos($key,
'HTTP_')) {
33 $headers[substr($key, 5)] = $value;
34 } elseif (\in_array($key, [
'CONTENT_TYPE',
'CONTENT_LENGTH',
'CONTENT_MD5'],
true)) {
35 $headers[$key] = $value;
39 if (isset($this->parameters[
'PHP_AUTH_USER'])) {
40 $headers[
'PHP_AUTH_USER'] = $this->parameters[
'PHP_AUTH_USER'];
41 $headers[
'PHP_AUTH_PW'] = isset($this->parameters[
'PHP_AUTH_PW']) ? $this->parameters[
'PHP_AUTH_PW'] :
'';
57 $authorizationHeader =
null;
58 if (isset($this->parameters[
'HTTP_AUTHORIZATION'])) {
59 $authorizationHeader = $this->parameters[
'HTTP_AUTHORIZATION'];
60 } elseif (isset($this->parameters[
'REDIRECT_HTTP_AUTHORIZATION'])) {
61 $authorizationHeader = $this->parameters[
'REDIRECT_HTTP_AUTHORIZATION'];
64 if (
null !== $authorizationHeader) {
65 if (0 === stripos($authorizationHeader,
'basic ')) {
67 $exploded = explode(
':', base64_decode(substr($authorizationHeader, 6)), 2);
68 if (2 == \
count($exploded)) {
69 list($headers[
'PHP_AUTH_USER'], $headers[
'PHP_AUTH_PW']) = $exploded;
71 } elseif (empty($this->parameters[
'PHP_AUTH_DIGEST']) && (0 === stripos($authorizationHeader,
'digest '))) {
73 $headers[
'PHP_AUTH_DIGEST'] = $authorizationHeader;
74 $this->parameters[
'PHP_AUTH_DIGEST'] = $authorizationHeader;
75 } elseif (0 === stripos($authorizationHeader,
'bearer ')) {
81 $headers[
'AUTHORIZATION'] = $authorizationHeader;
86 if (isset($headers[
'AUTHORIZATION'])) {
91 if (isset($headers[
'PHP_AUTH_USER'])) {
92 $headers[
'AUTHORIZATION'] =
'Basic '.base64_encode($headers[
'PHP_AUTH_USER'].
':'.$headers[
'PHP_AUTH_PW']);
93 } elseif (isset($headers[
'PHP_AUTH_DIGEST'])) {
94 $headers[
'AUTHORIZATION'] = $headers[
'PHP_AUTH_DIGEST'];