/** * * @param Irto\OAuth2Proxy\ProxyRequest $request * @param Closure $next * * @throws Exception * * @return Irto\OAuth2Proxy\ProxyRequest */ public function request($request, Closure $next) { $token = $request->headers()->get('x-xsrf-token'); $config = $this->server['config']['session']; var_dump($token, $request->headers()->all()); if (!$token || $token != $request->session()->token()) { $cookie = new Cookie('XSRF-TOKEN', $request->session()->token(), Carbon::now()->addMinutes($config['lifetime']), '/', null, false, false); $request->futureResponse()->setCookie($cookie); throw new TokenMismatchException(); } else { $response = $next($request); } return $response; }
/** * Change data watchers to work in api credentials to send to api server * * @param Irto\OAuth2Proxy\ProxyRequest $request * * @return void */ protected function proxyContent($request) { $original = $request->originRequest(); $data = $request->getBufferClean(); $this->bufferData($data); $original->removeAllListeners('data'); if ($this->bufferLength() == (int) $request->headers()->get('content-length')) { $request->write($this->getDataEnd(true)); } else { $original->on('data', function ($data) use($request, $original) { $this->bufferData($data); if ($this->bufferLength() == (int) $request->headers()->get('content-length')) { $request->write($this->getDataEnd(true)); } }); } }