Package com.illumon.iris.security
Class FileACLFilter
java.lang.Object
com.illumon.iris.security.FileACLFilter
- All Implemented Interfaces:
SelectFilter
public class FileACLFilter extends Object implements SelectFilter
A filter for file paths rather than table rows. Does not authorize access to any rows of any table.
Instead, the specified user or group will be granted the specified access to a designated filesystem path.
Note that existing filesystem permissions are still in effect as well; the query worker's identity must be able
to access the specified path as well.
-
Nested Class Summary
Nested classes/interfaces inherited from interface com.illumon.iris.db.v2.select.SelectFilter
SelectFilter.PreviousFilteringNotSupported, SelectFilter.RecomputeListener -
Field Summary
Fields Modifier and Type Field Description StringactionsThe actions being allowed on the specified filesystem pathStringpathThe filesystem path being granted access toFields inherited from interface com.illumon.iris.db.v2.select.SelectFilter
ZERO_LENGTH_SELECT_FILTER_ARRAY -
Method Summary
Modifier and Type Method Description SelectFiltercopy()Create a copy of this SelectFilter.Indexfilter(Index selection, Index fullSet, Table table, boolean usePrev)Filter selection to only matching rows.List<String>getColumnArrays()Get the array columns required by this select filter (which is none, since this isn't actually filtering anything in tables).List<String>getColumns()Get the columns required by this select filter (which is none, since this isn't actually filtering anything in tables).voidinit(TableDefinition tableDefinition)Does nothing.booleanisAutomatedFilter()The database system may automatically generate a filter, for example, when applying an ACL to a table.booleanisSimpleFilter()voidsetAutomatedFilter(boolean value)Does nothing.voidsetRecomputeListener(SelectFilter.RecomputeListener listener)Do nothing.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface com.illumon.iris.db.v2.select.SelectFilter
canMemoize, isRefreshing, permitParallelization
-
Field Details
-
Method Details
-
getColumns
Get the columns required by this select filter (which is none, since this isn't actually filtering anything in tables).- Specified by:
getColumnsin interfaceSelectFilter- Returns:
- an empty List.
-
getColumnArrays
Get the array columns required by this select filter (which is none, since this isn't actually filtering anything in tables).- Specified by:
getColumnArraysin interfaceSelectFilter- Returns:
- an empty List.
-
init
Does nothing.- Specified by:
initin interfaceSelectFilter- Parameters:
tableDefinition- the definition of the table that will be filtered
-
filter
Filter selection to only matching rows. Since this filter isn't limiting rows, but is controlling filesystem access, the filter returns all rows that were provided to it.- Specified by:
filterin interfaceSelectFilter- Parameters:
selection- the indices that should be filtered. The selection must be a subset of fullSet; and may not include rows that the engine determines need not be evaluated to produce the result.fullSet- the complete Index of the table to filter. The fullSet is used for calculating variables like "i" or "ii".table- the table to filterusePrev- true if previous values should be used. Implementing previous value filtering is optional, and aSelectFilter.PreviousFilteringNotSupportedexception may be thrown. If a PreviousFiltering exception is thrown, then the caller must acquire the LiveTableMonitor lock.- Returns:
- All the rows initially passed in; this filter does not limit table rows.
-
isSimpleFilter
public boolean isSimpleFilter()- Specified by:
isSimpleFilterin interfaceSelectFilter- Returns:
- false. This is not run within the database engine.
-
setRecomputeListener
Do nothing.- Specified by:
setRecomputeListenerin interfaceSelectFilter- Parameters:
listener- Ignored.
-
isAutomatedFilter
public boolean isAutomatedFilter()The database system may automatically generate a filter, for example, when applying an ACL to a table. There are certain operations which may bypass these filters.This function returns whether or not this filter is automated.
- Specified by:
isAutomatedFilterin interfaceSelectFilter- Returns:
- true, because it is not a problem to bypass this filter during normal table operation.
-
setAutomatedFilter
public void setAutomatedFilter(boolean value)Does nothing. This filter is automatically considered 'automated.'- Specified by:
setAutomatedFilterin interfaceSelectFilter- Parameters:
value- Ignored.
-
copy
Create a copy of this SelectFilter.- Specified by:
copyin interfaceSelectFilter- Returns:
- an independent copy of this SelectFilter.
-