Search in sources :

Example 26 with IdentityProviderRepresentation

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

the class IdentityProviderTest method testCreateWithBasicAuth.

@Test
public void testCreateWithBasicAuth() {
    IdentityProviderRepresentation newIdentityProvider = createRep("new-identity-provider", "oidc");
    newIdentityProvider.getConfig().put(IdentityProviderModel.SYNC_MODE, "IMPORT");
    newIdentityProvider.getConfig().put("clientId", "clientId");
    newIdentityProvider.getConfig().put("clientSecret", "some secret value");
    newIdentityProvider.getConfig().put("clientAuthMethod", OIDCLoginProtocol.CLIENT_SECRET_BASIC);
    create(newIdentityProvider);
    IdentityProviderResource identityProviderResource = realm.identityProviders().get("new-identity-provider");
    assertNotNull(identityProviderResource);
    IdentityProviderRepresentation representation = identityProviderResource.toRepresentation();
    assertNotNull(representation);
    assertNotNull(representation.getInternalId());
    assertEquals("new-identity-provider", representation.getAlias());
    assertEquals("oidc", representation.getProviderId());
    assertEquals("IMPORT", representation.getConfig().get(IdentityProviderMapperModel.SYNC_MODE));
    assertEquals("clientId", representation.getConfig().get("clientId"));
    assertEquals(ComponentRepresentation.SECRET_VALUE, representation.getConfig().get("clientSecret"));
    assertEquals(OIDCLoginProtocol.CLIENT_SECRET_BASIC, representation.getConfig().get("clientAuthMethod"));
    assertTrue(representation.isEnabled());
    assertFalse(representation.isStoreToken());
    assertFalse(representation.isTrustEmail());
    assertEquals("some secret value", testingClient.testing("admin-client-test").getIdentityProviderConfig("new-identity-provider").get("clientSecret"));
    IdentityProviderRepresentation rep = realm.identityProviders().findAll().stream().filter(i -> i.getAlias().equals("new-identity-provider")).findFirst().get();
    assertEquals(ComponentRepresentation.SECRET_VALUE, rep.getConfig().get("clientSecret"));
}
Also used : IdentityProviderResource(org.keycloak.admin.client.resource.IdentityProviderResource) IdentityProviderRepresentation(org.keycloak.representations.idm.IdentityProviderRepresentation) Test(org.junit.Test)

Example 27 with IdentityProviderRepresentation

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

the class IdentityProviderTest method testCreate.

@Test
public void testCreate() {
    IdentityProviderRepresentation newIdentityProvider = createRep("new-identity-provider", "oidc");
    newIdentityProvider.getConfig().put(IdentityProviderModel.SYNC_MODE, "IMPORT");
    newIdentityProvider.getConfig().put("clientId", "clientId");
    newIdentityProvider.getConfig().put("clientSecret", "some secret value");
    create(newIdentityProvider);
    IdentityProviderResource identityProviderResource = realm.identityProviders().get("new-identity-provider");
    assertNotNull(identityProviderResource);
    IdentityProviderRepresentation representation = identityProviderResource.toRepresentation();
    assertNotNull(representation);
    assertNotNull(representation.getInternalId());
    assertEquals("new-identity-provider", representation.getAlias());
    assertEquals("oidc", representation.getProviderId());
    assertEquals("IMPORT", representation.getConfig().get(IdentityProviderMapperModel.SYNC_MODE));
    assertEquals("clientId", representation.getConfig().get("clientId"));
    assertEquals(ComponentRepresentation.SECRET_VALUE, representation.getConfig().get("clientSecret"));
    assertTrue(representation.isEnabled());
    assertFalse(representation.isStoreToken());
    assertFalse(representation.isTrustEmail());
    assertEquals("some secret value", testingClient.testing("admin-client-test").getIdentityProviderConfig("new-identity-provider").get("clientSecret"));
    IdentityProviderRepresentation rep = realm.identityProviders().findAll().stream().filter(i -> i.getAlias().equals("new-identity-provider")).findFirst().get();
    assertEquals(ComponentRepresentation.SECRET_VALUE, rep.getConfig().get("clientSecret"));
}
Also used : IdentityProviderResource(org.keycloak.admin.client.resource.IdentityProviderResource) IdentityProviderRepresentation(org.keycloak.representations.idm.IdentityProviderRepresentation) Test(org.junit.Test)

