public static boolean canRead(String visibility, String[] authorizations) { VisibilityEvaluator visibilityEvaluator = new VisibilityEvaluator(new Authorizations(authorizations)); ColumnVisibility columnVisibility = new ColumnVisibility(visibility); try { return visibilityEvaluator.evaluate(columnVisibility); } catch (VisibilityParseException ex) { throw new RuntimeException("could not evaluate visibility " + visibility, ex); } } }
public static boolean canRead(String visibility, String[] authorizations) { if (visibility == null) { throw new RuntimeException("visibility cannot be null"); } VisibilityEvaluator visibilityEvaluator = new VisibilityEvaluator(new Authorizations(authorizations)); ColumnVisibility columnVisibility = new ColumnVisibility(visibility); try { return visibilityEvaluator.evaluate(columnVisibility); } catch (VisibilityParseException ex) { throw new RuntimeException("could not evaluate visibility " + visibility, ex); } } }
public static boolean canRead(String visibility, String[] authorizations) { if (visibility == null) { throw new RuntimeException("visibility cannot be null"); } VisibilityEvaluator visibilityEvaluator = new VisibilityEvaluator(new Authorizations(authorizations)); ColumnVisibility columnVisibility = new ColumnVisibility(visibility); try { return visibilityEvaluator.evaluate(columnVisibility); } catch (VisibilityParseException ex) { throw new RuntimeException("could not evaluate visibility " + visibility, ex); } } }
public ImmutableSet<String> getTableNames(Authorizations authorizations) { VisibilityEvaluator visibilityEvaluator = new VisibilityEvaluator(new org.vertexium.security.Authorizations(authorizations.getAuthorizations())); return tables.entrySet().stream() .filter(entry -> entry.getValue().canRead(visibilityEvaluator)) .map(Map.Entry::getKey) .collect(StreamUtils.toImmutableSet()); }
public Iterable<ExtendedDataRow> getTable(String tableName, Authorizations authorizations) { VisibilityEvaluator visibilityEvaluator = new VisibilityEvaluator(new org.vertexium.security.Authorizations(authorizations.getAuthorizations())); Table table = tables.get(tableName); if (table == null) { throw new VertexiumException("Invalid table '" + tableName + "'"); } Iterable<ExtendedDataRow> rows = table.getRows(visibilityEvaluator); if (!rows.iterator().hasNext()) { throw new VertexiumException("Invalid table '" + tableName + "'"); } return rows; }
/** * Creates a new {@link Authorizations} object with escaped forms of the * authorizations in the given object. * * @param auths original authorizations * @return authorizations object with escaped authorization strings * @see #escape(byte[], boolean) */ static Authorizations escape(Authorizations auths) { ArrayList<byte[]> retAuths = new ArrayList<byte[]>(auths.getAuthorizations().size()); for (byte[] auth : auths.getAuthorizations()) retAuths.add(escape(auth, false)); return new Authorizations(retAuths); }
/** * Creates a new {@link Authorizations} object with escaped forms of the * authorizations in the given object. * * @param auths original authorizations * @return authorizations object with escaped authorization strings * @see #escape(byte[], boolean) */ static Authorizations escape(Authorizations auths) { ArrayList<byte[]> retAuths = new ArrayList<byte[]>(auths.getAuthorizations().size()); for (byte[] auth : auths.getAuthorizations()) retAuths.add(escape(auth, false)); return new Authorizations(retAuths); }
@Override public boolean canRead(Visibility visibility) { Preconditions.checkNotNull(visibility, "visibility is required"); // this is just a shortcut so that we don't need to construct evaluators and visibility objects to check for an empty string. if (visibility.getVisibilityString().length() == 0) { return true; } VisibilityEvaluator visibilityEvaluator = new VisibilityEvaluator(new Authorizations(this.getAuthorizations())); ColumnVisibility columnVisibility = new ColumnVisibility(visibility.getVisibilityString()); try { return visibilityEvaluator.evaluate(columnVisibility); } catch (VisibilityParseException e) { throw new VertexiumException("could not evaluate visibility " + visibility.getVisibilityString(), e); } }
@Override public Iterable<? extends ExtendedDataRow> getTable(ElementType elementType, String elementId, String tableName, Authorizations authorizations) { VisibilityEvaluator visibilityEvaluator = new VisibilityEvaluator(new org.vertexium.security.Authorizations(authorizations.getAuthorizations()));