Package org.apache.wiki.auth.acl

# 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`
`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.

## Constructor Summary

Constructors
Constructor
Description
`DefaultAclManager()`

## 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

### DefaultAclManager

public DefaultAclManager()

## 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) <permission><principal>, <principal>, <principal>". 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