/** * Destroy the given global session * * @param \Flowpack\SingleSignOn\Client\Domain\Model\SsoClient $ssoClient * @param $sessionId * @return void */ public function destroySession(SsoClient $ssoClient, $sessionId) { $serviceUri = new Uri($this->serviceBaseUri . '/session/' . urlencode($sessionId) . '/destroy'); $serviceUri->setQuery(http_build_query(array('clientIdentifier' => $ssoClient->getServiceBaseUri()))); $request = \TYPO3\Flow\Http\Request::create($serviceUri, 'DELETE'); $request->setContent(''); $signedRequest = $this->requestSigner->signRequest($request, $ssoClient->getPublicKeyFingerprint(), $ssoClient->getPublicKeyFingerprint()); // TODO Send request asynchronously $response = $this->requestEngine->sendRequest($signedRequest); if ($response->getStatusCode() !== 200 && $response->getStatusCode() !== 404) { throw new Exception('Unexpected status code for destroy session when calling "' . (string) $serviceUri . '": "' . $response->getStatus() . '"', 1354132939); } }
/** * @param string $grantType One of this' interface GRANT_TYPE_* constants * @param array $additionalParameters Additional parameters for the request * @return mixed * @throws \Flowpack\OAuth2\Client\Exception * @see http://tools.ietf.org/html/rfc6749#section-4.1.3 */ protected function requestAccessToken($grantType, $additionalParameters = array()) { $parameters = array('grant_type' => $grantType, 'client_id' => $this->clientIdentifier, 'client_secret' => $this->clientSecret); $parameters = Arrays::arrayMergeRecursiveOverrule($parameters, $additionalParameters, FALSE, FALSE); $request = Request::create(new Uri($this->endpointUri), 'POST', $parameters); $request->setHeader('Content-Type', 'application/x-www-form-urlencoded'); $response = $this->requestEngine->sendRequest($request); if ($response->getStatusCode() !== 200) { throw new OAuth2Exception(sprintf('The response when requesting the access token was not as expected, code and message was: %d %s', $response->getStatusCode(), $response->getContent()), 1383749757); } parse_str($response->getContent(), $responseComponents); return $responseComponents['access_token']; }
/** * @return void */ public function initializeObject() { $requestEngine = new CurlEngine(); $requestEngine->setOption(CURLOPT_TIMEOUT, $this->settings['transfer']['connectionTimeout']); $this->browser->setRequestEngine($requestEngine); }
/** * @return void */ public function initializeObject() { $this->browserRequestEngine->setOption(CURLOPT_SSL_VERIFYPEER, FALSE); $this->browserRequestEngine->setOption(CURLOPT_SSL_VERIFYHOST, FALSE); $this->browser->setRequestEngine($this->browserRequestEngine); }
/** * @param string $url * @return string */ public function checkUrlAction($url) { $request = Request::create(new Uri($url)); $request->setHeader('X-Cache-Debug', '1'); $engine = new CurlEngine(); $engine->setOption(CURLOPT_SSL_VERIFYPEER, FALSE); $engine->setOption(CURLOPT_SSL_VERIFYHOST, FALSE); $response = $engine->sendRequest($request); $this->view->assign('value', array('statusCode' => $response->getStatusCode(), 'host' => parse_url($url, PHP_URL_HOST), 'url' => $url, 'headers' => array_map(function ($value) { return array_pop($value); }, $response->getHeaders()->getAll()))); }