Search in sources :

Example 1 with TestLdapConnectionRepresentation

use of org.keycloak.representations.idm.TestLdapConnectionRepresentation in project keycloak by keycloak.

the class RealmAdminResource method testLDAPConnection.

/**
 * Test LDAP connection
 *
 * @param action
 * @param connectionUrl
 * @param bindDn
 * @param bindCredential
 * @return
 */
@Path("testLDAPConnection")
@POST
@NoCache
@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
@Deprecated
public Response testLDAPConnection(@FormParam("action") String action, @FormParam("connectionUrl") String connectionUrl, @FormParam("bindDn") String bindDn, @FormParam("bindCredential") String bindCredential, @FormParam("useTruststoreSpi") String useTruststoreSpi, @FormParam("connectionTimeout") String connectionTimeout, @FormParam("componentId") String componentId, @FormParam("startTls") String startTls) {
    auth.realm().requireManageRealm();
    TestLdapConnectionRepresentation config = new TestLdapConnectionRepresentation(action, connectionUrl, bindDn, bindCredential, useTruststoreSpi, connectionTimeout, startTls, LDAPConstants.AUTH_TYPE_SIMPLE);
    config.setComponentId(componentId);
    boolean result = LDAPServerCapabilitiesManager.testLDAP(config, session, realm);
    return result ? Response.noContent().build() : ErrorResponse.error("LDAP test error", Response.Status.BAD_REQUEST);
}
Also used : TestLdapConnectionRepresentation(org.keycloak.representations.idm.TestLdapConnectionRepresentation) Path(javax.ws.rs.Path) POST(javax.ws.rs.POST) Consumes(javax.ws.rs.Consumes) NoCache(org.jboss.resteasy.annotations.cache.NoCache)

Example 2 with TestLdapConnectionRepresentation

use of org.keycloak.representations.idm.TestLdapConnectionRepresentation in project keycloak by keycloak.

the class UserFederationLdapConnectionTest method testLdapConnectionsSsl.

@Test
public void testLdapConnectionsSsl() {
    Response response = realm.testLDAPConnection(new TestLdapConnectionRepresentation(LDAPServerCapabilitiesManager.TEST_CONNECTION, "ldaps://localhost:10636", "foo", "bar", "false", null, null, LDAPConstants.AUTH_TYPE_NONE));
    assertStatus(response, 204);
    response = realm.testLDAPConnection(new TestLdapConnectionRepresentation(LDAPServerCapabilitiesManager.TEST_CONNECTION, "ldaps://localhostt:10636", "foo", "bar", "false", null));
    assertStatus(response, 400);
    response = realm.testLDAPConnection(new TestLdapConnectionRepresentation(LDAPServerCapabilitiesManager.TEST_AUTHENTICATION, "ldaps://localhost:10636", "foo", "bar", "false", null));
    assertStatus(response, 400);
    response = realm.testLDAPConnection(new TestLdapConnectionRepresentation(LDAPServerCapabilitiesManager.TEST_AUTHENTICATION, "ldaps://localhost:10636", "uid=admin,ou=system", "secret", "true", null));
    assertStatus(response, 204);
    response = realm.testLDAPConnection(new TestLdapConnectionRepresentation(LDAPServerCapabilitiesManager.TEST_AUTHENTICATION, "ldaps://localhost:10636", "uid=admin,ou=system", "secret", "true", "10000"));
    assertStatus(response, 204);
    // Authentication success with bindCredential from Vault
    response = realm.testLDAPConnection(new TestLdapConnectionRepresentation(LDAPServerCapabilitiesManager.TEST_AUTHENTICATION, "ldaps://localhost:10636", "uid=admin,ou=system", "${vault.ldap_bindCredential}", "true", null));
    assertStatus(response, 204);
}
Also used : Response(javax.ws.rs.core.Response) TestLdapConnectionRepresentation(org.keycloak.representations.idm.TestLdapConnectionRepresentation) Test(org.junit.Test)

Example 3 with TestLdapConnectionRepresentation

use of org.keycloak.representations.idm.TestLdapConnectionRepresentation in project keycloak by keycloak.

the class UserFederationLdapConnectionTest method testLdapConnections1.

