diff --git a/services/src/main/java/org/keycloak/authentication/AuthenticationProcessor.java b/services/src/main/java/org/keycloak/authentication/AuthenticationProcessor.java
index b51a39f..409b0e7 100755
--- a/services/src/main/java/org/keycloak/authentication/AuthenticationProcessor.java
+++ b/services/src/main/java/org/keycloak/authentication/AuthenticationProcessor.java
@@ -419,6 +419,7 @@ public class AuthenticationProcessor {
LoginFormsProvider provider = getSession().getProvider(LoginFormsProvider.class)
.setUser(getUser())
.setActionUri(action)
+ .setFormData(request.getDecodedFormParameters())
.setClientSessionCode(accessCode);
if (getForwardedErrorMessage() != null) {
provider.addError(getForwardedErrorMessage());
diff --git a/testsuite/integration/src/test/java/org/keycloak/testsuite/forms/LoginTest.java b/testsuite/integration/src/test/java/org/keycloak/testsuite/forms/LoginTest.java
index c4f6a84..1ce2a91 100755
--- a/testsuite/integration/src/test/java/org/keycloak/testsuite/forms/LoginTest.java
+++ b/testsuite/integration/src/test/java/org/keycloak/testsuite/forms/LoginTest.java
@@ -129,6 +129,10 @@ public class LoginTest {
loginPage.assertCurrent();
+ // KEYCLOAK-1741 - assert form field values kept
+ Assert.assertEquals("login-test", loginPage.getUsername());
+ Assert.assertEquals("", loginPage.getPassword());
+
Assert.assertEquals("Invalid username or password.", loginPage.getError());
events.expectLogin().user(userId).session((String) null).error("invalid_user_credentials")
@@ -144,6 +148,10 @@ public class LoginTest {
loginPage.assertCurrent();
+ // KEYCLOAK-1741 - assert form field values kept
+ Assert.assertEquals("login-test", loginPage.getUsername());
+ Assert.assertEquals("", loginPage.getPassword());
+
Assert.assertEquals("Invalid username or password.", loginPage.getError());
events.expectLogin().user(userId).session((String) null).error("invalid_user_credentials")
@@ -167,6 +175,10 @@ public class LoginTest {
loginPage.assertCurrent();
+ // KEYCLOAK-1741 - assert form field values kept
+ Assert.assertEquals("login-test", loginPage.getUsername());
+ Assert.assertEquals("", loginPage.getPassword());
+
Assert.assertEquals("Account is disabled, contact admin.", loginPage.getError());
events.expectLogin().user(userId).session((String) null).error("user_disabled")
@@ -198,6 +210,10 @@ public class LoginTest {
loginPage.assertCurrent();
+ // KEYCLOAK-1741 - assert form field values kept
+ Assert.assertEquals("login-test", loginPage.getUsername());
+ Assert.assertEquals("", loginPage.getPassword());
+
Assert.assertEquals("Account is disabled, contact admin.", loginPage.getError());
events.expectLogin().user(userId).session((String) null).error("user_disabled")
@@ -221,6 +237,10 @@ public class LoginTest {
loginPage.assertCurrent();
+ // KEYCLOAK-1741 - assert form field values kept
+ Assert.assertEquals("invalid", loginPage.getUsername());
+ Assert.assertEquals("", loginPage.getPassword());
+
Assert.assertEquals("Invalid username or password.", loginPage.getError());
events.expectLogin().user((String) null).session((String) null).error("user_not_found")
diff --git a/testsuite/integration/src/test/java/org/keycloak/testsuite/pages/LoginPage.java b/testsuite/integration/src/test/java/org/keycloak/testsuite/pages/LoginPage.java
index a0bd5a4..f329533 100755
--- a/testsuite/integration/src/test/java/org/keycloak/testsuite/pages/LoginPage.java
+++ b/testsuite/integration/src/test/java/org/keycloak/testsuite/pages/LoginPage.java
@@ -112,6 +112,10 @@ public class LoginPage extends AbstractPage {
return usernameInput.getAttribute("value");
}
+ public String getPassword() {
+ return passwordInput.getAttribute("value");
+ }
+
public void cancel() {
cancelButton.click();
}