claim mappings next phase
This commit is contained in:
1 parent
6c5f35720a
commit
c20ad93807
39 files changed
+666
-250
No files matched your search
@@ -105,6 +105,7 @@ public interface ClientModel {
|
||||
boolean hasIdentityProvider(String providerId);
|
||||
|
||||
Set<ProtocolMapperModel> getProtocolMappers();
|
||||
void addProtocolMappers(Set<String> mapperIds);
|
||||
void removeProtocolMappers(Set<String> mapperIds);
|
||||
void addProtocolMappers(Set<String> mapperNames);
|
||||
void removeProtocolMappers(Set<String> mapperNames);
|
||||
void setProtocolMappers(Set<String> mapperNames);
|
||||
}
|
||||
@@ -1,6 +1,7 @@
|
||||
package org.keycloak.models;
|
||||
|
||||
import org.keycloak.enums.SslRequired;
|
||||
import org.keycloak.provider.ProviderEvent;
|
||||
|
||||
import java.security.Key;
|
||||
import java.security.PrivateKey;
|
||||
@@ -15,6 +16,19 @@ import java.util.Set;
|
||||
* @version $Revision: 1 $
|
||||
*/
|
||||
public interface RealmModel extends RoleContainerModel {
|
||||
interface RealmCreationEvent extends ProviderEvent {
|
||||
RealmModel getCreatedRealm();
|
||||
}
|
||||
interface ClientCreationEvent extends ProviderEvent {
|
||||
RealmModel getCreatedRealm();
|
||||
ClientModel getCreatedClient();
|
||||
}
|
||||
interface ApplicationCreationEvent extends ClientCreationEvent {
|
||||
ApplicationModel getCreatedApplication();
|
||||
}
|
||||
interface OAuthClientCreationEvent extends ClientCreationEvent {
|
||||
OAuthClientModel getCreatedOAuthClient();
|
||||
}
|
||||
|
||||
String getId();
|
||||
|
||||
@@ -235,6 +249,7 @@ public interface RealmModel extends RoleContainerModel {
|
||||
void removeProtocolMapper(ProtocolMapperModel mapping);
|
||||
void updateProtocolMapper(ProtocolMapperModel mapping);
|
||||
public ProtocolMapperModel getProtocolMapperById(String id);
|
||||
public ProtocolMapperModel getProtocolMapperByName(String name);
|
||||
|
||||
|
||||
}
|
||||
@@ -10,9 +10,6 @@ import java.util.List;
|
||||
* @version $Revision: 1 $
|
||||
*/
|
||||
public interface RealmProvider extends Provider {
|
||||
public interface RealmCreationEvent extends ProviderEvent {
|
||||
RealmModel getCreatedRealm();
|
||||
}
|
||||
|
||||
// Note: The reason there are so many query methods here is for layering a cache on top of an persistent KeycloakSession
|
||||
|
||||
|
||||
@@ -30,7 +30,7 @@ public class ClientEntity extends AbstractIdentifiableEntity {
|
||||
private List<String> redirectUris = new ArrayList<String>();
|
||||
private List<String> scopeIds = new ArrayList<String>();
|
||||
private List<String> allowedIdentityProviders = new ArrayList<String>();
|
||||
private Set<String> protocolClaimMappings = new HashSet<String>();
|
||||
private Set<String> protocolMappers = new HashSet<String>();
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
@@ -152,11 +152,11 @@ public class ClientEntity extends AbstractIdentifiableEntity {
|
||||
this.allowedIdentityProviders = allowedIdentityProviders;
|
||||
}
|
||||
|
||||
public Set<String> getProtocolClaimMappings() {
|
||||
return protocolClaimMappings;
|
||||
public Set<String> getProtocolMappers() {
|
||||
return protocolMappers;
|
||||
}
|
||||
|
||||
public void setProtocolClaimMappings(Set<String> protocolClaimMappings) {
|
||||
this.protocolClaimMappings = protocolClaimMappings;
|
||||
public void setProtocolMappers(Set<String> protocolMappers) {
|
||||
this.protocolMappers = protocolMappers;
|
||||
}
|
||||
}
|
||||
@@ -158,7 +158,7 @@ public class ModelToRepresentation {
|
||||
}
|
||||
|
||||
for (ProtocolMapperModel mapping : realm.getProtocolMappers()) {
|
||||
rep.getProtocolClaimMappings().add(toRepresentation(mapping));
|
||||
rep.addProtocolMapper(toRepresentation(mapping));
|
||||
}
|
||||
|
||||
return rep;
|
||||
@@ -267,8 +267,8 @@ public class ModelToRepresentation {
|
||||
|
||||
if (!applicationModel.getProtocolMappers().isEmpty()) {
|
||||
Set<String> mappings = new HashSet<String>();
|
||||
for (ProtocolMapperModel model : applicationModel.getProtocolMappers()) mappings.add(model.getId());
|
||||
rep.setProtocolClaimMappings(mappings);
|
||||
for (ProtocolMapperModel model : applicationModel.getProtocolMappers()) mappings.add(model.getName());
|
||||
rep.setProtocolMappers(mappings);
|
||||
}
|
||||
|
||||
return rep;
|
||||
@@ -302,7 +302,7 @@ public class ModelToRepresentation {
|
||||
|
||||
if (!model.getProtocolMappers().isEmpty()) {
|
||||
Set<String> mappings = new HashSet<String>();
|
||||
for (ProtocolMapperModel mappingMoel : model.getProtocolMappers()) mappings.add(mappingMoel.getId());
|
||||
for (ProtocolMapperModel mappingModel : model.getProtocolMappers()) mappings.add(mappingModel.getName());
|
||||
rep.setProtocolClaimMappings(mappings);
|
||||
}
|
||||
return rep;
|
||||
|
||||
@@ -460,8 +460,8 @@ public class RepresentationToModel {
|
||||
applicationModel.setAllowedClaimsMask(ClaimMask.ALL);
|
||||
}
|
||||
|
||||
if (resourceRep.getProtocolClaimMappings() != null) {
|
||||
applicationModel.addProtocolMappers(resourceRep.getProtocolClaimMappings());
|
||||
if (resourceRep.getProtocolMappers() != null) {
|
||||
applicationModel.setProtocolMappers(resourceRep.getProtocolMappers());
|
||||
}
|
||||
|
||||
return applicationModel;
|
||||
@@ -773,13 +773,17 @@ public class RepresentationToModel {
|
||||
}
|
||||
|
||||
private static void importProtocolMappers(RealmRepresentation rep, RealmModel newRealm) {
|
||||
if (rep.getProtocolClaimMappings() != null) {
|
||||
if (rep.getProtocolMappers() != null) {
|
||||
// we make sure we don't recreate mappers that are automatically created by the protocol providers.
|
||||
for (ProtocolMapperRepresentation representation : rep.getProtocolClaimMappings()) {
|
||||
if (representation.getId() == null || newRealm.getProtocolMapperById(representation.getId()) == null) {
|
||||
Set<ProtocolMapperModel> mappers = newRealm.getProtocolMappers();
|
||||
for (ProtocolMapperRepresentation representation : rep.getProtocolMappers()) {
|
||||
ProtocolMapperModel existing = newRealm.getProtocolMapperByName(representation.getName());
|
||||
if (existing == null) {
|
||||
newRealm.addProtocolMapper(toModel(representation));
|
||||
} else {
|
||||
newRealm.updateProtocolMapper(toModel(representation));
|
||||
ProtocolMapperModel mapping = toModel(representation);
|
||||
mapping.setId(existing.getId());
|
||||
newRealm.updateProtocolMapper(mapping);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user