Class FilteredAdapter

java.lang.Object
org.casbin.jcasbin.persist.file_adapter.FilteredAdapter
All Implemented Interfaces:
Adapter, FilteredAdapter

public class FilteredAdapter extends 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
  • Field Details

    • adapter

      private Adapter adapter
    • isFiltered

      private boolean isFiltered
    • filepath

      private String filepath
  • Constructor Details

    • FilteredAdapter

      public FilteredAdapter(String filepath)
  • Method Details

    • loadFilteredPolicy

      public void loadFilteredPolicy(Model model, Object filter) throws CasbinAdapterException
      loadFilteredPolicy loads only policy rules that match the filter.
      Specified by:
      loadFilteredPolicy in interface FilteredAdapter
      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<String,Model> handler) throws CasbinAdapterException
      loadFilteredPolicyFile loads only policy rules that match the filter from file.
      Throws:
      CasbinAdapterException
    • filterLine

      private boolean filterLine(String line, FilteredAdapter.Filter filter)
      match the line.
    • filterWords

      private boolean filterWords(String[] line, 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 interface FilteredAdapter
      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 interface Adapter
      Parameters:
      model - the model.
    • savePolicy

      public void savePolicy(Model model)
      savePolicy saves all policy rules to the storage.
      Specified by:
      savePolicy in interface Adapter
      Parameters:
      model - the model.
    • addPolicy

      public void addPolicy(String sec, String ptype, List<String> rule)
      addPolicy adds a policy rule to the storage.
      Specified by:
      addPolicy in interface Adapter
      Parameters:
      sec - the section, "p" or "g".
      ptype - the policy type, "p", "p2", .. or "g", "g2", ..
      rule - the rule, like (sub, obj, act).
    • removePolicy

      public void removePolicy(String sec, String ptype, List<String> rule)
      removePolicy removes a policy rule from the storage.
      Specified by:
      removePolicy in interface Adapter
      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(String sec, String ptype, int fieldIndex, String... fieldValues)
      removeFilteredPolicy removes policy rules that match the filter from the storage.
      Specified by:
      removeFilteredPolicy in interface Adapter
      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.