public static SortedKeyValueIterator<Key,Value> wrap(SortedKeyValueIterator<Key,Value> source, Authorizations authorizations, byte[] defaultVisibility) { if (authorizations.isEmpty() && defaultVisibility.length == 0) { return new EmptyAuthsVisibilityFilter(source); } else { return new VisibilityFilter(source, authorizations, defaultVisibility); } } }
public static SortedKeyValueIterator<Key,Value> setupSystemScanIterators( SortedKeyValueIterator<Key,Value> source, Set<Column> cols, Authorizations auths, byte[] defaultVisibility, AccumuloConfiguration conf) throws IOException { SortedKeyValueIterator<Key,Value> delIter = DeletingIterator.wrap(source, false, DeletingIterator.getBehavior(conf)); ColumnFamilySkippingIterator cfsi = new ColumnFamilySkippingIterator(delIter); SortedKeyValueIterator<Key,Value> colFilter = ColumnQualifierFilter.wrap(cfsi, cols); return VisibilityFilter.wrap(colFilter, auths, defaultVisibility); } }
@Override public SortedKeyValueIterator<Key,Value> deepCopy(IteratorEnvironment env) { return new VisibilityFilter(getSource().deepCopy(env), authorizations, defaultVisibility.toArray()); }
private SortedKeyValueIterator<Key,Value> createSystemIter(Range r, List<SortedKeyValueIterator<Key,Value>> readers, HashSet<Column> columns) throws IOException { MultiIterator multiIterator = new MultiIterator(readers, false); DeletingIterator delIter = new DeletingIterator(multiIterator, false); ColumnFamilySkippingIterator cfsi = new ColumnFamilySkippingIterator(delIter); ColumnQualifierFilter colFilter = new ColumnQualifierFilter(cfsi, columns); VisibilityFilter visFilter = new VisibilityFilter(colFilter, Constants.NO_AUTHS, new byte[0]); visFilter.seek(r, LocalityGroupUtil.EMPTY_CF_SET, false); VersioningIterator vi = new VersioningIterator(); Map<String,String> opts = new HashMap<String,String>(); opts.put("maxVersions", "1"); vi.init(visFilter, opts, null); return vi; }
final VisibilityFilter visibilityFilter = new VisibilityFilter(mergedIterator, authorizations, new byte[]{}); final IteratorSetting visibilityIteratorSetting = new IteratorSetting(1, "auth", VisibilityFilter.class); visibilityFilter.init(mergedIterator, visibilityIteratorSetting.getOptions(), null); iteratorAfterIterators = visibilityFilter; LOGGER.info("Set authorizations to {}", authorizations);
private VisibilityFilter(SortedKeyValueIterator<Key,Value> iterator, Authorizations authorizations, byte[] defaultVisibility) { setSource(iterator); this.ve = new VisibilityEvaluator(authorizations); this.authorizations = authorizations; this.defaultVisibility = new ArrayByteSequence(defaultVisibility); this.cache = new LRUMap(1000); }
public static SortedKeyValueIterator<Key,Value> setupSystemScanIterators( SortedKeyValueIterator<Key,Value> source, Set<Column> cols, Authorizations auths, byte[] defaultVisibility) throws IOException { DeletingIterator delIter = new DeletingIterator(source, false); ColumnFamilySkippingIterator cfsi = new ColumnFamilySkippingIterator(delIter); ColumnQualifierFilter colFilter = new ColumnQualifierFilter(cfsi, cols); return VisibilityFilter.wrap(colFilter, auths, defaultVisibility); } }
@Override public synchronized SortedKeyValueIterator<Key,Value> deepCopy(IteratorEnvironment env) { return new VisibilityFilter(source.deepCopy(env), authorizations, defaultVisibility.toArray()); }
private static SortedKeyValueIterator<Key,Value> createScanIterator(KeyExtent ke, Collection<SortedKeyValueIterator<Key,Value>> mapfiles, Authorizations authorizations, byte[] defaultLabels, HashSet<Column> columnSet, List<IterInfo> ssiList, Map<String,Map<String,String>> ssio, boolean useTableIterators, TableConfiguration conf) throws IOException { SortedMapIterator smi = new SortedMapIterator(new TreeMap<Key,Value>()); List<SortedKeyValueIterator<Key,Value>> iters = new ArrayList<>(mapfiles.size() + 1); iters.addAll(mapfiles); iters.add(smi); MultiIterator multiIter = new MultiIterator(iters, ke); DeletingIterator delIter = new DeletingIterator(multiIter, false); ColumnFamilySkippingIterator cfsi = new ColumnFamilySkippingIterator(delIter); SortedKeyValueIterator<Key,Value> colFilter = ColumnQualifierFilter.wrap(cfsi, columnSet); SortedKeyValueIterator<Key,Value> visFilter = VisibilityFilter.wrap(colFilter, authorizations, defaultLabels); if (useTableIterators) return IteratorUtil.loadIterators(IteratorScope.scan, visFilter, ke, conf, ssiList, ssio, null); return visFilter; }
public static SortedKeyValueIterator<Key,Value> wrap(SortedKeyValueIterator<Key,Value> source, Authorizations authorizations, byte[] defaultVisibility) { if (authorizations.isEmpty() && defaultVisibility.length == 0) { return new EmptyAuthsVisibilityFilter(source); } else { return new VisibilityFilter(source, authorizations, defaultVisibility); } } }
defaultSecurityLabel = cv.getExpression(); SortedKeyValueIterator<Key,Value> visFilter = VisibilityFilter.wrap(topIter, auths, defaultSecurityLabel);
VisibilityFilter visFilter = new VisibilityFilter(colFilter, options.authorizations, options.defaultLabels);
public SortedKeyValueIterator<Key,Value> createFilter(SortedKeyValueIterator<Key,Value> inner) throws IOException { byte[] defaultLabels = {}; inner = new ColumnFamilySkippingIterator(new DeletingIterator(inner, false)); SortedKeyValueIterator<Key,Value> cqf = ColumnQualifierFilter.wrap(inner, new HashSet<>(fetchedColumns)); SortedKeyValueIterator<Key,Value> vf = VisibilityFilter.wrap(cqf, auths, defaultLabels); AccumuloConfiguration conf = new MockConfiguration(table.settings); MockIteratorEnvironment iterEnv = new MockIteratorEnvironment(auths); SortedKeyValueIterator<Key,Value> result = iterEnv .getTopLevelIterator(IteratorUtil.loadIterators(IteratorScope.scan, vf, null, conf, serverSideIteratorList, serverSideIteratorOptions, iterEnv, false)); return result; }