KEYCLOAK-64 KEYCLOAK-246 Updated social to use update profile required action instead of registration form. Fixed Google provider
This commit is contained in:
1 parent
9143901ec6
commit
dcfb83b0f2
37 files changed
+544
-302
No files matched your search
@@ -42,7 +42,7 @@ public class DummySocial implements SocialProvider {
|
||||
throw new SocialProviderException("Invalid state");
|
||||
}
|
||||
|
||||
String username = callback.getQueryParam("access_token");
|
||||
String username = callback.getQueryParam("username");
|
||||
SocialUser user = new SocialUser(username);
|
||||
user.setEmail(username + "@dummy-social");
|
||||
user.setUsername(username);
|
||||
|
||||
@@ -12,6 +12,7 @@ import java.io.PrintWriter;
|
||||
import java.net.URI;
|
||||
import java.nio.charset.Charset;
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
|
||||
public class DummySocialServlet extends HttpServlet {
|
||||
|
||||
@@ -31,7 +32,6 @@ public class DummySocialServlet extends HttpServlet {
|
||||
|
||||
@Override
|
||||
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
|
||||
String accessToken = req.getParameter("username");
|
||||
String state = null;
|
||||
String redirectUri = null;
|
||||
|
||||
@@ -50,7 +50,7 @@ public class DummySocialServlet extends HttpServlet {
|
||||
}
|
||||
}
|
||||
|
||||
String redirect = redirectUri + "?access_token=" + accessToken + "&token_type=bearer&state=" + state;
|
||||
String redirect = redirectUri + "?username=" + req.getParameter("username") + "&state=" + state + "&code=" + UUID.randomUUID().toString();
|
||||
resp.sendRedirect(redirect);
|
||||
}
|
||||
|
||||
|
||||
+12
@@ -59,6 +59,18 @@ public class LoginUpdateProfilePage extends AbstractPage {
|
||||
return loginErrorMessage != null ? loginErrorMessage.getText() : null;
|
||||
}
|
||||
|
||||
public String getFirstName() {
|
||||
return firstNameInput.getAttribute("value");
|
||||
}
|
||||
|
||||
public String getLastName() {
|
||||
return lastNameInput.getAttribute("value");
|
||||
}
|
||||
|
||||
public String getEmail() {
|
||||
return emailInput.getAttribute("value");
|
||||
}
|
||||
|
||||
public boolean isCurrent() {
|
||||
return driver.getTitle().equals("Update Account Information");
|
||||
}
|
||||
|
||||
+11
-11
@@ -35,6 +35,7 @@ import org.keycloak.testsuite.OAuthClient.AccessTokenResponse;
|
||||
import org.keycloak.testsuite.pages.AppPage;
|
||||
import org.keycloak.testsuite.pages.AppPage.RequestType;
|
||||
import org.keycloak.testsuite.pages.LoginPage;
|
||||
import org.keycloak.testsuite.pages.LoginUpdateProfilePage;
|
||||
import org.keycloak.testsuite.pages.RegisterPage;
|
||||
import org.keycloak.testsuite.rule.KeycloakRule;
|
||||
import org.keycloak.testsuite.rule.KeycloakRule.KeycloakSetup;
|
||||
@@ -55,7 +56,7 @@ public class SocialLoginTest {
|
||||
@Override
|
||||
public void config(RealmManager manager, RealmModel defaultRealm, RealmModel appRealm) {
|
||||
appRealm.setSocial(true);
|
||||
appRealm.setAutomaticRegistrationAfterSocialLogin(true);
|
||||
appRealm.setUpdateProfileOnInitialSocialLogin(false);
|
||||
|
||||
HashMap<String, String> socialConfig = new HashMap<String, String>();
|
||||
socialConfig.put("dummy.key", "1234");
|
||||
@@ -77,7 +78,7 @@ public class SocialLoginTest {
|
||||
protected LoginPage loginPage;
|
||||
|
||||
@WebResource
|
||||
protected RegisterPage registerPage;
|
||||
protected LoginUpdateProfilePage profilePage;
|
||||
|
||||
@WebResource
|
||||
protected OAuthClient oauth;
|
||||
@@ -106,11 +107,11 @@ public class SocialLoginTest {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void registerRequired() {
|
||||
public void profileUpdateRequired() {
|
||||
keycloakRule.configure(new KeycloakSetup() {
|
||||
@Override
|
||||
public void config(RealmManager manager, RealmModel adminstrationRealm, RealmModel appRealm) {
|
||||
appRealm.setAutomaticRegistrationAfterSocialLogin(false);
|
||||
appRealm.setUpdateProfileOnInitialSocialLogin(true);
|
||||
}
|
||||
});
|
||||
|
||||
@@ -122,21 +123,20 @@ public class SocialLoginTest {
|
||||
driver.findElement(By.id("username")).sendKeys("dummy-user-reg");
|
||||
driver.findElement(By.id("submit")).click();
|
||||
|
||||
registerPage.isCurrent();
|
||||
profilePage.isCurrent();
|
||||
|
||||
Assert.assertEquals("", registerPage.getFirstName());
|
||||
Assert.assertEquals("", registerPage.getLastName());
|
||||
Assert.assertEquals("dummy-user-reg@dummy-social", registerPage.getEmail());
|
||||
Assert.assertEquals("dummy-user-reg", registerPage.getUsername());
|
||||
Assert.assertEquals("", profilePage.getFirstName());
|
||||
Assert.assertEquals("", profilePage.getLastName());
|
||||
Assert.assertEquals("dummy-user-reg@dummy-social", profilePage.getEmail());
|
||||
|
||||
registerPage.register("Dummy", "User", "dummy-user-reg@dummy-social", "dummy-user-reg", "password", "password");
|
||||
profilePage.update("Dummy", "User", "dummy-user-reg@dummy-social");
|
||||
|
||||
Assert.assertEquals(RequestType.AUTH_RESPONSE, appPage.getRequestType());
|
||||
} finally {
|
||||
keycloakRule.configure(new KeycloakSetup() {
|
||||
@Override
|
||||
public void config(RealmManager manager, RealmModel adminstrationRealm, RealmModel appRealm) {
|
||||
appRealm.setAutomaticRegistrationAfterSocialLogin(true);
|
||||
appRealm.setUpdateProfileOnInitialSocialLogin(false);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user