Package org.uberfire.security.impl.authz
Class DotNamedPermission
- java.lang.Object
-
- org.uberfire.security.impl.authz.DotNamedPermission
-
- All Implemented Interfaces:
Comparable<Permission>,Permission
@Portable public class DotNamedPermission extends Object implements Permission, Comparable<Permission>
An implementation where the permission's name is formatted using dots. For instance:- resource.view => View all resources
- resource.view.r1 => View only r1
implies(Permission other)implementation is based on the simple fact that one permission implies another just if its name starts with the another's name. This very simple mechanism can be applied to most of the resources that require authorization control, like for instance, workbench perspectives, a file system, etc.
-
-
Constructor Summary
Constructors Constructor Description DotNamedPermission()DotNamedPermission(String name)DotNamedPermission(String name, Boolean granted)DotNamedPermission(String name, AuthorizationResult result)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void_checkImmutability()protected void_enableImmutability()Permissionclone()Creates an exact copy of this instance.intcompareTo(Permission o)booleanequals(Object obj)booleanequalsName(Permission other)booleanequalsResult(Permission other)StringgetName()A string literal that identifies a resource or set of resources this permission object relates to.AuthorizationResultgetResult()The authorization result or permission status.inthashCode()booleanimplies(Permission other)Basically, "permission p1 implies permission p2" means that if one is granted permission p1, one is naturally granted permission p2.booleanimpliesName(Permission other)If "permission p1 impliesName permission p2" means that the feature represented by p1 is a superset of p2.booleanimpliesResult(Permission other)If "permission p1 impliesResult permission p2" means that both permissions give the same result.<T extends DotNamedPermission>
TnonMutable()voidsetName(String name)voidsetResult(AuthorizationResult result)Change the authorzation result.StringtoString()
-
-
-
Constructor Detail
-
DotNamedPermission
public DotNamedPermission()
-
DotNamedPermission
public DotNamedPermission(String name)
-
DotNamedPermission
public DotNamedPermission(String name, AuthorizationResult result)
-
-
Method Detail
-
_enableImmutability
protected void _enableImmutability()
-
_checkImmutability
protected void _checkImmutability()
-
nonMutable
public <T extends DotNamedPermission> T nonMutable()
-
getName
public String getName()
Description copied from interface:PermissionA string literal that identifies a resource or set of resources this permission object relates to.It's up to every Permission implementation to define what's the set the name's format.
- Specified by:
getNamein interfacePermission
-
setName
public void setName(String name)
-
getResult
public AuthorizationResult getResult()
Description copied from interface:PermissionThe authorization result or permission status.- Specified by:
getResultin interfacePermission- Returns:
- One of the available results: GRANT / DENY / ABSTAIN
-
setResult
public void setResult(AuthorizationResult result)
Description copied from interface:PermissionChange the authorzation result.- Specified by:
setResultin interfacePermission- Parameters:
result- GRANT / DENY / ABSTAIN
-
implies
public boolean implies(Permission other)
Description copied from interface:PermissionBasically, "permission p1 implies permission p2" means that if one is granted permission p1, one is naturally granted permission p2. Thus, this is not an equality test, but rather more of a subset test.Both calls to
Permission.impliesName(Permission)&Permission.impliesResult(Permission)return true.- Specified by:
impliesin interfacePermission- Parameters:
other- the permission to check against.- Returns:
- true if the specified permission is implied by this object, false if not.
-
impliesName
public boolean impliesName(Permission other)
Description copied from interface:PermissionIf "permission p1 impliesName permission p2" means that the feature represented by p1 is a superset of p2.- Specified by:
impliesNamein interfacePermission- Parameters:
other- the permission to check against.- Returns:
- true if the specified permission name is implied by this object, false if not.
-
impliesResult
public boolean impliesResult(Permission other)
Description copied from interface:PermissionIf "permission p1 impliesResult permission p2" means that both permissions give the same result.- Specified by:
impliesResultin interfacePermission- Parameters:
other- the permission to check against.- Returns:
- true if the specified permission result is implied by this object, false if not.
-
equalsName
public boolean equalsName(Permission other)
-
equalsResult
public boolean equalsResult(Permission other)
-
compareTo
public int compareTo(Permission o)
- Specified by:
compareToin interfaceComparable<Permission>
-
clone
public Permission clone()
Description copied from interface:PermissionCreates an exact copy of this instance.- Specified by:
clonein interfacePermission- Overrides:
clonein classObject- Returns:
- A brand new Permission instance
-
-