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 classFilteredAdapter.Filterthe filter class.
-
Field Summary
Fields Modifier and Type Field Description private Adapteradapterprivate java.lang.Stringfilepathprivate booleanisFiltered
-
Constructor Summary
Constructors Constructor Description FilteredAdapter(java.lang.String filepath)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddPolicy(java.lang.String sec, java.lang.String ptype, java.util.List<java.lang.String> rule)addPolicy adds a policy rule to the storage.private booleanfilterLine(java.lang.String line, FilteredAdapter.Filter filter)match the line.private booleanfilterWords(java.lang.String[] line, java.lang.String[] filter)match the words in the specific line.booleanisFiltered()IsFiltered returns true if the loaded policy has been filtered.voidloadFilteredPolicy(Model model, java.lang.Object filter)loadFilteredPolicy loads only policy rules that match the filter.private voidloadFilteredPolicyFile(Model model, FilteredAdapter.Filter filter, Helper.loadPolicyLineHandler<java.lang.String,Model> handler)loadFilteredPolicyFile loads only policy rules that match the filter from file.voidloadPolicy(Model model)loadPolicy loads all policy rules from the storage.voidremoveFilteredPolicy(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.voidremovePolicy(java.lang.String sec, java.lang.String ptype, java.util.List<java.lang.String> rule)removePolicy removes a policy rule from the storage.voidsavePolicy(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:
loadFilteredPolicyin 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:FilteredAdapterIsFiltered returns true if the loaded policy has been filtered.- Specified by:
isFilteredin interfaceFilteredAdapter- Returns:
- true if have any filter roles.
-
loadPolicy
public void loadPolicy(Model model)
loadPolicy loads all policy rules from the storage.- Specified by:
loadPolicyin interfaceAdapter- Parameters:
model- the model.
-
savePolicy
public void savePolicy(Model model)
savePolicy saves all policy rules to the storage.- Specified by:
savePolicyin 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:
removePolicyin 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:
removeFilteredPolicyin 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.
-
-