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 String
actions
The actions being allowed on the specified filesystem pathString
path
The 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 SelectFilter
copy()
Create a copy of this SelectFilter.Index
filter(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).void
init(TableDefinition tableDefinition)
Does nothing.boolean
isAutomatedFilter()
The database system may automatically generate a filter, for example, when applying an ACL to a table.boolean
isSimpleFilter()
void
setAutomatedFilter(boolean value)
Does nothing.void
setRecomputeListener(SelectFilter.RecomputeListener listener)
Do nothing.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods 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:
getColumns
in 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:
getColumnArrays
in interfaceSelectFilter
- Returns:
- an empty List.
-
init
Does nothing.- Specified by:
init
in 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:
filter
in 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.PreviousFilteringNotSupported
exception 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:
isSimpleFilter
in interfaceSelectFilter
- Returns:
- false. This is not run within the database engine.
-
setRecomputeListener
Do nothing.- Specified by:
setRecomputeListener
in 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:
isAutomatedFilter
in 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:
setAutomatedFilter
in interfaceSelectFilter
- Parameters:
value
- Ignored.
-
copy
Create a copy of this SelectFilter.- Specified by:
copy
in interfaceSelectFilter
- Returns:
- an independent copy of this SelectFilter.
-