Example 28 with IdentityProviderRepresentation

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

the class IdentityProviderTest method testCreateWithJWT.

@Test
public void testCreateWithJWT() {
    IdentityProviderRepresentation newIdentityProvider = createRep("new-identity-provider", "oidc");
    newIdentityProvider.getConfig().put(IdentityProviderModel.SYNC_MODE, "IMPORT");
    newIdentityProvider.getConfig().put("clientId", "clientId");
    newIdentityProvider.getConfig().put("clientAuthMethod", OIDCLoginProtocol.PRIVATE_KEY_JWT);
    create(newIdentityProvider);
    IdentityProviderResource identityProviderResource = realm.identityProviders().get("new-identity-provider");
    assertNotNull(identityProviderResource);
    IdentityProviderRepresentation representation = identityProviderResource.toRepresentation();
    assertNotNull(representation);
    assertNotNull(representation.getInternalId());
    assertEquals("new-identity-provider", representation.getAlias());
    assertEquals("oidc", representation.getProviderId());
    assertEquals("IMPORT", representation.getConfig().get(IdentityProviderMapperModel.SYNC_MODE));
    assertEquals("clientId", representation.getConfig().get("clientId"));
    assertNull(representation.getConfig().get("clientSecret"));
    assertEquals(OIDCLoginProtocol.PRIVATE_KEY_JWT, representation.getConfig().get("clientAuthMethod"));
    assertTrue(representation.isEnabled());
    assertFalse(representation.isStoreToken());
    assertFalse(representation.isTrustEmail());
}
Also used : IdentityProviderResource(org.keycloak.admin.client.resource.IdentityProviderResource) IdentityProviderRepresentation(org.keycloak.representations.idm.IdentityProviderRepresentation) Test(org.junit.Test)

Example 29 with IdentityProviderRepresentation

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

the class IdentityProviderTest method testSamlExportSignatureOff.

@Test
public void testSamlExportSignatureOff() throws URISyntaxException, IOException, ConfigurationException, ParsingException, ProcessingException {
    // Use import-config to convert IDPSSODescriptor file into key value pairs
    // to use when creating a SAML Identity Provider
    MultipartFormDataOutput form = new MultipartFormDataOutput();
    form.addFormData("providerId", "saml", MediaType.TEXT_PLAIN_TYPE);
    URL idpMeta = getClass().getClassLoader().getResource("admin-test/saml-idp-metadata.xml");
    byte[] content = Files.readAllBytes(Paths.get(idpMeta.toURI()));
    String body = new String(content, Charset.forName("utf-8"));
    form.addFormData("file", body, MediaType.APPLICATION_XML_TYPE, "saml-idp-metadata.xml");
    Map<String, String> result = realm.identityProviders().importFrom(form);
    // Explicitly disable SP Metadata Signature
    result.put(SAMLIdentityProviderConfig.SIGN_SP_METADATA, "false");
    // Create new SAML identity provider using configuration retrieved from import-config
    IdentityProviderRepresentation idpRep = createRep("saml", "saml", true, result);
    create(idpRep);
    // Perform export, and make sure some of the values are like they're supposed to be
    Response response = realm.identityProviders().get("saml").export("xml");
    Assert.assertEquals(200, response.getStatus());
    body = response.readEntity(String.class);
    response.close();
    Document document = DocumentUtil.getDocument(body);
    Element signatureElement = DocumentUtil.getDirectChildElement(document.getDocumentElement(), XMLDSIG_NSURI.get(), "Signature");
    Assert.assertNull(signatureElement);
}
Also used : Response(javax.ws.rs.core.Response) Element(org.w3c.dom.Element) IdentityProviderRepresentation(org.keycloak.representations.idm.IdentityProviderRepresentation) Matchers.containsString(org.hamcrest.Matchers.containsString) Document(org.w3c.dom.Document) URL(java.net.URL) MultipartFormDataOutput(org.jboss.resteasy.plugins.providers.multipart.MultipartFormDataOutput) Test(org.junit.Test)

