47 StoreFactory storeFactory = authorizationProvider.getStoreFactory();
48 PolicyStore policyStore = storeFactory.getPolicyStore();
49 ResourceStore resourceStore = storeFactory.getResourceStore();
51 ResourceServer resourceServer = permission.getResourceServer();
52 PolicyEnforcementMode enforcementMode = resourceServer.getPolicyEnforcementMode();
54 if (PolicyEnforcementMode.DISABLED.equals(enforcementMode)) {
55 DefaultEvaluation evaluation =
new DefaultEvaluation(permission, executionContext, decision, authorizationProvider);
59 decision.onComplete(permission);
63 AtomicBoolean verified =
new AtomicBoolean();
64 Consumer<Policy> policyConsumer =
createPolicyEvaluator(permission, authorizationProvider, executionContext, decision, verified, decisionCache);
65 Resource resource = permission.getResource();
67 if (resource != null) {
68 policyStore.findByResource(resource.getId(), resourceServer.getId(), policyConsumer);
70 if (resource.getType() != null) {
71 policyStore.findByResourceType(resource.getType(), resourceServer.getId(), policyConsumer);
73 if (!resource.getOwner().equals(resourceServer.getId())) {
74 for (Resource typedResource : resourceStore.findByType(resource.getType(), resourceServer.getId())) {
75 policyStore.findByResource(typedResource.getId(), resourceServer.getId(), policyConsumer);
81 List<Scope> scopes = permission.getScopes();
83 if (!scopes.isEmpty()) {
84 policyStore.findByScopeIds(scopes.stream().map(
Scope::getId).collect(Collectors.toList()), null, resourceServer.getId(), policyConsumer);
88 decision.onComplete(permission);
92 if (PolicyEnforcementMode.PERMISSIVE.equals(enforcementMode)) {
93 DefaultEvaluation evaluation =
new DefaultEvaluation(permission, executionContext, decision, authorizationProvider);
95 decision.onComplete(permission);
Consumer< Policy > createPolicyEvaluator(ResourcePermission permission, AuthorizationProvider authorizationProvider, EvaluationContext executionContext, Decision decision, AtomicBoolean verified, Map< Policy, Map< Object, Decision.Effect >> decisionCache)
Definition: DefaultPolicyEvaluator.java:99