/** * 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); } }