Example 30 with IdentityProviderRepresentation

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

the class IdentityProviderTest method testSamlImportAndExportMultipleSigningKeys.

@Test
public void testSamlImportAndExportMultipleSigningKeys() throws URISyntaxException, IOException, ParsingException {
    // Use import-config to convert IDPSSODescriptor file into key value pairs
    // to use when creating a SAML Identity Provider
    MultipartFormDataOutput form = new MultipartFormDataOutput();
    form.addFormData("providerId", "saml", MediaType.TEXT_PLAIN_TYPE);
    URL idpMeta = getClass().getClassLoader().getResource("admin-test/saml-idp-metadata-two-signing-certs.xml");
    byte[] content = Files.readAllBytes(Paths.get(idpMeta.toURI()));
    String body = new String(content, Charset.forName("utf-8"));
    form.addFormData("file", body, MediaType.APPLICATION_XML_TYPE, "saml-idp-metadata-two-signing-certs");
    Map<String, String> result = realm.identityProviders().importFrom(form);
    assertSamlImport(result, SIGNING_CERT_1 + "," + SIGNING_CERT_2, true);
    // Create new SAML identity provider using configuration retrieved from import-config
    create(createRep("saml", "saml", true, result));
    IdentityProviderResource provider = realm.identityProviders().get("saml");
    IdentityProviderRepresentation rep = provider.toRepresentation();
    assertCreatedSamlIdp(rep, true);
    // Now list the providers - we should see the one just created
    List<IdentityProviderRepresentation> providers = realm.identityProviders().findAll();
    Assert.assertNotNull("identityProviders not null", providers);
    Assert.assertEquals("identityProviders instance count", 1, providers.size());
    assertEqual(rep, providers.get(0));
    // Perform export, and make sure some of the values are like they're supposed to be
    Response response = realm.identityProviders().get("saml").export("xml");
    Assert.assertEquals(200, response.getStatus());
    body = response.readEntity(String.class);
    response.close();
    assertSamlExport(body);
}
Also used : Response(javax.ws.rs.core.Response) IdentityProviderResource(org.keycloak.admin.client.resource.IdentityProviderResource) IdentityProviderRepresentation(org.keycloak.representations.idm.IdentityProviderRepresentation) Matchers.containsString(org.hamcrest.Matchers.containsString) URL(java.net.URL) MultipartFormDataOutput(org.jboss.resteasy.plugins.providers.multipart.MultipartFormDataOutput) Test(org.junit.Test)

Aggregations

IdentityProviderRepresentation (org.keycloak.representations.idm.IdentityProviderRepresentation)91 Test (org.junit.Test)45 IdentityProviderResource (org.keycloak.admin.client.resource.IdentityProviderResource)23 RealmResource (org.keycloak.admin.client.resource.RealmResource)22 UserRepresentation (org.keycloak.representations.idm.UserRepresentation)17 ClientRepresentation (org.keycloak.representations.idm.ClientRepresentation)16 Response (javax.ws.rs.core.Response)15 Matchers.containsString (org.hamcrest.Matchers.containsString)10 List (java.util.List)9 MultipartFormDataOutput (org.jboss.resteasy.plugins.providers.multipart.MultipartFormDataOutput)8 URL (java.net.URL)7 IdentityProviderMapperRepresentation (org.keycloak.representations.idm.IdentityProviderMapperRepresentation)7 OAuthClient (org.keycloak.testsuite.util.OAuthClient)7 IOException (java.io.IOException)6 URI (java.net.URI)6 Map (java.util.Map)6 Matchers.hasSize (org.hamcrest.Matchers.hasSize)6 Matchers.is (org.hamcrest.Matchers.is)6 SAMLIdentityProviderConfig (org.keycloak.broker.saml.SAMLIdentityProviderConfig)6 AttributeType (org.keycloak.dom.saml.v2.assertion.AttributeType)6