Class GroupPermission
- java.lang.Object
-
- java.security.Permission
-
- org.apache.wiki.auth.permissions.GroupPermission
-
- All Implemented Interfaces:
java.io.Serializable,java.security.Guard
public final class GroupPermission extends java.security.Permission implements java.io.Serializable
Permission to perform an operation on a group in a given wiki. Permission actions include:
view,edit,delete.The target of a permission is a single group or collection in a given wiki. The syntax for the target is the wiki name, followed by a colon (:) and the name of the group. “All wikis” can be specified using a wildcard (*). Group collections may also be specified using a wildcard. For groups, the wildcard may be a prefix, suffix, or all by itself. Examples of targets include:
*:*
*:TestPlanners
*:*Planners
*:Test*
mywiki:TestPlanners
mywiki:*Planners
mywiki:Test*For a given target, certain permissions imply others:
editimpliesviewdeleteimplieseditandview
Targets that do not include a wiki prefix never imply others.
GroupPermission accepts a special target called
<groupmember>that means “all groups that a user is a member of.” When included in a policy filegrantblock, it functions like a wildcard. Thus, this block:grant signedBy "jspwiki", principal org.apache.wiki.auth.authorize.Role "Authenticated" { permission org.apache.wiki.auth.permissions.GroupPermission "*:<groupmember>", "edit";means, “allow Authenticated users to edit any groups they are members of.” The wildcard target (*) does not imply<groupmember>; it must be granted explicitly.- Since:
- 2.4.17
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description static GroupPermissionDELETEConvenience constant that denotesGroupPermission( "*:*, "delete" ).static java.lang.StringDELETE_ACTIONAction for deleting a group or collection of groups.static GroupPermissionEDITConvenience constant that denotesGroupPermission( "*:*, "edit" ).static java.lang.StringEDIT_ACTIONAction for editing a group or collection of groups.static java.lang.StringMEMBER_TOKENSpecial target token that denotes all groups that a Subject's Principals are members of.static GroupPermissionVIEWConvenience constant that denotesGroupPermission( "*:*, "view" ).static java.lang.StringVIEW_ACTIONAction for viewing a group or collection of groups.
-
Constructor Summary
Constructors Constructor Description GroupPermission(java.lang.String group, java.lang.String actions)Creates a new GroupPermission for a specified group and set of actions.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description booleanequals(java.lang.Object obj)Two PagePermission objects are considered equal if their actions (after normalization), wiki and target are equal.java.lang.StringgetActions()Returns the actions for this permission: “view”, “edit”, or “delete”.java.lang.StringgetGroup()Returns the name of the wiki group represented by this permission.java.lang.StringgetWiki()Returns the name of the wiki containing the group represented by this permission; may return the wildcard string.inthashCode()Returns the hash code for this GroupPermission.booleanimplies(java.security.Permission permission)GroupPermissions can only imply other GroupPermissions; no other permission types are implied.java.lang.StringtoString()Prints a human-readable representation of this permission.
-
-
-
Field Detail
-
MEMBER_TOKEN
public static final java.lang.String MEMBER_TOKEN
Special target token that denotes all groups that a Subject's Principals are members of.- See Also:
- Constant Field Values
-
DELETE_ACTION
public static final java.lang.String DELETE_ACTION
Action for deleting a group or collection of groups.- See Also:
- Constant Field Values
-
EDIT_ACTION
public static final java.lang.String EDIT_ACTION
Action for editing a group or collection of groups.- See Also:
- Constant Field Values
-
VIEW_ACTION
public static final java.lang.String VIEW_ACTION
Action for viewing a group or collection of groups.- See Also:
- Constant Field Values
-
DELETE
public static final GroupPermission DELETE
Convenience constant that denotesGroupPermission( "*:*, "delete" ).
-
EDIT
public static final GroupPermission EDIT
Convenience constant that denotesGroupPermission( "*:*, "edit" ).
-
VIEW
public static final GroupPermission VIEW
Convenience constant that denotesGroupPermission( "*:*, "view" ).
-
-
Constructor Detail
-
GroupPermission
public GroupPermission(java.lang.String group, java.lang.String actions)
Creates a new GroupPermission for a specified group and set of actions. Group should include a prepended wiki name followed by a colon (:). If the wiki name is not supplied or starts with a colon, the group refers to all wikis.- Parameters:
group- the wiki groupactions- the allowed actions for this group
-
-
Method Detail
-
equals
public boolean equals(java.lang.Object obj)
Two PagePermission objects are considered equal if their actions (after normalization), wiki and target are equal.- Specified by:
equalsin classjava.security.Permission- Parameters:
obj- the object to compare- Returns:
- the result of the comparison
- See Also:
Object.equals(java.lang.Object)
-
getActions
public java.lang.String getActions()
Returns the actions for this permission: “view”, “edit”, or “delete”. The actions will always be sorted in alphabetic order, and will always appear in lower case.- Specified by:
getActionsin classjava.security.Permission- Returns:
- the actions
- See Also:
Permission.getActions()
-
getGroup
public java.lang.String getGroup()
Returns the name of the wiki group represented by this permission.- Returns:
- the page name
-
getWiki
public java.lang.String getWiki()
Returns the name of the wiki containing the group represented by this permission; may return the wildcard string.- Returns:
- the wiki
-
hashCode
public int hashCode()
Returns the hash code for this GroupPermission.- Specified by:
hashCodein classjava.security.Permission- Returns:
- the hash code
- See Also:
Object.hashCode()
-
implies
public boolean implies(java.security.Permission permission)
GroupPermissions can only imply other GroupPermissions; no other permission types are implied. One GroupPermission implies another if its actions if three conditions are met:
- The other GroupPermission’s wiki is equal to, or a subset of, that of this permission. This permission’s wiki is considered a superset of the other if it contains a matching prefix plus a wildcard, or a wildcard followed by a matching suffix.
- The other GroupPermission’s target is equal to, or a subset of, the target specified by this permission. This permission’s target is considered a superset of the other if it contains a matching prefix plus a wildcard, or a wildcard followed by a matching suffix.
- All of other GroupPermission’s actions are equal to, or a subset of, those of this permission
- Specified by:
impliesin classjava.security.Permission- Parameters:
permission- the Permission to examine- Returns:
trueif the GroupPermission implies the supplied Permission;falseotherwise- See Also:
Permission.implies(java.security.Permission)
-
toString
public java.lang.String toString()
Prints a human-readable representation of this permission.- Overrides:
toStringin classjava.security.Permission- Returns:
- the string
- See Also:
Object.toString()
-
-