@Test
  public void authorizationRequestNoState() throws IOException {
    AuthorizationCodeResponse response = oauth.doLogin("test-user@localhost", "password");

    Assert.assertTrue(response.isRedirected());
    Assert.assertNotNull(response.getCode());
    Assert.assertNull(response.getState());
    Assert.assertNull(response.getError());

    oauth.verifyCode(response.getCode());
  }
  @Test
  public void authorizationRequestInstalledApp() throws IOException {
    oauth.redirectUri(Constants.INSTALLED_APP_URN);

    oauth.doLogin("test-user@localhost", "password");

    String title = driver.getTitle();
    Assert.assertTrue(title.startsWith("Success code="));

    String code = driver.findElement(By.id(OAuth2Constants.CODE)).getText();
    oauth.verifyCode(code);
  }
Example #3
0
  @Test
  public void sessions() {
    loginPage.open();
    loginPage.clickRegister();

    registerPage.register(
        "view", "sessions", "view-sessions@localhost", "view-sessions", "password", "password");

    Event registerEvent =
        events.expectRegister("view-sessions", "view-sessions@localhost").assertEvent();
    String userId = registerEvent.getUserId();

    events.expectLogin().user(userId).detail(Details.USERNAME, "view-sessions").assertEvent();

    sessionsPage.open();

    Assert.assertTrue(sessionsPage.isCurrent());

    List<List<String>> sessions = sessionsPage.getSessions();
    Assert.assertEquals(1, sessions.size());
    Assert.assertEquals("127.0.0.1", sessions.get(0).get(0));

    // Create second session
    WebDriver driver2 = WebRule.createWebDriver();
    try {
      OAuthClient oauth2 = new OAuthClient(driver2);
      oauth2.state("mystate");
      oauth2.doLogin("view-sessions", "password");

      Event login2Event =
          events.expectLogin().user(userId).detail(Details.USERNAME, "view-sessions").assertEvent();

      sessionsPage.open();
      sessions = sessionsPage.getSessions();
      Assert.assertEquals(2, sessions.size());

      sessionsPage.logoutAll();

      events.expectLogout(registerEvent.getSessionId());
      events.expectLogout(login2Event.getSessionId());
    } finally {
      driver2.close();
    }
  }
  @Test
  public void authorizationValidRedirectUri() throws IOException {
    keycloakRule.configure(
        new KeycloakRule.KeycloakSetup() {
          @Override
          public void config(
              RealmManager manager, RealmModel adminstrationRealm, RealmModel appRealm) {
            appRealm.getApplicationByName("test-app").addRedirectUri(oauth.getRedirectUri());
          }
        });

    oauth.state("mystate");

    AuthorizationCodeResponse response = oauth.doLogin("test-user@localhost", "password");

    Assert.assertTrue(response.isRedirected());
    Assert.assertNotNull(response.getCode());

    oauth.verifyCode(response.getCode());
  }
Example #5
0
  @Test
  public void getApplicationSessions() throws Exception {
    OAuthClient.AccessTokenResponse response =
        oauth.doGrantAccessTokenRequest("password", "test-user@localhost", "password");
    assertEquals(200, response.getStatusCode());

    OAuthClient.AuthorizationCodeResponse codeResponse =
        oauth.doLogin("test-user@localhost", "password");

    OAuthClient.AccessTokenResponse response2 =
        oauth.doAccessTokenRequest(codeResponse.getCode(), "password");
    assertEquals(200, response2.getStatusCode());

    ApplicationResource app = keycloak.realm("test").applications().get("test-app");

    assertEquals(2, (long) app.getApplicationSessionCount().get("count"));

    List<UserSessionRepresentation> userSessions = app.getUserSessions(0, 100);
    assertEquals(2, userSessions.size());
    assertEquals(1, userSessions.get(0).getApplications().size());
  }