/** * @inheritDoc */ public function parse(ServerRequestInterface $request) : ServerRequestInterface { $headerValues = $request->getHeader('Cookie'); $cookies = []; foreach ($headerValues as $headerValue) { $parts = explode(';', str_replace('; ', ';', $headerValue)); foreach ($parts as $part) { list($key, $value) = explode('=', $part); $cookies[$key] = $value; } } return $request->withCookieParams($cookies); }
/** * {@inheritdoc} */ public function withCookieParams(array $cookies) { return new static($this->wrapped->withCookieParams($cookies)); }
/** * {@inheritDoc} */ public function withCookieParams(array $cookies) { return new self($this->app, $this->psrRequest->withCookieParams($cookies)); }
/** * Proxy to ServerRequestInterface::withCookieParams() * * {@inheritdoc} */ public function withCookieParams(array $cookies) { $new = $this->psrRequest->withCookieParams($cookies); return new self($new, $this->originalRequest); }
/** * Unpack incoming cookies and decrypt their content. * * @param Request $request * @return Request */ protected function unpackCookies(Request $request) { $cookies = $request->getCookieParams(); foreach ($cookies as $name => $cookie) { if (!$this->isProtected($name)) { //Nothing to protect continue; } $cookies[$name] = $this->decodeCookie($cookie); } return $request->withCookieParams($cookies); }
/** * @inheritDoc */ public function withCookieParams(array $cookies) { $self = clone $this; $self->serverRequest = $this->serverRequest->withCookieParams($cookies); return $self; }
/** * Unpack incoming cookies and decrypt their content. * * @param ServerRequestInterface $request * @return ServerRequestInterface */ protected function decodeCookies(ServerRequestInterface $request) { $altered = false; $cookies = $request->getCookieParams(); foreach ($cookies as $name => $cookie) { if (in_array($name, $this->exclude) || $this->config['method'] == self::NONE) { continue; } $altered = true; $cookies[$name] = $this->decodeCookie($cookie); } return $altered ? $request->withCookieParams($cookies) : $request; }