/** * @test */ public function decryptCallbackAccessTokenUsesRsaWalletServiceAndClientKeyPair() { $ssoClient = new \Flowpack\SingleSignOn\Client\Domain\Model\SsoClient(); $ssoClient->setPublicKeyFingerprint('key-pair-uuid'); $mockRsaWalletService = m::mock('TYPO3\\Flow\\Security\\Cryptography\\RsaWalletServiceInterface'); $this->inject($ssoClient, 'rsaWalletService', $mockRsaWalletService); $mockRsaWalletService->shouldReceive('decrypt')->with('access-token-cipher', 'key-pair-uuid')->andReturn('access-token'); $result = $ssoClient->decryptCallbackAccessToken('access-token-cipher'); $this->assertEquals('access-token', $result); }
/** * Build a SSO client instance from settings * * Note: Every SSO entry point and authentication provider uses the same SSO client. * * @return \Flowpack\SingleSignOn\Client\Domain\Model\SsoClient */ public function create() { $ssoClient = new \Flowpack\SingleSignOn\Client\Domain\Model\SsoClient(); if ((string) $this->clientServiceBaseUri === '') { throw new Exception('Missing Flowpack.SingleSignOn.Client.client.serviceBaseUri setting', 1351075078); } $ssoClient->setServiceBaseUri($this->clientServiceBaseUri); if ((string) $this->clientPublicKeyFingerprint === '') { throw new Exception('Missing Flowpack.SingleSignOn.Client.client.publicKeyFingerprint setting', 1351075159); } $ssoClient->setPublicKeyFingerprint($this->clientPublicKeyFingerprint); return $ssoClient; }