281 return new PolicyStore() {
286 public Policy create(AbstractPolicyRepresentation representation, ResourceServer resourceServer) {
287 Set<String> resources = representation.getResources();
289 if (resources != null) {
290 representation.setResources(resources.stream().map(
id -> {
293 if (resource == null) {
297 if (resource == null) {
298 throw new RuntimeException(
"Resource [" +
id +
"] does not exist or is not owned by the resource server.");
301 return resource.getId();
302 }).collect(Collectors.toSet()));
305 Set<String> scopes = representation.getScopes();
307 if (scopes != null) {
308 representation.setScopes(scopes.stream().map(
id -> {
316 throw new RuntimeException(
"Scope [" +
id +
"] does not exist");
319 return scope.getId();
320 }).collect(Collectors.toSet()));
324 Set<String> policies = representation.getPolicies();
326 if (policies != null) {
327 representation.setPolicies(policies.stream().map(
id -> {
330 if (policy == null) {
334 if (policy == null) {
335 throw new RuntimeException(
"Policy [" +
id +
"] does not exist");
338 return policy.getId();
339 }).collect(Collectors.toSet()));
342 return RepresentationToModel.toModel(representation,
AuthorizationProvider.this, policyStore.create(representation, resourceServer));
346 public void delete(String id) {
347 Policy policy = findById(
id, null);
349 if (policy != null) {
350 ResourceServer resourceServer = policy.getResourceServer();
352 findDependentPolicies(policy.getId(), resourceServer.getId()).forEach(dependentPolicy -> {
353 dependentPolicy.removeAssociatedPolicy(policy);
354 if (dependentPolicy.getAssociatedPolicies().isEmpty()) {
355 delete(dependentPolicy.getId());
359 policyStore.delete(
id);
364 public Policy findById(String
id, String resourceServerId) {
365 return policyStore.findById(
id, resourceServerId);
369 public Policy findByName(String name, String resourceServerId) {
370 return policyStore.findByName(name, resourceServerId);
374 public List<Policy> findByResourceServer(String resourceServerId) {
375 return policyStore.findByResourceServer(resourceServerId);
379 public List<Policy> findByResourceServer(Map<String, String[]> attributes, String resourceServerId,
int firstResult,
int maxResult) {
380 return policyStore.findByResourceServer(attributes, resourceServerId, firstResult, maxResult);
384 public List<Policy> findByResource(String resourceId, String resourceServerId) {
385 return policyStore.findByResource(resourceId, resourceServerId);
389 public void findByResource(String resourceId, String resourceServerId, Consumer<Policy> consumer) {
390 policyStore.findByResource(resourceId, resourceServerId, consumer);
394 public List<Policy> findByResourceType(String resourceType, String resourceServerId) {
395 return policyStore.findByResourceType(resourceType, resourceServerId);
399 public List<Policy> findByScopeIds(List<String> scopeIds, String resourceServerId) {
400 return policyStore.findByScopeIds(scopeIds, resourceServerId);
404 public List<Policy> findByScopeIds(List<String> scopeIds, String resourceId, String resourceServerId) {
405 return policyStore.findByScopeIds(scopeIds, resourceId, resourceServerId);
409 public void findByScopeIds(List<String> scopeIds, String resourceId, String resourceServerId, Consumer<Policy> consumer) {
410 policyStore.findByScopeIds(scopeIds, resourceId, resourceServerId, consumer);
414 public List<Policy> findByType(String type, String resourceServerId) {
415 return policyStore.findByType(type, resourceServerId);
419 public List<Policy> findDependentPolicies(String
id, String resourceServerId) {
420 return policyStore.findDependentPolicies(
id, resourceServerId);
424 public void findByResourceType(String type, String
id, Consumer<Policy> policyConsumer) {
425 policyStore.findByResourceType(type,
id, policyConsumer);
Policy findByName(String name, String resourceServerId)
Scope findByName(String name, String resourceServerId)
ScopeStore getScopeStore()
Resource findByName(String name, String resourceServerId)
PolicyStore getPolicyStore()
Resource findById(String id, String resourceServerId)
Scope findById(String id, String resourceServerId)
Policy findById(String id, String resourceServerId)
ResourceStore getResourceStore()
AuthorizationProvider(KeycloakSession session, RealmModel realm, Map< String, PolicyProviderFactory > policyProviderFactories, PolicyEvaluator policyEvaluator)
Definition: AuthorizationProvider.java:85
StoreFactory storeFactory
Definition: AuthorizationProvider.java:79