21use GuzzleHttp\Psr7\ServerRequest;
22use Psr\Http\Message\ServerRequestInterface;
50 private ?
string $forwarded_header =
null,
51 private ?
string $forwarded_proto =
null
55 public function create(): ServerRequestInterface
57 $server_request = ServerRequest::fromGlobals();
59 if ($this->forwarded_header !==
null && $this->forwarded_proto !==
null) {
61 $this->forwarded_proto,
62 $server_request->getHeader($this->forwarded_header),
65 return $server_request->withUri($server_request->getUri()->withScheme($this->forwarded_proto));
69 $header_names = array_keys($server_request->getHeaders());
70 foreach ($header_names as $header_name) {
71 if (str_replace(
"-",
"_", strtoupper($header_name)) !== $this->forwarded_header) {
74 if (!in_array($this->forwarded_proto, $server_request->getHeader($header_name),
true)) {
77 return $server_request->withUri($server_request->getUri()->withScheme($this->forwarded_proto));
81 return $server_request;
__construct(private ?string $forwarded_header=null, private ?string $forwarded_proto=null)
const DEFAULT_FORWARDED_PROTO
const DEFAULT_FORWARDED_HEADER
create()
Creates a new ServerRequest object with the help of the underlying library.
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...