keycloak-aplcache
Changes
forms/common-themes/src/main/resources/theme/admin/base/resources/partials/user-federated-identity.html 2(+1 -1)
Details
diff --git a/forms/common-themes/src/main/resources/theme/admin/base/resources/partials/user-federated-identity.html b/forms/common-themes/src/main/resources/theme/admin/base/resources/partials/user-federated-identity.html
index 70a2691..dd23d7d 100644
--- a/forms/common-themes/src/main/resources/theme/admin/base/resources/partials/user-federated-identity.html
+++ b/forms/common-themes/src/main/resources/theme/admin/base/resources/partials/user-federated-identity.html
@@ -17,7 +17,7 @@
<table class="table table-striped table-bordered">
<thead>
<tr>
- <th>Identity Provider Name</th>
+ <th>Identity Provider Alias</th>
<th>Username</th>
</tr>
</thead>
diff --git a/services/src/main/java/org/keycloak/services/resources/admin/UsersResource.java b/services/src/main/java/org/keycloak/services/resources/admin/UsersResource.java
index 5732688..6b694a7 100755
--- a/services/src/main/java/org/keycloak/services/resources/admin/UsersResource.java
+++ b/services/src/main/java/org/keycloak/services/resources/admin/UsersResource.java
@@ -267,9 +267,6 @@ public class UsersResource {
for (IdentityProviderModel identityProviderModel : realm.getIdentityProviders()) {
if (identityProviderModel.getId().equals(identity.getIdentityProvider())) {
FederatedIdentityRepresentation rep = ModelToRepresentation.toRepresentation(identity);
-
- rep.setIdentityProvider(identityProviderModel.getName());
-
result.add(rep);
}
}
diff --git a/testsuite/integration/src/main/java/org/keycloak/testutils/ldap/EmbeddedServersFactory.java b/testsuite/integration/src/main/java/org/keycloak/testutils/ldap/EmbeddedServersFactory.java
index cd05b3e..3cfb36c 100644
--- a/testsuite/integration/src/main/java/org/keycloak/testutils/ldap/EmbeddedServersFactory.java
+++ b/testsuite/integration/src/main/java/org/keycloak/testutils/ldap/EmbeddedServersFactory.java
@@ -74,18 +74,6 @@ public class EmbeddedServersFactory {
if (kdcEncryptionTypes == null || kdcEncryptionTypes.isEmpty()) {
kdcEncryptionTypes = DEFAULT_KDC_ENCRYPTION_TYPES;
}
-
- if (ldapSaslPrincipal == null || ldapSaslPrincipal.isEmpty()) {
- try {
- // Same algorithm like sun.security.krb5.PrincipalName constructor
- GSSName gssName = GSSManager.getInstance().createName("ldap@localhost", GSSName.NT_HOSTBASED_SERVICE);
- GSSNameImpl gssName1 = (GSSNameImpl) gssName;
- Krb5NameElement krb5NameElement = (Krb5NameElement) gssName1.getElement(KerberosSerializationUtils.KRB5_OID);
- this.ldapSaslPrincipal = krb5NameElement.getKrb5PrincipalName().toString();
- } catch (GSSException uhe) {
- throw new RuntimeException(uhe);
- }
- }
}
@@ -107,6 +95,19 @@ public class EmbeddedServersFactory {
ldifFile = DEFAULT_KERBEROS_LDIF_FILE;
}
+ // Init ldap sasl principal just when creating kerberos server
+ if (ldapSaslPrincipal == null || ldapSaslPrincipal.isEmpty()) {
+ try {
+ // Same algorithm like sun.security.krb5.PrincipalName constructor
+ GSSName gssName = GSSManager.getInstance().createName("ldap@" + bindHost, GSSName.NT_HOSTBASED_SERVICE);
+ GSSNameImpl gssName1 = (GSSNameImpl) gssName;
+ Krb5NameElement krb5NameElement = (Krb5NameElement) gssName1.getElement(KerberosSerializationUtils.KRB5_OID);
+ this.ldapSaslPrincipal = krb5NameElement.getKrb5PrincipalName().toString();
+ } catch (GSSException uhe) {
+ throw new RuntimeException(uhe);
+ }
+ }
+
return new KerberosEmbeddedServer(baseDN, bindHost, bindPort, ldifFile, ldapSaslPrincipal, kerberosRealm, kdcPort, kdcEncryptionTypes);
}
}
diff --git a/testsuite/integration/src/main/java/org/keycloak/testutils/ldap/LDAPEmbeddedServer.java b/testsuite/integration/src/main/java/org/keycloak/testutils/ldap/LDAPEmbeddedServer.java
index e6e7be1..ce7b56b 100644
--- a/testsuite/integration/src/main/java/org/keycloak/testutils/ldap/LDAPEmbeddedServer.java
+++ b/testsuite/integration/src/main/java/org/keycloak/testutils/ldap/LDAPEmbeddedServer.java
@@ -143,7 +143,9 @@ public class LDAPEmbeddedServer {
private void importLdif() throws Exception {
Map<String, String> map = new HashMap<String, String>();
map.put("hostname", this.bindHost);
- map.put("ldapSaslPrincipal", this.ldapSaslPrincipal);
+ if (this.ldapSaslPrincipal != null) {
+ map.put("ldapSaslPrincipal", this.ldapSaslPrincipal);
+ }
// For now, assume that LDIF file is on classpath
InputStream is = getClass().getClassLoader().getResourceAsStream(ldifFile);
diff --git a/testsuite/integration/src/test/java/org/keycloak/testsuite/admin/UserTest.java b/testsuite/integration/src/test/java/org/keycloak/testsuite/admin/UserTest.java
index d2c76dd..976223c 100755
--- a/testsuite/integration/src/test/java/org/keycloak/testsuite/admin/UserTest.java
+++ b/testsuite/integration/src/test/java/org/keycloak/testsuite/admin/UserTest.java
@@ -1,9 +1,12 @@
package org.keycloak.testsuite.admin;
+import org.junit.Assert;
import org.junit.Ignore;
import org.junit.Test;
+import org.keycloak.admin.client.resource.IdentityProviderResource;
import org.keycloak.admin.client.resource.UserResource;
import org.keycloak.representations.idm.FederatedIdentityRepresentation;
+import org.keycloak.representations.idm.IdentityProviderRepresentation;
import org.keycloak.representations.idm.UserRepresentation;
import javax.ws.rs.ClientErrorException;
@@ -187,44 +190,53 @@ public class UserTest extends AbstractClientTest {
}
@Test
- public void addFederatedIdentity() {
- createUser();
+ public void getFederatedIdentities() {
+ // Add sample identity provider
+ addSampleIdentityProvider();
+ // Add sample user
+ createUser();
UserResource user = realm.users().get("user1");
+ assertEquals(0, user.getFederatedIdentity().size());
+ // Add social link to the user
FederatedIdentityRepresentation link = new FederatedIdentityRepresentation();
link.setUserId("social-user-id");
link.setUserName("social-username");
-
Response response = user.addFederatedIdentity("social-provider-id", link);
assertEquals(204, response.getStatus());
- }
-
- @Test
- @Ignore("Refactor based on KEYCLOAK-883")
- public void getFederatedIdentities() {
- addFederatedIdentity();
-
- UserResource user = realm.users().get("user1");
- assertEquals(1, user.getFederatedIdentity().size());
- FederatedIdentityRepresentation link = user.getFederatedIdentity().get(0);
+ // Verify social link is here
+ user = realm.users().get("user1");
+ List<FederatedIdentityRepresentation> federatedIdentities = user.getFederatedIdentity();
+ assertEquals(1, federatedIdentities.size());
+ link = federatedIdentities.get(0);
assertEquals("social-provider-id", link.getIdentityProvider());
assertEquals("social-user-id", link.getUserId());
assertEquals("social-username", link.getUserName());
- }
- @Test
- @Ignore("Refactor based on KEYCLOAK-883")
- public void removeFederatedIdentity() {
- addFederatedIdentity();
+ // Remove social link now
+ user.removeFederatedIdentity("social-provider-id");
+ assertEquals(0, user.getFederatedIdentity().size());
- UserResource user = realm.users().get("user1");
- assertEquals(1, user.getFederatedIdentity().size());
+ removeSampleIdentityProvider();
+ }
- user.removeFederatedIdentity("social-provider-id");
+ private void addSampleIdentityProvider() {
+ List<IdentityProviderRepresentation> providers = realm.identityProviders().findAll();
+ Assert.assertEquals(0, providers.size());
- assertEquals(0, user.getFederatedIdentity().size());
+ IdentityProviderRepresentation rep = new IdentityProviderRepresentation();
+ rep.setId("social-provider-id");
+ rep.setName("social-provider-name");
+ rep.setProviderId("social-provider-type");
+ realm.identityProviders().create(rep);
+ }
+
+ private void removeSampleIdentityProvider() {
+ IdentityProviderResource resource = realm.identityProviders().get("social-provider-id");
+ Assert.assertNotNull(resource);
+ resource.remove();
}
@Test