mirror of
https://github.com/keycloak/keycloak.git
synced 2026-01-25 16:42:34 +00:00
Merge pull request #3915 from TeliaSoneraNorge/KEYCLOAK-4524
KEYCLOAK-4524
This commit is contained in:
@@ -1194,7 +1194,7 @@ public class RealmAdapter implements RealmModel, JpaModel<RealmEntity> {
|
||||
|
||||
@Override
|
||||
public IdentityProviderMapperModel addIdentityProviderMapper(IdentityProviderMapperModel model) {
|
||||
if (getIdentityProviderMapperByName(model.getIdentityProviderAlias(), model.getIdentityProviderMapper()) != null) {
|
||||
if (getIdentityProviderMapperByName(model.getIdentityProviderAlias(), model.getName()) != null) {
|
||||
throw new RuntimeException("identity provider mapper name must be unique per identity provider");
|
||||
}
|
||||
String id = KeycloakModelUtils.generateId();
|
||||
|
||||
@@ -319,7 +319,11 @@ public class IdentityProviderResource {
|
||||
}
|
||||
|
||||
IdentityProviderMapperModel model = RepresentationToModel.toModel(mapper);
|
||||
model = realm.addIdentityProviderMapper(model);
|
||||
try {
|
||||
model = realm.addIdentityProviderMapper(model);
|
||||
} catch (Exception e) {
|
||||
return ErrorResponse.error("Failed to add mapper '" + model.getName() + "' to identity provider [" + identityProviderModel.getProviderId() + "].", Response.Status.BAD_REQUEST);
|
||||
}
|
||||
|
||||
adminEvent.operation(OperationType.CREATE).resource(ResourceType.IDENTITY_PROVIDER_MAPPER).resourcePath(uriInfo, model.getId())
|
||||
.representation(mapper).success();
|
||||
|
||||
@@ -424,6 +424,11 @@ public class IdentityProviderTest extends AbstractAdminTest {
|
||||
Assert.assertNotNull("mapper.config exists", mapper.getConfig());
|
||||
Assert.assertEquals("config retained", "offline_access", mapper.getConfig().get("role"));
|
||||
|
||||
// add duplicate mapper
|
||||
Response error = provider.addMapper(mapper);
|
||||
Assert.assertEquals("mapper unique name", 400, error.getStatus());
|
||||
error.close();
|
||||
|
||||
// update mapper
|
||||
mapper.getConfig().put("role", "master-realm.manage-realm");
|
||||
provider.update(id, mapper);
|
||||
|
||||
Reference in New Issue
Block a user