[KEYCLOAK-12161] "Back to Application" link is shown with link to current page
This commit is contained in:
parent
f0e3122792
commit
876086c846
2 changed files with 56 additions and 3 deletions
|
@ -23,6 +23,8 @@ import org.junit.Rule;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.keycloak.models.Constants;
|
import org.keycloak.models.Constants;
|
||||||
import org.keycloak.models.UserModel;
|
import org.keycloak.models.UserModel;
|
||||||
|
import org.keycloak.models.utils.KeycloakModelUtils;
|
||||||
|
import org.keycloak.representations.idm.ClientRepresentation;
|
||||||
import org.keycloak.representations.idm.RealmRepresentation;
|
import org.keycloak.representations.idm.RealmRepresentation;
|
||||||
import org.keycloak.representations.idm.UserRepresentation;
|
import org.keycloak.representations.idm.UserRepresentation;
|
||||||
import org.keycloak.testsuite.AbstractTestRealmKeycloakTest;
|
import org.keycloak.testsuite.AbstractTestRealmKeycloakTest;
|
||||||
|
@ -41,9 +43,12 @@ import org.keycloak.testsuite.pages.LoginUpdateProfilePage;
|
||||||
import org.keycloak.testsuite.pages.OAuthGrantPage;
|
import org.keycloak.testsuite.pages.OAuthGrantPage;
|
||||||
import org.keycloak.testsuite.pages.RegisterPage;
|
import org.keycloak.testsuite.pages.RegisterPage;
|
||||||
import org.keycloak.testsuite.pages.VerifyEmailPage;
|
import org.keycloak.testsuite.pages.VerifyEmailPage;
|
||||||
|
import org.keycloak.testsuite.util.ClientBuilder;
|
||||||
import org.keycloak.testsuite.util.GreenMailRule;
|
import org.keycloak.testsuite.util.GreenMailRule;
|
||||||
import org.keycloak.testsuite.util.UserBuilder;
|
import org.keycloak.testsuite.util.UserBuilder;
|
||||||
|
import org.openqa.selenium.NoSuchElementException;
|
||||||
|
|
||||||
|
import static org.junit.Assert.fail;
|
||||||
import static org.keycloak.testsuite.arquillian.AuthServerTestEnricher.getAuthServerContextRoot;
|
import static org.keycloak.testsuite.arquillian.AuthServerTestEnricher.getAuthServerContextRoot;
|
||||||
import static org.keycloak.testsuite.util.URLAssert.assertCurrentUrlStartsWith;
|
import static org.keycloak.testsuite.util.URLAssert.assertCurrentUrlStartsWith;
|
||||||
|
|
||||||
|
@ -368,4 +373,52 @@ public class MultipleTabsLoginTest extends AbstractTestRealmKeycloakTest {
|
||||||
assertCurrentUrlStartsWith(redirectUri2);
|
assertCurrentUrlStartsWith(redirectUri2);
|
||||||
Assert.assertTrue(currentUrl.contains("state2"));
|
Assert.assertTrue(currentUrl.contains("state2"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// KEYCLOAK-12161
|
||||||
|
@Test
|
||||||
|
public void testEmptyBaseUrl() throws Exception {
|
||||||
|
String clientUuid = KeycloakModelUtils.generateId();
|
||||||
|
ClientRepresentation emptyBaseclient = ClientBuilder.create()
|
||||||
|
.clientId("empty-baseurl-client")
|
||||||
|
.id(clientUuid)
|
||||||
|
.enabled(true)
|
||||||
|
.baseUrl("")
|
||||||
|
.addRedirectUri("*")
|
||||||
|
.secret("password")
|
||||||
|
.build();
|
||||||
|
testRealm().clients().create(emptyBaseclient);
|
||||||
|
getCleanup().addClientUuid(clientUuid);
|
||||||
|
|
||||||
|
oauth.clientId("empty-baseurl-client");
|
||||||
|
oauth.openLoginForm();
|
||||||
|
loginPage.assertCurrent();
|
||||||
|
|
||||||
|
loginPage.login("login-test", "password");
|
||||||
|
updatePasswordPage.assertCurrent();
|
||||||
|
|
||||||
|
String tab1Url = driver.getCurrentUrl();
|
||||||
|
|
||||||
|
// Simulate login in different browser tab tab2. I will be on loginPage again.
|
||||||
|
oauth.openLoginForm();
|
||||||
|
loginPage.assertCurrent();
|
||||||
|
|
||||||
|
// Login in tab2
|
||||||
|
loginPage.login("login-test", "password");
|
||||||
|
updatePasswordPage.assertCurrent();
|
||||||
|
|
||||||
|
updatePasswordPage.changePassword("password", "password");
|
||||||
|
updateProfilePage.update("John", "Doe3", "john@doe3.com");
|
||||||
|
appPage.assertCurrent();
|
||||||
|
|
||||||
|
// Try to go back to tab 1. We should have ALREADY_LOGGED_IN info page
|
||||||
|
driver.navigate().to(tab1Url);
|
||||||
|
infoPage.assertCurrent();
|
||||||
|
Assert.assertEquals("You are already logged in.", infoPage.getInfo());
|
||||||
|
|
||||||
|
try {
|
||||||
|
infoPage.clickBackToApplicationLink();
|
||||||
|
fail();
|
||||||
|
}
|
||||||
|
catch (NoSuchElementException ex) {}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,11 +11,11 @@
|
||||||
<p class="instruction">${message.summary}<#if requiredActions??><#list requiredActions>: <b><#items as reqActionItem>${msg("requiredAction.${reqActionItem}")}<#sep>, </#items></b></#list><#else></#if></p>
|
<p class="instruction">${message.summary}<#if requiredActions??><#list requiredActions>: <b><#items as reqActionItem>${msg("requiredAction.${reqActionItem}")}<#sep>, </#items></b></#list><#else></#if></p>
|
||||||
<#if skipLink??>
|
<#if skipLink??>
|
||||||
<#else>
|
<#else>
|
||||||
<#if pageRedirectUri??>
|
<#if pageRedirectUri?has_content>
|
||||||
<p><a href="${pageRedirectUri}">${kcSanitize(msg("backToApplication"))?no_esc}</a></p>
|
<p><a href="${pageRedirectUri}">${kcSanitize(msg("backToApplication"))?no_esc}</a></p>
|
||||||
<#elseif actionUri??>
|
<#elseif actionUri?has_content>
|
||||||
<p><a href="${actionUri}">${kcSanitize(msg("proceedWithAction"))?no_esc}</a></p>
|
<p><a href="${actionUri}">${kcSanitize(msg("proceedWithAction"))?no_esc}</a></p>
|
||||||
<#elseif client.baseUrl??>
|
<#elseif (client.baseUrl)?has_content>
|
||||||
<p><a href="${client.baseUrl}">${kcSanitize(msg("backToApplication"))?no_esc}</a></p>
|
<p><a href="${client.baseUrl}">${kcSanitize(msg("backToApplication"))?no_esc}</a></p>
|
||||||
</#if>
|
</#if>
|
||||||
</#if>
|
</#if>
|
||||||
|
|
Loading…
Reference in a new issue