Class FilteredAdapter
- java.lang.Object
-
- org.casbin.jcasbin.persist.file_adapter.FilteredAdapter
-
- All Implemented Interfaces:
Adapter
,FilteredAdapter
public class FilteredAdapter extends java.lang.Object implements FilteredAdapter
FilteredAdapter is the filtered file adapter for Casbin. It can load policy from a file or save policy to a file and supports loading of filtered policies.- Since:
- 2020/6/8
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
FilteredAdapter.Filter
the filter class.
-
Field Summary
Fields Modifier and Type Field Description private Adapter
adapter
private java.lang.String
filepath
private boolean
isFiltered
-
Constructor Summary
Constructors Constructor Description FilteredAdapter(java.lang.String filepath)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addPolicy(java.lang.String sec, java.lang.String ptype, java.util.List<java.lang.String> rule)
addPolicy adds a policy rule to the storage.private boolean
filterLine(java.lang.String line, FilteredAdapter.Filter filter)
match the line.private boolean
filterWords(java.lang.String[] line, java.lang.String[] filter)
match the words in the specific line.boolean
isFiltered()
IsFiltered returns true if the loaded policy has been filtered.void
loadFilteredPolicy(Model model, java.lang.Object filter)
loadFilteredPolicy loads only policy rules that match the filter.private void
loadFilteredPolicyFile(Model model, FilteredAdapter.Filter filter, Helper.loadPolicyLineHandler<java.lang.String,Model> handler)
loadFilteredPolicyFile loads only policy rules that match the filter from file.void
loadPolicy(Model model)
loadPolicy loads all policy rules from the storage.void
removeFilteredPolicy(java.lang.String sec, java.lang.String ptype, int fieldIndex, java.lang.String... fieldValues)
removeFilteredPolicy removes policy rules that match the filter from the storage.void
removePolicy(java.lang.String sec, java.lang.String ptype, java.util.List<java.lang.String> rule)
removePolicy removes a policy rule from the storage.void
savePolicy(Model model)
savePolicy saves all policy rules to the storage.
-
-
-
Field Detail
-
adapter
private Adapter adapter
-
isFiltered
private boolean isFiltered
-
filepath
private java.lang.String filepath
-
-
Method Detail
-
loadFilteredPolicy
public void loadFilteredPolicy(Model model, java.lang.Object filter) throws CasbinAdapterException
loadFilteredPolicy loads only policy rules that match the filter.- Specified by:
loadFilteredPolicy
in interfaceFilteredAdapter
- Parameters:
model
- the model.filter
- the filter used to specify which type of policy should be loaded.- Throws:
CasbinAdapterException
- if the file path or the type of the filter is incorrect.
-
loadFilteredPolicyFile
private void loadFilteredPolicyFile(Model model, FilteredAdapter.Filter filter, Helper.loadPolicyLineHandler<java.lang.String,Model> handler) throws CasbinAdapterException
loadFilteredPolicyFile loads only policy rules that match the filter from file.- Throws:
CasbinAdapterException
-
filterLine
private boolean filterLine(java.lang.String line, FilteredAdapter.Filter filter)
match the line.
-
filterWords
private boolean filterWords(java.lang.String[] line, java.lang.String[] filter)
match the words in the specific line.
-
isFiltered
public boolean isFiltered()
Description copied from interface:FilteredAdapter
IsFiltered returns true if the loaded policy has been filtered.- Specified by:
isFiltered
in interfaceFilteredAdapter
- Returns:
- true if have any filter roles.
-
loadPolicy
public void loadPolicy(Model model)
loadPolicy loads all policy rules from the storage.- Specified by:
loadPolicy
in interfaceAdapter
- Parameters:
model
- the model.
-
savePolicy
public void savePolicy(Model model)
savePolicy saves all policy rules to the storage.- Specified by:
savePolicy
in interfaceAdapter
- Parameters:
model
- the model.
-
addPolicy
public void addPolicy(java.lang.String sec, java.lang.String ptype, java.util.List<java.lang.String> rule)
addPolicy adds a policy rule to the storage.
-
removePolicy
public void removePolicy(java.lang.String sec, java.lang.String ptype, java.util.List<java.lang.String> rule)
removePolicy removes a policy rule from the storage.- Specified by:
removePolicy
in interfaceAdapter
- Parameters:
sec
- the section, "p" or "g".ptype
- the policy type, "p", "p2", .. or "g", "g2", ..rule
- the rule, like (sub, obj, act).
-
removeFilteredPolicy
public void removeFilteredPolicy(java.lang.String sec, java.lang.String ptype, int fieldIndex, java.lang.String... fieldValues)
removeFilteredPolicy removes policy rules that match the filter from the storage.- Specified by:
removeFilteredPolicy
in interfaceAdapter
- Parameters:
sec
- the section, "p" or "g".ptype
- the policy type, "p", "p2", .. or "g", "g2", ..fieldIndex
- the policy rule's start index to be matched.fieldValues
- the field values to be matched, value "" means not to match this field.
-
-