@Test
public void testLdapConnections1() {
    // Unknown action
    Response response = realm.testLDAPConnection(new TestLdapConnectionRepresentation("unknown", "ldap://localhost:10389", "foo", "bar", "false", null));
    assertStatus(response, 400);
    // Bad host
    response = realm.testLDAPConnection(new TestLdapConnectionRepresentation(LDAPServerCapabilitiesManager.TEST_CONNECTION, "ldap://localhostt:10389", "foo", "bar", "false", null));
    assertStatus(response, 400);
    // Connection success
    response = realm.testLDAPConnection(new TestLdapConnectionRepresentation(LDAPServerCapabilitiesManager.TEST_CONNECTION, "ldap://localhost:10389", "foo", "bar", "false", null, "false", LDAPConstants.AUTH_TYPE_NONE));
    assertStatus(response, 204);
    // Bad authentication
    response = realm.testLDAPConnection(new TestLdapConnectionRepresentation(LDAPServerCapabilitiesManager.TEST_AUTHENTICATION, "ldap://localhost:10389", "foo", "bar", "false", "10000"));
    assertStatus(response, 400);
    // Authentication success
    response = realm.testLDAPConnection(new TestLdapConnectionRepresentation(LDAPServerCapabilitiesManager.TEST_AUTHENTICATION, "ldap://localhost:10389", "uid=admin,ou=system", "secret", "false", null));
    assertStatus(response, 204);
    // Authentication success with bindCredential from Vault
    response = realm.testLDAPConnection(new TestLdapConnectionRepresentation(LDAPServerCapabilitiesManager.TEST_AUTHENTICATION, "ldap://localhost:10389", "uid=admin,ou=system", "${vault.ldap_bindCredential}", "false", null));
    assertStatus(response, 204);
    response = realm.testLDAPConnection(new TestLdapConnectionRepresentation(LDAPServerCapabilitiesManager.TEST_AUTHENTICATION, "ldap://localhost:10389", "uid=admin,ou=system", "${vault.ldap_bindCredential}", "false", null));
    assertStatus(response, 204);
    // Deprecated form based
    response = realm.testLDAPConnection(LDAPServerCapabilitiesManager.TEST_AUTHENTICATION, "ldap://localhost:10389", "uid=admin,ou=system", "${vault.ldap_bindCredential}", "false", null);
    assertStatus(response, 204);
}
Also used : Response(javax.ws.rs.core.Response) TestLdapConnectionRepresentation(org.keycloak.representations.idm.TestLdapConnectionRepresentation) Test(org.junit.Test)

Example 4 with TestLdapConnectionRepresentation

use of org.keycloak.representations.idm.TestLdapConnectionRepresentation in project keycloak by keycloak.

the class UserFederationLdapConnectionTest method testLdapCapabilities.

@Test
public void testLdapCapabilities() {
    // Query the rootDSE success
    TestLdapConnectionRepresentation config = new TestLdapConnectionRepresentation(LDAPServerCapabilitiesManager.QUERY_SERVER_CAPABILITIES, "ldap://localhost:10389", "uid=admin,ou=system", "secret", "false", null, "false", LDAPConstants.AUTH_TYPE_SIMPLE);
    List<LDAPCapabilityRepresentation> ldapCapabilities = realm.ldapServerCapabilities(config);
    Assert.assertThat(ldapCapabilities, Matchers.hasItem(new LDAPCapabilityRepresentation(PasswordModifyRequest.PASSWORD_MODIFY_OID, LDAPCapabilityRepresentation.CapabilityType.EXTENSION)));
    // Query the rootDSE failure
    try {
        config = new TestLdapConnectionRepresentation(LDAPServerCapabilitiesManager.QUERY_SERVER_CAPABILITIES, "ldap://localhost:10389", "foo", "bar", "false", null, "false", LDAPConstants.AUTH_TYPE_SIMPLE);
        realm.ldapServerCapabilities(config);
        Assert.fail("It wasn't expected to successfully sent the request for query capabilities");
    } catch (BadRequestException bre) {
    // Expected
    }
}
Also used : LDAPCapabilityRepresentation(org.keycloak.representations.idm.LDAPCapabilityRepresentation) BadRequestException(javax.ws.rs.BadRequestException) TestLdapConnectionRepresentation(org.keycloak.representations.idm.TestLdapConnectionRepresentation) Test(org.junit.Test)

Aggregations

TestLdapConnectionRepresentation (org.keycloak.representations.idm.TestLdapConnectionRepresentation)4 Test (org.junit.Test)3 Response (javax.ws.rs.core.Response)2 BadRequestException (javax.ws.rs.BadRequestException)1 Consumes (javax.ws.rs.Consumes)1 POST (javax.ws.rs.POST)1 Path (javax.ws.rs.Path)1 NoCache (org.jboss.resteasy.annotations.cache.NoCache)1 LDAPCapabilityRepresentation (org.keycloak.representations.idm.LDAPCapabilityRepresentation)1