Class DefaultAclManager

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

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

    Fields
    Modifier and Type
    Field
    Description
    static final 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.
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    org.apache.wiki.api.core.Acl
    getPermissions(org.apache.wiki.api.core.Page page)
    Returns the access control list for the page.
    void
    initialize(org.apache.wiki.api.core.Engine engine, Properties props)
    org.apache.wiki.api.core.Acl
    parseAcl(org.apache.wiki.api.core.Page page, String ruleLine)
    A helper method for parsing textual AccessControlLists.
    protected static String
    printAcl(org.apache.wiki.api.core.Acl acl)
    Generates an ACL string for inclusion in a wiki page, based on a supplied Acl object.
    void
    setPermissions(org.apache.wiki.api.core.Page page, org.apache.wiki.api.core.Acl acl)
    Sets the access control list for the page and persists it.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • 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(org.apache.wiki.api.core.Engine engine, Properties props)
      Specified by:
      initialize in interface org.apache.wiki.api.engine.Initializable
    • parseAcl

      public org.apache.wiki.api.core.Acl parseAcl(org.apache.wiki.api.core.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 org.apache.wiki.api.core.Acl getPermissions(org.apache.wiki.api.core.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(org.apache.wiki.api.core.Page page, org.apache.wiki.api.core.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(org.apache.wiki.api.core.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