57 ResourcePermission permission = result.getPermission();
58 Resource resource = permission.getResource();
59 List<Scope> requestedScopes = permission.getScopes();
61 if (Effect.PERMIT.equals(result.getEffect())) {
64 Set<Scope> grantedScopes =
new HashSet<>();
65 Set<Scope> deniedScopes =
new HashSet<>();
66 List<Result.PolicyResult> userManagedPermissions =
new ArrayList<>();
67 boolean resourceGranted =
false;
68 boolean anyDeny =
false;
70 for (Result.PolicyResult policyResult : result.getResults()) {
71 Policy policy = policyResult.getPolicy();
72 Set<Scope> policyScopes = policy.getScopes();
76 for (Scope scope : requestedScopes) {
77 if (policyScopes.contains(scope)) {
78 grantedScopes.add(scope);
82 grantedScopes.addAll(requestedScopes);
83 }
else if (resource != null && resource.isOwnerManagedAccess() &&
"uma".equals(policy.getType())) {
84 userManagedPermissions.add(policyResult);
86 if (!resourceGranted) {
87 resourceGranted = policy.getResources().contains(resource);
91 if (!resourceGranted) {
92 deniedScopes.addAll(requestedScopes);
95 deniedScopes.addAll(policyScopes);
104 grantedScopes.removeAll(deniedScopes);
106 if (userManagedPermissions.isEmpty()) {
107 if (!resourceGranted && (grantedScopes.isEmpty() && !requestedScopes.isEmpty())) {
111 for (Result.PolicyResult userManagedPermission : userManagedPermissions) {
112 grantedScopes.addAll(userManagedPermission.getPolicy().getScopes());
115 if (grantedScopes.isEmpty() && !resource.getScopes().isEmpty()) {
122 if (anyDeny && grantedScopes.isEmpty()) {
static boolean isScopePermission(Policy policy)
Definition: DecisionPermissionCollector.java:185
boolean isGranted(Result.PolicyResult policyResult)
Definition: AbstractDecisionCollector.java:98
final ResourceServer resourceServer
Definition: DecisionPermissionCollector.java:45
final List< Permission > permissions
Definition: DecisionPermissionCollector.java:47
final AuthorizationProvider authorizationProvider
Definition: DecisionPermissionCollector.java:44
final AuthorizationRequest request
Definition: DecisionPermissionCollector.java:46
static boolean isResourcePermission(Policy policy)
Definition: DecisionPermissionCollector.java:181
void grantPermission(AuthorizationProvider authorizationProvider, List< Permission > permissions, ResourcePermission permission, Collection< Scope > grantedScopes, ResourceServer resourceServer, AuthorizationRequest request, Result result)
Definition: DecisionPermissionCollector.java:139