keycloak-aplcache
Changes
authz/policy/common/src/main/java/org/keycloak/authorization/policy/provider/aggregated/AggregatePolicyProviderFactory.java 4(+2 -2)
authz/policy/common/src/main/java/org/keycloak/authorization/policy/provider/client/ClientPolicyProviderFactory.java 7(+4 -3)
authz/policy/common/src/main/java/org/keycloak/authorization/policy/provider/group/GroupPolicyProviderFactory.java 9(+6 -3)
authz/policy/common/src/main/java/org/keycloak/authorization/policy/provider/js/JSPolicyProviderFactory.java 3(+2 -1)
authz/policy/common/src/main/java/org/keycloak/authorization/policy/provider/resource/ResourcePolicyProviderFactory.java 3(+2 -1)
authz/policy/common/src/main/java/org/keycloak/authorization/policy/provider/role/RolePolicyProviderFactory.java 9(+6 -3)
authz/policy/common/src/main/java/org/keycloak/authorization/policy/provider/scope/ScopePolicyProviderFactory.java 4(+2 -2)
authz/policy/common/src/main/java/org/keycloak/authorization/policy/provider/time/TimePolicyProviderFactory.java 3(+2 -1)
authz/policy/common/src/main/java/org/keycloak/authorization/policy/provider/user/UserPolicyProviderFactory.java 9(+6 -3)
authz/policy/drools/src/main/java/org/keycloak/authorization/policy/provider/drools/DroolsPolicyProviderFactory.java 27(+15 -12)
Details
diff --git a/authz/policy/common/src/main/java/org/keycloak/authorization/policy/provider/aggregated/AggregatePolicyProviderFactory.java b/authz/policy/common/src/main/java/org/keycloak/authorization/policy/provider/aggregated/AggregatePolicyProviderFactory.java
index 0ed8763..d6c4f07 100644
--- a/authz/policy/common/src/main/java/org/keycloak/authorization/policy/provider/aggregated/AggregatePolicyProviderFactory.java
+++ b/authz/policy/common/src/main/java/org/keycloak/authorization/policy/provider/aggregated/AggregatePolicyProviderFactory.java
@@ -73,8 +73,8 @@ public class AggregatePolicyProviderFactory implements PolicyProviderFactory<Agg
}
@Override
- public AggregatePolicyRepresentation toRepresentation(Policy policy, AggregatePolicyRepresentation representation) {
- return representation;
+ public AggregatePolicyRepresentation toRepresentation(Policy policy) {
+ return new AggregatePolicyRepresentation();
}
@Override
diff --git a/authz/policy/common/src/main/java/org/keycloak/authorization/policy/provider/client/ClientPolicyProviderFactory.java b/authz/policy/common/src/main/java/org/keycloak/authorization/policy/provider/client/ClientPolicyProviderFactory.java
index 1360297..c118c26 100644
--- a/authz/policy/common/src/main/java/org/keycloak/authorization/policy/provider/client/ClientPolicyProviderFactory.java
+++ b/authz/policy/common/src/main/java/org/keycloak/authorization/policy/provider/client/ClientPolicyProviderFactory.java
@@ -30,7 +30,7 @@ import org.keycloak.util.JsonSerialization;
public class ClientPolicyProviderFactory implements PolicyProviderFactory<ClientPolicyRepresentation> {
- private ClientPolicyProvider provider = new ClientPolicyProvider(policy -> toRepresentation(policy, new ClientPolicyRepresentation()));
+ private ClientPolicyProvider provider = new ClientPolicyProvider(policy -> toRepresentation(policy));
@Override
public String getName() {
@@ -48,7 +48,8 @@ public class ClientPolicyProviderFactory implements PolicyProviderFactory<Client
}
@Override
- public ClientPolicyRepresentation toRepresentation(Policy policy, ClientPolicyRepresentation representation) {
+ public ClientPolicyRepresentation toRepresentation(Policy policy) {
+ ClientPolicyRepresentation representation = new ClientPolicyRepresentation();
representation.setClients(new HashSet<>(Arrays.asList(getClients(policy))));
return representation;
}
@@ -75,7 +76,7 @@ public class ClientPolicyProviderFactory implements PolicyProviderFactory<Client
@Override
public void onExport(Policy policy, PolicyRepresentation representation, AuthorizationProvider authorizationProvider) {
- ClientPolicyRepresentation userRep = toRepresentation(policy, new ClientPolicyRepresentation());
+ ClientPolicyRepresentation userRep = toRepresentation(policy);
Map<String, String> config = new HashMap<>();
try {
diff --git a/authz/policy/common/src/main/java/org/keycloak/authorization/policy/provider/group/GroupPolicyProviderFactory.java b/authz/policy/common/src/main/java/org/keycloak/authorization/policy/provider/group/GroupPolicyProviderFactory.java
index 2d2bebc..f18e20d 100644
--- a/authz/policy/common/src/main/java/org/keycloak/authorization/policy/provider/group/GroupPolicyProviderFactory.java
+++ b/authz/policy/common/src/main/java/org/keycloak/authorization/policy/provider/group/GroupPolicyProviderFactory.java
@@ -43,7 +43,7 @@ import org.keycloak.util.JsonSerialization;
*/
public class GroupPolicyProviderFactory implements PolicyProviderFactory<GroupPolicyRepresentation> {
- private GroupPolicyProvider provider = new GroupPolicyProvider(policy -> toRepresentation(policy, new GroupPolicyRepresentation()));
+ private GroupPolicyProvider provider = new GroupPolicyProvider(policy -> toRepresentation(policy));
@Override
public String getId() {
@@ -71,8 +71,11 @@ public class GroupPolicyProviderFactory implements PolicyProviderFactory<GroupPo
}
@Override
- public GroupPolicyRepresentation toRepresentation(Policy policy, GroupPolicyRepresentation representation) {
+ public GroupPolicyRepresentation toRepresentation(Policy policy) {
+ GroupPolicyRepresentation representation = new GroupPolicyRepresentation();
+
representation.setGroupsClaim(policy.getConfig().get("groupsClaim"));
+
try {
representation.setGroups(getGroupsDefinition(policy.getConfig()));
} catch (IOException cause) {
@@ -108,7 +111,7 @@ public class GroupPolicyProviderFactory implements PolicyProviderFactory<GroupPo
@Override
public void onExport(Policy policy, PolicyRepresentation representation, AuthorizationProvider authorizationProvider) {
Map<String, String> config = new HashMap<>();
- GroupPolicyRepresentation groupPolicy = toRepresentation(policy, new GroupPolicyRepresentation());
+ GroupPolicyRepresentation groupPolicy = toRepresentation(policy);
Set<GroupPolicyRepresentation.GroupDefinition> groups = groupPolicy.getGroups();
for (GroupPolicyRepresentation.GroupDefinition definition: groups) {
diff --git a/authz/policy/common/src/main/java/org/keycloak/authorization/policy/provider/js/JSPolicyProviderFactory.java b/authz/policy/common/src/main/java/org/keycloak/authorization/policy/provider/js/JSPolicyProviderFactory.java
index e3e82ce..1b2aa16 100644
--- a/authz/policy/common/src/main/java/org/keycloak/authorization/policy/provider/js/JSPolicyProviderFactory.java
+++ b/authz/policy/common/src/main/java/org/keycloak/authorization/policy/provider/js/JSPolicyProviderFactory.java
@@ -43,7 +43,8 @@ public class JSPolicyProviderFactory implements PolicyProviderFactory<JSPolicyRe
}
@Override
- public JSPolicyRepresentation toRepresentation(Policy policy, JSPolicyRepresentation representation) {
+ public JSPolicyRepresentation toRepresentation(Policy policy) {
+ JSPolicyRepresentation representation = new JSPolicyRepresentation();
representation.setCode(policy.getConfig().get("code"));
return representation;
}
diff --git a/authz/policy/common/src/main/java/org/keycloak/authorization/policy/provider/resource/ResourcePolicyProviderFactory.java b/authz/policy/common/src/main/java/org/keycloak/authorization/policy/provider/resource/ResourcePolicyProviderFactory.java
index 1de28f5..10e0ec3 100644
--- a/authz/policy/common/src/main/java/org/keycloak/authorization/policy/provider/resource/ResourcePolicyProviderFactory.java
+++ b/authz/policy/common/src/main/java/org/keycloak/authorization/policy/provider/resource/ResourcePolicyProviderFactory.java
@@ -40,7 +40,8 @@ public class ResourcePolicyProviderFactory implements PolicyProviderFactory<Reso
}
@Override
- public ResourcePermissionRepresentation toRepresentation(Policy policy, ResourcePermissionRepresentation representation) {
+ public ResourcePermissionRepresentation toRepresentation(Policy policy) {
+ ResourcePermissionRepresentation representation = new ResourcePermissionRepresentation();
representation.setResourceType(policy.getConfig().get("defaultResourceType"));
return representation;
}
diff --git a/authz/policy/common/src/main/java/org/keycloak/authorization/policy/provider/role/RolePolicyProviderFactory.java b/authz/policy/common/src/main/java/org/keycloak/authorization/policy/provider/role/RolePolicyProviderFactory.java
index 4769ee3..bfd3e96 100644
--- a/authz/policy/common/src/main/java/org/keycloak/authorization/policy/provider/role/RolePolicyProviderFactory.java
+++ b/authz/policy/common/src/main/java/org/keycloak/authorization/policy/provider/role/RolePolicyProviderFactory.java
@@ -52,7 +52,7 @@ import java.util.Set;
*/
public class RolePolicyProviderFactory implements PolicyProviderFactory<RolePolicyRepresentation> {
- private RolePolicyProvider provider = new RolePolicyProvider(policy -> toRepresentation(policy, new RolePolicyRepresentation()));
+ private RolePolicyProvider provider = new RolePolicyProvider(policy -> toRepresentation(policy));
@Override
public String getName() {
@@ -75,12 +75,15 @@ public class RolePolicyProviderFactory implements PolicyProviderFactory<RolePoli
}
@Override
- public RolePolicyRepresentation toRepresentation(Policy policy, RolePolicyRepresentation representation) {
+ public RolePolicyRepresentation toRepresentation(Policy policy) {
+ RolePolicyRepresentation representation = new RolePolicyRepresentation();
+
try {
representation.setRoles(new HashSet<>(Arrays.asList(JsonSerialization.readValue(policy.getConfig().get("roles"), RolePolicyRepresentation.RoleDefinition[].class))));
} catch (IOException cause) {
throw new RuntimeException("Failed to deserialize roles", cause);
}
+
return representation;
}
@@ -111,7 +114,7 @@ public class RolePolicyProviderFactory implements PolicyProviderFactory<RolePoli
@Override
public void onExport(Policy policy, PolicyRepresentation representation, AuthorizationProvider authorizationProvider) {
Map<String, String> config = new HashMap<>();
- Set<RolePolicyRepresentation.RoleDefinition> roles = toRepresentation(policy, new RolePolicyRepresentation()).getRoles();
+ Set<RolePolicyRepresentation.RoleDefinition> roles = toRepresentation(policy).getRoles();
for (RolePolicyRepresentation.RoleDefinition roleDefinition : roles) {
RoleModel role = authorizationProvider.getRealm().getRoleById(roleDefinition.getId());
diff --git a/authz/policy/common/src/main/java/org/keycloak/authorization/policy/provider/scope/ScopePolicyProviderFactory.java b/authz/policy/common/src/main/java/org/keycloak/authorization/policy/provider/scope/ScopePolicyProviderFactory.java
index e677a9e..70d4cce 100644
--- a/authz/policy/common/src/main/java/org/keycloak/authorization/policy/provider/scope/ScopePolicyProviderFactory.java
+++ b/authz/policy/common/src/main/java/org/keycloak/authorization/policy/provider/scope/ScopePolicyProviderFactory.java
@@ -42,8 +42,8 @@ public class ScopePolicyProviderFactory implements PolicyProviderFactory<ScopePe
}
@Override
- public ScopePermissionRepresentation toRepresentation(Policy policy, ScopePermissionRepresentation representation) {
- return representation;
+ public ScopePermissionRepresentation toRepresentation(Policy policy) {
+ return new ScopePermissionRepresentation();
}
@Override
diff --git a/authz/policy/common/src/main/java/org/keycloak/authorization/policy/provider/time/TimePolicyProviderFactory.java b/authz/policy/common/src/main/java/org/keycloak/authorization/policy/provider/time/TimePolicyProviderFactory.java
index fc69f3b..ffaf6ce 100644
--- a/authz/policy/common/src/main/java/org/keycloak/authorization/policy/provider/time/TimePolicyProviderFactory.java
+++ b/authz/policy/common/src/main/java/org/keycloak/authorization/policy/provider/time/TimePolicyProviderFactory.java
@@ -66,7 +66,8 @@ public class TimePolicyProviderFactory implements PolicyProviderFactory<TimePoli
}
@Override
- public TimePolicyRepresentation toRepresentation(Policy policy, TimePolicyRepresentation representation) {
+ public TimePolicyRepresentation toRepresentation(Policy policy) {
+ TimePolicyRepresentation representation = new TimePolicyRepresentation();
Map<String, String> config = policy.getConfig();
representation.setDayMonth(config.get("dayMonth"));
diff --git a/authz/policy/common/src/main/java/org/keycloak/authorization/policy/provider/user/UserPolicyProviderFactory.java b/authz/policy/common/src/main/java/org/keycloak/authorization/policy/provider/user/UserPolicyProviderFactory.java
index 28d4d0b..9ae349d 100644
--- a/authz/policy/common/src/main/java/org/keycloak/authorization/policy/provider/user/UserPolicyProviderFactory.java
+++ b/authz/policy/common/src/main/java/org/keycloak/authorization/policy/provider/user/UserPolicyProviderFactory.java
@@ -52,7 +52,7 @@ import org.keycloak.util.JsonSerialization;
*/
public class UserPolicyProviderFactory implements PolicyProviderFactory<UserPolicyRepresentation> {
- private UserPolicyProvider provider = new UserPolicyProvider((Function<Policy, UserPolicyRepresentation>) policy -> toRepresentation(policy, new UserPolicyRepresentation()));
+ private UserPolicyProvider provider = new UserPolicyProvider((Function<Policy, UserPolicyRepresentation>) policy -> toRepresentation(policy));
@Override
public String getName() {
@@ -75,12 +75,15 @@ public class UserPolicyProviderFactory implements PolicyProviderFactory<UserPoli
}
@Override
- public UserPolicyRepresentation toRepresentation(Policy policy, UserPolicyRepresentation representation) {
+ public UserPolicyRepresentation toRepresentation(Policy policy) {
+ UserPolicyRepresentation representation = new UserPolicyRepresentation();
+
try {
representation.setUsers(JsonSerialization.readValue(policy.getConfig().get("users"), Set.class));
} catch (IOException cause) {
throw new RuntimeException("Failed to deserialize roles", cause);
}
+
return representation;
}
@@ -110,7 +113,7 @@ public class UserPolicyProviderFactory implements PolicyProviderFactory<UserPoli
@Override
public void onExport(Policy policy, PolicyRepresentation representation, AuthorizationProvider authorizationProvider) {
- UserPolicyRepresentation userRep = toRepresentation(policy, new UserPolicyRepresentation());
+ UserPolicyRepresentation userRep = toRepresentation(policy);
Map<String, String> config = new HashMap<>();
try {
diff --git a/authz/policy/drools/src/main/java/org/keycloak/authorization/policy/provider/drools/DroolsPolicyProviderFactory.java b/authz/policy/drools/src/main/java/org/keycloak/authorization/policy/provider/drools/DroolsPolicyProviderFactory.java
index 0a71317..a879aad 100644
--- a/authz/policy/drools/src/main/java/org/keycloak/authorization/policy/provider/drools/DroolsPolicyProviderFactory.java
+++ b/authz/policy/drools/src/main/java/org/keycloak/authorization/policy/provider/drools/DroolsPolicyProviderFactory.java
@@ -51,6 +51,21 @@ public class DroolsPolicyProviderFactory implements PolicyProviderFactory<RulePo
}
@Override
+ public RulePolicyRepresentation toRepresentation(Policy policy) {
+ RulePolicyRepresentation representation = new RulePolicyRepresentation();
+
+ representation.setArtifactGroupId(policy.getConfig().get("mavenArtifactGroupId"));
+ representation.setArtifactId(policy.getConfig().get("mavenArtifactId"));
+ representation.setArtifactVersion(policy.getConfig().get("mavenArtifactVersion"));
+ representation.setScannerPeriod(policy.getConfig().get("scannerPeriod"));
+ representation.setScannerPeriodUnit(policy.getConfig().get("scannerPeriodUnit"));
+ representation.setSessionName(policy.getConfig().get("sessionName"));
+ representation.setModuleName(policy.getConfig().get("moduleName"));
+
+ return representation;
+ }
+
+ @Override
public PolicyProviderAdminService getAdminResource(ResourceServer resourceServer, AuthorizationProvider authorization) {
return new DroolsPolicyAdminResource(this);
}
@@ -83,18 +98,6 @@ public class DroolsPolicyProviderFactory implements PolicyProviderFactory<RulePo
}
@Override
- public RulePolicyRepresentation toRepresentation(Policy policy, RulePolicyRepresentation representation) {
- representation.setArtifactGroupId(policy.getConfig().get("mavenArtifactGroupId"));
- representation.setArtifactId(policy.getConfig().get("mavenArtifactId"));
- representation.setArtifactVersion(policy.getConfig().get("mavenArtifactVersion"));
- representation.setScannerPeriod(policy.getConfig().get("scannerPeriod"));
- representation.setScannerPeriodUnit(policy.getConfig().get("scannerPeriodUnit"));
- representation.setSessionName(policy.getConfig().get("sessionName"));
- representation.setModuleName(policy.getConfig().get("moduleName"));
- return representation;
- }
-
- @Override
public Class<RulePolicyRepresentation> getRepresentationType() {
return RulePolicyRepresentation.class;
}
diff --git a/server-spi-private/src/main/java/org/keycloak/authorization/policy/provider/PolicyProviderFactory.java b/server-spi-private/src/main/java/org/keycloak/authorization/policy/provider/PolicyProviderFactory.java
index a2a8689..d795d8a 100644
--- a/server-spi-private/src/main/java/org/keycloak/authorization/policy/provider/PolicyProviderFactory.java
+++ b/server-spi-private/src/main/java/org/keycloak/authorization/policy/provider/PolicyProviderFactory.java
@@ -36,13 +36,9 @@ public interface PolicyProviderFactory<R extends AbstractPolicyRepresentation> e
PolicyProvider create(AuthorizationProvider authorization);
- default R toRepresentation(Policy policy, R representation) {
- return representation;
- }
+ R toRepresentation(Policy policy);
- default Class<R> getRepresentationType() {
- return (Class<R>) PolicyRepresentation.class;
- }
+ Class<R> getRepresentationType();
default void onCreate(Policy policy, R representation, AuthorizationProvider authorization) {
@@ -61,7 +57,6 @@ public interface PolicyProviderFactory<R extends AbstractPolicyRepresentation> e
}
default void onExport(Policy policy, PolicyRepresentation representation, AuthorizationProvider authorizationProvider) {
- representation.setConfig(policy.getConfig());
}
default PolicyProviderAdminService getAdminResource(ResourceServer resourceServer, AuthorizationProvider authorization) {
diff --git a/server-spi-private/src/main/java/org/keycloak/models/utils/ModelToRepresentation.java b/server-spi-private/src/main/java/org/keycloak/models/utils/ModelToRepresentation.java
index 24f8ff9..8c82451 100755
--- a/server-spi-private/src/main/java/org/keycloak/models/utils/ModelToRepresentation.java
+++ b/server-spi-private/src/main/java/org/keycloak/models/utils/ModelToRepresentation.java
@@ -748,21 +748,28 @@ public class ModelToRepresentation {
return server;
}
- public static <R extends AbstractPolicyRepresentation> R toRepresentation(Policy policy, Class<R> representationType, AuthorizationProvider authorization) {
- return toRepresentation(policy, representationType, authorization, false);
+ public static <R extends AbstractPolicyRepresentation> R toRepresentation(Policy policy, AuthorizationProvider authorization) {
+ return toRepresentation(policy, authorization, false, true);
}
- public static <R extends AbstractPolicyRepresentation> R toRepresentation(Policy policy, Class<R> representationType, AuthorizationProvider authorization, boolean export) {
+ public static <R extends AbstractPolicyRepresentation> R toRepresentation(Policy policy, AuthorizationProvider authorization, boolean genericRepresentation, boolean export) {
+ PolicyProviderFactory providerFactory = authorization.getProviderFactory(policy.getType());
R representation;
- try {
- representation = representationType.newInstance();
- } catch (Exception cause) {
- throw new RuntimeException("Could not create policy [" + policy.getType() + "] representation", cause);
+ if (genericRepresentation || export) {
+ representation = (R) new PolicyRepresentation();
+ PolicyRepresentation.class.cast(representation).setConfig(policy.getConfig());
+ if (export) {
+ providerFactory.onExport(policy, PolicyRepresentation.class.cast(representation), authorization);
+ }
+ } else {
+ try {
+ representation = (R) providerFactory.toRepresentation(policy);
+ } catch (Exception cause) {
+ throw new RuntimeException("Could not create policy [" + policy.getType() + "] representation", cause);
+ }
}
- PolicyProviderFactory providerFactory = authorization.getProviderFactory(policy.getType());
-
representation.setId(policy.getId());
representation.setName(policy.getName());
representation.setDescription(policy.getDescription());
@@ -770,16 +777,6 @@ public class ModelToRepresentation {
representation.setDecisionStrategy(policy.getDecisionStrategy());
representation.setLogic(policy.getLogic());
- if (representation instanceof PolicyRepresentation) {
- if (providerFactory != null && export) {
- providerFactory.onExport(policy, PolicyRepresentation.class.cast(representation), authorization);
- } else {
- PolicyRepresentation.class.cast(representation).setConfig(policy.getConfig());
- }
- } else {
- representation = (R) providerFactory.toRepresentation(policy, representation);
- }
-
return representation;
}
diff --git a/services/src/main/java/org/keycloak/authorization/admin/PolicyResourceService.java b/services/src/main/java/org/keycloak/authorization/admin/PolicyResourceService.java
index b32899f..dd9acb3 100644
--- a/services/src/main/java/org/keycloak/authorization/admin/PolicyResourceService.java
+++ b/services/src/main/java/org/keycloak/authorization/admin/PolicyResourceService.java
@@ -129,7 +129,7 @@ public class PolicyResourceService {
}
protected AbstractPolicyRepresentation toRepresentation(Policy policy, AuthorizationProvider authorization) {
- return ModelToRepresentation.toRepresentation(policy, PolicyRepresentation.class, authorization);
+ return ModelToRepresentation.toRepresentation(policy, authorization, true, false);
}
@Path("/dependentPolicies")
diff --git a/services/src/main/java/org/keycloak/authorization/admin/PolicyService.java b/services/src/main/java/org/keycloak/authorization/admin/PolicyService.java
index 33e6299..e835ec6 100644
--- a/services/src/main/java/org/keycloak/authorization/admin/PolicyService.java
+++ b/services/src/main/java/org/keycloak/authorization/admin/PolicyService.java
@@ -235,7 +235,7 @@ public class PolicyService {
}
protected AbstractPolicyRepresentation toRepresentation(Policy model, AuthorizationProvider authorization) {
- return ModelToRepresentation.toRepresentation(model, PolicyRepresentation.class, authorization);
+ return ModelToRepresentation.toRepresentation(model, authorization, true, false);
}
protected List<Object> doSearch(Integer firstResult, Integer maxResult, Map<String, String[]> filters) {
diff --git a/services/src/main/java/org/keycloak/authorization/admin/PolicyTypeResourceService.java b/services/src/main/java/org/keycloak/authorization/admin/PolicyTypeResourceService.java
index 1297b6a..12d4fbe 100644
--- a/services/src/main/java/org/keycloak/authorization/admin/PolicyTypeResourceService.java
+++ b/services/src/main/java/org/keycloak/authorization/admin/PolicyTypeResourceService.java
@@ -22,6 +22,7 @@ import org.keycloak.authorization.AuthorizationProvider;
import org.keycloak.authorization.model.Policy;
import org.keycloak.authorization.model.ResourceServer;
import org.keycloak.authorization.policy.provider.PolicyProviderFactory;
+import org.keycloak.common.util.reflections.Types;
import org.keycloak.models.utils.ModelToRepresentation;
import org.keycloak.representations.idm.authorization.AbstractPolicyRepresentation;
import org.keycloak.services.resources.admin.permissions.AdminPermissionEvaluator;
@@ -61,7 +62,6 @@ public class PolicyTypeResourceService extends PolicyResourceService {
@Override
protected AbstractPolicyRepresentation toRepresentation(Policy policy, AuthorizationProvider authorization) {
- PolicyProviderFactory providerFactory = authorization.getProviderFactory(policy.getType());
- return ModelToRepresentation.toRepresentation(policy, providerFactory.getRepresentationType(), authorization);
+ return ModelToRepresentation.toRepresentation(policy, authorization);
}
}
diff --git a/services/src/main/java/org/keycloak/authorization/admin/PolicyTypeService.java b/services/src/main/java/org/keycloak/authorization/admin/PolicyTypeService.java
index 4b41e94..29c8683 100644
--- a/services/src/main/java/org/keycloak/authorization/admin/PolicyTypeService.java
+++ b/services/src/main/java/org/keycloak/authorization/admin/PolicyTypeService.java
@@ -88,8 +88,7 @@ public class PolicyTypeService extends PolicyService {
@Override
protected AbstractPolicyRepresentation toRepresentation(Policy policy, AuthorizationProvider authorization) {
- PolicyProviderFactory providerFactory = authorization.getProviderFactory(policy.getType());
- return ModelToRepresentation.toRepresentation(policy, providerFactory.getRepresentationType(), authorization);
+ return ModelToRepresentation.toRepresentation(policy, authorization);
}
@Override
diff --git a/services/src/main/java/org/keycloak/exportimport/util/ExportUtils.java b/services/src/main/java/org/keycloak/exportimport/util/ExportUtils.java
index 371c4da..c549fd6 100755
--- a/services/src/main/java/org/keycloak/exportimport/util/ExportUtils.java
+++ b/services/src/main/java/org/keycloak/exportimport/util/ExportUtils.java
@@ -359,7 +359,7 @@ public class ExportUtils {
private static PolicyRepresentation createPolicyRepresentation(AuthorizationProvider authorizationProvider, Policy policy) {
try {
- PolicyRepresentation rep = toRepresentation(policy, PolicyRepresentation.class, authorizationProvider, true);
+ PolicyRepresentation rep = toRepresentation(policy, authorizationProvider, true, true);
rep.setId(null);
diff --git a/testsuite/integration-arquillian/servers/auth-server/services/testsuite-providers/src/main/java/org/keycloak/testsuite/authorization/TestPolicyProviderFactory.java b/testsuite/integration-arquillian/servers/auth-server/services/testsuite-providers/src/main/java/org/keycloak/testsuite/authorization/TestPolicyProviderFactory.java
index 8e07ee2..4da1695 100644
--- a/testsuite/integration-arquillian/servers/auth-server/services/testsuite-providers/src/main/java/org/keycloak/testsuite/authorization/TestPolicyProviderFactory.java
+++ b/testsuite/integration-arquillian/servers/auth-server/services/testsuite-providers/src/main/java/org/keycloak/testsuite/authorization/TestPolicyProviderFactory.java
@@ -18,6 +18,7 @@ package org.keycloak.testsuite.authorization;
import org.keycloak.Config;
import org.keycloak.authorization.AuthorizationProvider;
+import org.keycloak.authorization.model.Policy;
import org.keycloak.authorization.model.ResourceServer;
import org.keycloak.authorization.policy.evaluation.Evaluation;
import org.keycloak.authorization.policy.provider.PolicyProvider;
@@ -25,6 +26,8 @@ import org.keycloak.authorization.policy.provider.PolicyProviderAdminService;
import org.keycloak.authorization.policy.provider.PolicyProviderFactory;
import org.keycloak.models.KeycloakSession;
import org.keycloak.models.KeycloakSessionFactory;
+import org.keycloak.representations.idm.authorization.AbstractPolicyRepresentation;
+import org.keycloak.representations.idm.authorization.PolicyRepresentation;
/**
* @author <a href="mailto:psilva@redhat.com">Pedro Igor</a>
@@ -47,6 +50,16 @@ public class TestPolicyProviderFactory implements PolicyProviderFactory {
}
@Override
+ public AbstractPolicyRepresentation toRepresentation(Policy policy) {
+ return new PolicyRepresentation();
+ }
+
+ @Override
+ public Class getRepresentationType() {
+ return PolicyRepresentation.class;
+ }
+
+ @Override
public PolicyProviderAdminService getAdminResource(ResourceServer resourceServer, AuthorizationProvider authorization) {
return null;
}