Class DefaultAclManager

java.lang.Object
org.apache.wiki.auth.acl.DefaultAclManager
All Implemented Interfaces:
Initializable, AclManager

public class DefaultAclManager
extends Object
implements AclManager
Default implementation that parses Acls from wiki page markup.
Since:
2.3
  • Field Details

    • ACL_PATTERN

      public static final Pattern ACL_PATTERN
      Identifies ACL strings in wiki text; the first group is the action (view, edit) and the second is the list of Principals separated by commas. The overall match is the ACL string from [{ to }].
  • Constructor Details

  • Method Details

    • initialize

      public void initialize​(Engine engine, Properties props)

      Initializes this Engine component. Note that the engine is not fully initialized at this point, so don't do anything fancy here - use lazy init, if you have to.
       

      Specified by:
      initialize in interface Initializable
      Parameters:
      engine - Engine performing the initialization.
      props - Properties for setup.
    • parseAcl

      public Acl parseAcl​(Page page, String ruleLine) throws WikiSecurityException
      A helper method for parsing textual AccessControlLists. The line is in form "(ALLOW) , , ". This method was moved from Authorizer.
      Specified by:
      parseAcl in interface AclManager
      Parameters:
      page - The current wiki page. If the page already has an ACL, it will be used as a basis for this ACL in order to avoid the creation of a new one.
      ruleLine - The rule line, as described above.
      Returns:
      A valid Access Control List. May be empty.
      Throws:
      WikiSecurityException - if the ruleLine was faulty somehow.
    • getPermissions

      public Acl getPermissions​(Page page)
      Returns the access control list for the page. If the ACL has not been parsed yet, it is done on-the-fly. If the page has a parent page, then that is tried also. This method was moved from Authorizer; it was consolidated with some code from AuthorizationManager.
      Specified by:
      getPermissions in interface AclManager
      Parameters:
      page - the wiki page
      Returns:
      the Acl representing permissions for the page
    • setPermissions

      public void setPermissions​(Page page, Acl acl) throws WikiSecurityException
      Sets the access control list for the page and persists it.
      Specified by:
      setPermissions in interface AclManager
      Parameters:
      page - the wiki page
      acl - the access control list
      Throws:
      WikiSecurityException - if the ACL cannot be set or persisted
    • printAcl

      protected static String printAcl​(Acl acl)
      Generates an ACL string for inclusion in a wiki page, based on a supplied Acl object. All of the permissions in this Acl are assumed to apply to the same page scope. The names of the pages are ignored; only the actions and principals matter.
      Parameters:
      acl - the ACL
      Returns:
      the ACL string