[KEYCLOAK-10696] - fixed missing client role attributes after import
This commit is contained in:
parent
a76c496c23
commit
497787d2cd
3 changed files with 13 additions and 1 deletions
|
@ -628,6 +628,9 @@ public class RepresentationToModel {
|
||||||
// Application role may already exists (for example if it is defaultRole)
|
// Application role may already exists (for example if it is defaultRole)
|
||||||
RoleModel role = roleRep.getId() != null ? client.addRole(roleRep.getId(), roleRep.getName()) : client.addRole(roleRep.getName());
|
RoleModel role = roleRep.getId() != null ? client.addRole(roleRep.getId(), roleRep.getName()) : client.addRole(roleRep.getName());
|
||||||
role.setDescription(roleRep.getDescription());
|
role.setDescription(roleRep.getDescription());
|
||||||
|
if (roleRep.getAttributes() != null) {
|
||||||
|
roleRep.getAttributes().forEach((key, value) -> role.setAttribute(key, value));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -315,6 +315,7 @@ public class ExportImportTest extends AbstractKeycloakTest {
|
||||||
Map<String, List<String>> roleAttributes = adminClient.realm("test").roles().get("attribute-role").toRepresentation().getAttributes();
|
Map<String, List<String>> roleAttributes = adminClient.realm("test").roles().get("attribute-role").toRepresentation().getAttributes();
|
||||||
String testAppId = adminClient.realm("test").clients().findByClientId("test-app").get(0).getId();
|
String testAppId = adminClient.realm("test").clients().findByClientId("test-app").get(0).getId();
|
||||||
String sampleClientRoleId = adminClient.realm("test").clients().get(testAppId).roles().get("sample-client-role").toRepresentation().getId();
|
String sampleClientRoleId = adminClient.realm("test").clients().get(testAppId).roles().get("sample-client-role").toRepresentation().getId();
|
||||||
|
String sampleClientRoleAttribute = adminClient.realm("test").clients().get(testAppId).roles().get("sample-client-role").toRepresentation().getAttributes().get("sample-client-role-attribute").get(0);
|
||||||
|
|
||||||
// Delete some realm (and some data in admin realm)
|
// Delete some realm (and some data in admin realm)
|
||||||
adminClient.realm("test").remove();
|
adminClient.realm("test").remove();
|
||||||
|
@ -365,6 +366,9 @@ public class ExportImportTest extends AbstractKeycloakTest {
|
||||||
String importedSampleClientRoleId = adminClient.realm("test").clients().get(testAppId).roles().get("sample-client-role").toRepresentation().getId();
|
String importedSampleClientRoleId = adminClient.realm("test").clients().get(testAppId).roles().get("sample-client-role").toRepresentation().getId();
|
||||||
assertEquals(sampleClientRoleId, importedSampleClientRoleId);
|
assertEquals(sampleClientRoleId, importedSampleClientRoleId);
|
||||||
|
|
||||||
|
String importedSampleClientRoleAttribute = adminClient.realm("test").clients().get(testAppId).roles().get("sample-client-role").toRepresentation().getAttributes().get("sample-client-role-attribute").get(0);
|
||||||
|
assertEquals(sampleClientRoleAttribute, importedSampleClientRoleAttribute);
|
||||||
|
|
||||||
checkEventsConfig(adminClient.realm("test").getRealmEventsConfig());
|
checkEventsConfig(adminClient.realm("test").getRealmEventsConfig());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -473,7 +473,12 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "sample-client-role",
|
"name": "sample-client-role",
|
||||||
"description": "Sample client role"
|
"description": "Sample client role",
|
||||||
|
"attributes": {
|
||||||
|
"sample-client-role-attribute": [
|
||||||
|
"sample-client-role-attribute-value"
|
||||||
|
]
|
||||||
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "customer-admin-composite-role",
|
"name": "customer-admin-composite-role",
|
||||||
|
|
Loading…
Reference in a new issue