@Override public JsonPointer getResourcePath() { return resourceKey.getResourcePath(); }
@Override public JsonPointer getPath() { return resourceKey.getResourcePath(); }
@Override public JsonPointer getResourcePath() { return resourceKey.getResourcePath(); }
private static JsonPointer createAbsoluteResourcePointer(final ResourceKey resourceKey) { return JsonFactory.newPointer(resourceKey.getResourceType()).append(resourceKey.getResourcePath()); }
/** * Converts a {@link ResourceKey} to an iterator of JSON keys by prepending the resource type to the resource path. * * @param resourceKey The resource key to convert. * @return The converted JSON key iterator. * @throws NullPointerException if {@code resourceKey} is {@code null}. */ static Iterator<JsonKey> getJsonKeyIterator(final ResourceKey resourceKey) { checkNotNull(resourceKey, "resource key to convert"); return JsonFactory.newPointer(resourceKey.getResourceType()).append(resourceKey.getResourcePath()).iterator(); }
@Override public JsonObject buildJsonView( final ResourceKey resourceKey, final Iterable<JsonField> jsonFields, final AuthorizationContext authorizationContext, final Permissions permissions) { checkResourceKey(resourceKey); checkNotNull(jsonFields, "JSON fields"); checkPermissions(permissions); final Collection<String> authorizationSubjectIds = getAuthorizationSubjectIds(authorizationContext); final EffectedResources effectedResources = getGrantedAndRevokedSubResource( JsonFactory.newPointer(ROOT_RESOURCE), resourceKey.getResourceType(), authorizationSubjectIds, permissions); if (jsonFields instanceof JsonObject && ((JsonObject) jsonFields).isNull()) { return JsonFactory.nullObject(); } final List<PointerAndValue> flatPointers = new ArrayList<>(); jsonFields.forEach(jsonField -> collectFlatPointers(jsonField.getKey().asPointer(), jsonField, flatPointers)); final Set<JsonPointer> grantedResources = extractJsonPointers(effectedResources.getGrantedResources()); final Set<JsonPointer> revokedResources = extractJsonPointers(effectedResources.getRevokedResources()); final JsonPointer resourcePath = resourceKey.getResourcePath(); final List<PointerAndValue> prefixedPointers = flatPointers.stream() .map(pv -> new PointerAndValue(resourcePath.append(pv.pointer), pv.value)) .collect(Collectors.toList()); return filterEntries(prefixedPointers, grantedResources, revokedResources, resourcePath); }