Refine search
private void loginThroughDiscovery(String userEmail, String password) { webDriver.findElement(By.id("email")).sendKeys(userEmail); webDriver.findElement(By.cssSelector(".form-group input[value='Next']")).click(); webDriver.findElement(By.id("password")).sendKeys(password); webDriver.findElement(By.xpath("//input[@value='Sign in']")).click(); } }
private void setValueForTextInput(Driver driver, WebElement element, String text) { if (text == null || text.isEmpty()) { element.clear(); } else if (driver.config().fastSetValue()) { String error = setValueByJs(driver, element, text); if (error != null) throw new InvalidStateException(driver, error); else { events.fireEvent(driver, element, "keydown", "keypress", "input", "keyup", "change"); } } else { element.clear(); element.sendKeys(text); } }
private void login(IdentityProvider<SamlIdentityProviderDefinition> provider) { webDriver.get(baseUrl + "/login"); Assert.assertEquals("Cloud Foundry", webDriver.getTitle()); webDriver.findElement(By.xpath("//a[text()='" + provider.getConfig().getLinkText() + "']")).click(); webDriver.findElement(By.xpath("//h2[contains(text(), 'Enter your username and password')]")); webDriver.findElement(By.name("username")).clear(); webDriver.findElement(By.name("username")).sendKeys(testAccounts.getUserName()); webDriver.findElement(By.name("password")).sendKeys(testAccounts.getPassword()); webDriver.findElement(By.xpath("//input[@value='Login']")).click(); } }
private void testSimpleSamlLogin(String firstUrl, String lookfor, String username, String password) throws Exception { IdentityProvider<SamlIdentityProviderDefinition> provider = createIdentityProvider(SAML_ORIGIN); webDriver.get(baseUrl + firstUrl); Assert.assertEquals("Cloud Foundry", webDriver.getTitle()); webDriver.findElement(By.xpath("//a[text()='" + provider.getConfig().getLinkText() + "']")).click(); //takeScreenShot(); webDriver.findElement(By.xpath("//h2[contains(text(), 'Enter your username and password')]")); webDriver.findElement(By.name("username")).clear(); webDriver.findElement(By.name("username")).sendKeys(username); webDriver.findElement(By.name("password")).sendKeys(password); webDriver.findElement(By.xpath("//input[@value='Login']")).click(); assertThat(webDriver.findElement(By.cssSelector("h1")).getText(), Matchers.containsString(lookfor)); IntegrationTestUtils.validateAccountChooserCookie(baseUrl, webDriver); }
@Test public void testLoginClientIDPAuthorizationAlreadyLoggedIn() throws Exception { webDriver.get(baseUrl + "/logout.do"); String adminAccessToken = testClient.getOAuthAccessToken("admin", "adminsecret", "client_credentials", "clients.read clients.write clients.secret clients.admin"); String clientId = UUID.randomUUID().toString(); BaseClientDetails clientDetails = new BaseClientDetails(clientId, null, "openid", GRANT_TYPE_AUTHORIZATION_CODE, "uaa.none", "http://localhost:8080/login"); clientDetails.setClientSecret("secret"); List<String> idps = Arrays.asList("okta-local"); //not authorized for the current IDP clientDetails.addAdditionalInformation(ClientConstants.ALLOWED_PROVIDERS, idps); testClient.createClient(adminAccessToken, clientDetails); webDriver.findElement(By.name("username")).clear(); webDriver.findElement(By.name("username")).sendKeys(testAccounts.getUserName()); webDriver.findElement(By.name("password")).sendKeys("koala"); webDriver.findElement(By.xpath("//input[@value='Sign in']")).click(); webDriver.get(baseUrl + "/oauth/authorize?client_id=" + clientId + "&redirect_uri=http%3A%2F%2Flocalhost%3A8888%2Flogin&response_type=code&state=8tp0tR"); assertThat(webDriver.findElement(By.cssSelector("p")).getText(), Matchers.containsString(clientId + " does not support your identity provider. To log into an identity provider supported by the application")); webDriver.get(baseUrl + "/logout.do"); }
@Test public void testSingleLogout() throws Exception { IdentityProvider<SamlIdentityProviderDefinition> provider = createIdentityProvider(SAML_ORIGIN); webDriver.get(baseUrl + "/login"); Assert.assertEquals("Cloud Foundry", webDriver.getTitle()); webDriver.findElement(By.xpath("//a[text()='" + provider.getConfig().getLinkText() + "']")).click(); webDriver.findElement(By.xpath("//h2[contains(text(), 'Enter your username and password')]")); webDriver.findElement(By.name("username")).clear(); webDriver.findElement(By.name("username")).sendKeys(testAccounts.getUserName()); webDriver.findElement(By.name("password")).sendKeys(testAccounts.getPassword()); webDriver.findElement(By.xpath("//input[@value='Login']")).click(); assertThat(webDriver.findElement(By.cssSelector("h1")).getText(), Matchers.containsString("Where to")); logout(); IntegrationTestUtils.validateAccountChooserCookie(baseUrl, webDriver); webDriver.findElement(By.xpath("//a[text()='" + provider.getConfig().getLinkText() + "']")).click(); webDriver.findElement(By.xpath("//h2[contains(text(), 'Enter your username and password')]")); }
@Test public void testSamlLoginClientIDPAuthorizationAutomaticRedirect() throws Exception { IdentityProvider<SamlIdentityProviderDefinition> provider = createIdentityProvider(SAML_ORIGIN); assertEquals(provider.getOriginKey(), provider.getConfig().getIdpEntityAlias()); List<String> idps = Arrays.asList(provider.getOriginKey()); webDriver.get(baseUrl + "/logout.do"); String adminAccessToken = testClient.getOAuthAccessToken("admin", "adminsecret", "client_credentials", "clients.read clients.write clients.secret clients.admin"); String clientId = UUID.randomUUID().toString(); BaseClientDetails clientDetails = new BaseClientDetails(clientId, null, "openid", GRANT_TYPE_AUTHORIZATION_CODE, "uaa.none", baseUrl); clientDetails.setClientSecret("secret"); clientDetails.addAdditionalInformation(ClientConstants.ALLOWED_PROVIDERS, idps); clientDetails.setAutoApproveScopes(Collections.singleton("true")); testClient.createClient(adminAccessToken, clientDetails); webDriver.get(baseUrl + "/oauth/authorize?client_id=" + clientId + "&redirect_uri=" + URLEncoder.encode(baseUrl) + "&response_type=code&state=8tp0tR"); //we should now be in the Simple SAML PHP site webDriver.findElement(By.xpath("//h2[contains(text(), 'Enter your username and password')]")); webDriver.findElement(By.name("username")).clear(); webDriver.findElement(By.name("username")).sendKeys(testAccounts.getUserName()); webDriver.findElement(By.name("password")).sendKeys("koala"); webDriver.findElement(By.xpath("//input[@value='Login']")).click(); assertThat(webDriver.findElement(By.cssSelector("h1")).getText(), Matchers.containsString("Where to?")); webDriver.get(baseUrl + "/logout.do"); }
private String startCreateUserFlow(String secret) { String userEmail = "user" + new SecureRandom().nextInt() + "@example.com"; webDriver.get(baseUrl + "/"); webDriver.findElement(By.xpath("//*[text()='Create account']")).click(); assertEquals("Create your account", webDriver.findElement(By.tagName("h1")).getText()); webDriver.findElement(By.name("email")).sendKeys(userEmail); webDriver.findElement(By.name("password")).sendKeys(secret); webDriver.findElement(By.name("password_confirmation")).sendKeys(secret); webDriver.findElement(By.xpath("//input[@value='Send activation link']")).click(); return userEmail; }
private void testLocalSamlIdpLogin(String firstUrl, String lookfor, String username, String password) throws Exception { SamlIdentityProviderDefinition idpDef = createLocalSamlIdpDefinition(IDP_ENTITY_ID, "uaa"); @SuppressWarnings("unchecked") IdentityProvider<SamlIdentityProviderDefinition> provider = IntegrationTestUtils.createIdentityProvider( "Local SAML IdP", true, this.baseUrl, this.serverRunning, idpDef); SamlServiceProviderDefinition spDef = createLocalSamlSpDefinition("cloudfoundry-saml-login", "uaa"); createSamlServiceProvider("Local SAML SP", "cloudfoundry-saml-login", baseUrl, serverRunning, spDef); webDriver.get(baseUrl + firstUrl); IntegrationTestUtils.takeScreenShot(webDriver); assertEquals("Cloud Foundry", webDriver.getTitle()); webDriver.findElement(By.xpath("//a[text()='" + provider.getConfig().getLinkText() + "']")).click(); webDriver.findElement(By.xpath("//h1[contains(text(), 'Welcome!')]")); webDriver.findElement(By.name("username")).clear(); webDriver.findElement(By.name("username")).sendKeys(username); webDriver.findElement(By.name("password")).sendKeys(password); webDriver.findElement(By.xpath("//input[@value='Sign in']")).click(); assertThat(webDriver.findElement(By.cssSelector("h1")).getText(), containsString(lookfor)); provider.setActive(false); IntegrationTestUtils.updateIdentityProvider(this.baseUrl, this.serverRunning, provider); }
private void signIn(String userName, String password) { webDriver.get(baseUrl + "/logout.do"); webDriver.get(baseUrl + "/login"); webDriver.findElement(By.name("username")).sendKeys(userName); webDriver.findElement(By.name("password")).sendKeys(password); webDriver.findElement(By.xpath("//input[@value='Sign in']")).click(); assertThat(webDriver.findElement(By.cssSelector("h1")).getText(), containsString("Where to?")); } }
@Test public void acceptInvitation_for_samlUser() throws Exception { webDriver.get(baseUrl + "/logout.do"); BaseClientDetails appClient = IntegrationTestUtils.getClient(scimToken, baseUrl, "app"); appClient.setScope(Lists.newArrayList("cloud_controller.read", "password.write", "scim.userids", "cloud_controller.write", "openid", "organizations.acme")); appClient.setAutoApproveScopes(Lists.newArrayList("openid")); IntegrationTestUtils.updateClient(baseUrl, scimToken, appClient); String code = createInvitation(testInviteEmail, testInviteEmail, "http://localhost:8080/app/", "simplesamlphp"); String invitedUserId = IntegrationTestUtils.getUserIdByField(scimToken, baseUrl, "simplesamlphp", "email", testInviteEmail); IntegrationTestUtils.createIdentityProvider("simplesamlphp", true, baseUrl, serverRunning); webDriver.get(baseUrl + "/invitations/accept?code=" + code); webDriver.findElement(By.xpath("//h2[contains(text(), 'Enter your username and password')]")); webDriver.findElement(By.name("username")).clear(); webDriver.findElement(By.name("username")).sendKeys("user_only_for_invitations_test"); webDriver.findElement(By.name("password")).sendKeys("saml"); WebElement loginButton = webDriver.findElement(By.xpath("//input[@value='Login']")); loginButton.click(); //wait until UAA page has loaded webDriver.findElement(By.id("application_authorization")); String acceptedUsername = IntegrationTestUtils.getUsernameById(scimToken, baseUrl, invitedUserId); //webdriver follows redirects so we should be on the UAA authorization page assertEquals("user_only_for_invitations_test", acceptedUsername); //external users should default to not being "verified" since we can't determine this ScimUser user = IntegrationTestUtils.getUser(scimToken, baseUrl, invitedUserId); assertFalse(user.isVerified()); }
private void changePassword(String originalPassword, String newPassword, String confirmPassword) { webDriver.findElement(By.xpath("//*[text()='"+userEmail+"']")).click(); webDriver.findElement(By.linkText("Account Settings")).click(); webDriver.findElement(By.linkText("Change Password")).click(); webDriver.findElement(By.name("current_password")).sendKeys(originalPassword); webDriver.findElement(By.name("new_password")).sendKeys(newPassword); webDriver.findElement(By.name("confirm_password")).sendKeys(confirmPassword); webDriver.findElement(By.xpath("//input[@value='Change password']")).click(); }