Skip to content
Snippets Groups Projects
Commit 2d4b6402 authored by Patrick Barroca's avatar Patrick Barroca :grin:
Browse files

Merge branch 'identity_provider_realtest_fix' into 'master'

dev #113621 Identity Providers / OpenId : fix redirect after login

See merge request !3993
parents 7ace01ac e0cdad88
Branches
Tags
1 merge request!3993dev #113621 Identity Providers / OpenId : fix redirect after login
Pipeline #13210 passed with stage
in 53 minutes and 41 seconds
......@@ -19,6 +19,18 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
class IdentityProvidersController extends ZendAfi_Controller_Action {
public function _getReferer() {
$referer = $this->_request->getServer('HTTP_REFERER');
if (0 === strpos($referer, '/'))
return $referer;
if (0 === strpos($referer, Class_Url::rootUrl()))
return $referer;
return '/';
}
public function authenticateAction() {
if (!Class_AdminVar::isIdentityProvidersEnabled())
......
......@@ -161,6 +161,44 @@ class IdentityProviderOpenIdConnectAuthLoginTest extends IdentityProviderOpenIdC
class IdentityProviderOpenIdConnectLoginSuccessRedirectTest extends IdentityProviderOpenIdConnectTestCase {
public function setUp() {
parent::setUp();
Class_WebService_OpenId::getSession()->userinfo = (object)['sub' => '1232'];
$this->_setupRequests('code1234', 'state1234');
}
/** @test */
public function fromExternalWebsiteLoginSuccesRedirectUrlShouldBeBokehHomeUrl() {
$_SERVER['HTTP_REFERER'] = 'https://the.other.side';
$this->dispatch('/identity-providers/authenticate/id/1');
$this->assertEquals('/', Class_WebService_OpenId::getSession()->success_redirect_url);
}
/** @test */
public function fromBokehSiteRedirectUrlShouldBeReferrer() {
$_SERVER['HTTP_REFERER'] = Class_Url::absolute('/accueil');
$this->dispatch('/identity-providers/authenticate/id/1');
$this->assertEquals(Class_Url::absolute('/accueil'),
Class_WebService_OpenId::getSession()->success_redirect_url);
}
/** @test */
public function fromRelativeRedirectUrlShouldBeReferrer() {
$_SERVER['HTTP_REFERER'] = '/accueil';
$this->dispatch('/identity-providers/authenticate/id/1');
$this->assertEquals('/accueil',
Class_WebService_OpenId::getSession()->success_redirect_url);
}
}
class IdentityProviderOpenIdConnectAuthLoginWithAutoCreateTest extends IdentityProviderOpenIdConnectTestCase {
public function setUp() {
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment