public class ResourcePermission extends JpsPermission
A ResourcePermission contains the following items of information:
The resourceType: the type of the resource can/to be accessed, e.g. "Taskflow", "PageView".
The resourceName: the name of the resource can/to be accessed, e.g. "app.aTaskflow", "aPageView."
The action: the list of actions can/to be operated against the resource, e.g. "read,write", "grant". The action list is optional, in which case you have a named permission. If specified it denotes a list of one or more comma-separated operations. The action is returned by ResourcePermission.getActions()
.
If you have a ResourcePermission, it allows operations only if all four of the items match. see ResourcePermission.implies(Permission)
The target name of this ResourcePermission will encode the information of resourceType, and resourceName in a single string. The name of the permission is returned by Permission.getName()
. The format of the string is a comma-delimited list of key-value pair:
resourceType=aType,resourceName=aName
The supported keys are:
In a target name, spaces are allowed before and after each value. However spaces are not allowed after the key values. It must be followed immediately by '='. Permission.getName()
will return the target name in the format described above.
In a comma-separated list of actions, spaces are allowed before and after each action.
Constructor and Description |
---|
ResourcePermission(java.lang.String name)
Creates a new instance of this class with the specified target name.
|
ResourcePermission(java.lang.String name, java.lang.String actions)
Creates a new instance of this permission with the specified target name and actions.
|
ResourcePermission(java.lang.String resourceType, java.lang.String resourceName, java.util.Set<java.lang.String> actionsSet)
Creates a new instance of this class with the specified resource type, name and actions.
|
ResourcePermission(java.lang.String resourceType, java.lang.String resourceName, java.lang.String actions)
Creates a new instance of this class with the specified resource type, name and actions.
|
Modifier and Type | Method and Description |
---|---|
boolean |
equals(java.lang.Object obj)
Checks two ResourcePermission objects for equality.
|
java.lang.String |
getActions()
Returns the "canonical string representation" of the actions.
|
java.lang.String |
getResourceName()
Returns the resource name.
|
java.lang.String |
getType()
Returns the resource type.
|
int |
hashCode() |
boolean |
implies(java.security.Permission perm)
Checks if this object "implies" the specified permission.
|
java.security.PermissionCollection |
newPermissionCollection()
Returns a new PermissionCollection object for storing ResourcePermission objects.
|
public ResourcePermission(java.lang.String name)
Creates a new instance of this class with the specified target name.
This constructor is equivalent to ResourcePermission(name,"")
.
name
- the target namepublic ResourcePermission(java.lang.String name, java.lang.String actions)
Creates a new instance of this permission with the specified target name and actions.
The target name is of the form "resourceType=aType,resourceName=aName
" where each part is required. It must not be empty or null.
The actions parameter contains a comma-separated list of the desired actions granted on the target name. It must not be null.
name
- the target nameactions
- the action listjava.lang.NullPointerException
- if name
is null
.java.lang.IllegalArgumentException
- if name
is empty or has syntax errorpublic ResourcePermission(java.lang.String resourceType, java.lang.String resourceName, java.lang.String actions)
Creates a new instance of this class with the specified resource type, name and actions.
This constructor is equivalent to ResourcePermission.ResourcePermission(String,String)
. The target name is constructed with the input resourceType
, and resourceName
, following the name encoding scheme. resourceType
is considered case-insensitive and resourceName
case-sensitive.
resourceType
- the resource typeresourceName
- the resource nameactions
- a comma-separated list of the actions that operate against the resourcejava.lang.IllegalArgumentException
- if the resourceName contains the resourceType encoded in the name.
For example, resourceName value of 'resourceType=myType,resourceName=myResource' is an invalid name.
public ResourcePermission(java.lang.String resourceType, java.lang.String resourceName, java.util.Set<java.lang.String> actionsSet)
Creates a new instance of this class with the specified resource type, name and actions.
This constructor is similar to ResourcePermission.ResourcePermission(String,String,String)
, with actions specified as set.
resourceType
- the resource typeresourceName
- the resource name.actionsSet
- a set of the actions that operate against the resourcejava.lang.IllegalArgumentException
- if the resourceName contains the resourceType encoded in the name.
For example, resourceName value of 'resourceType=myType,resourceName=myResource' is an invalid name.
public boolean implies(java.security.Permission perm)
Checks if this object "implies" the specified permission.
More specifically, this method returns true if:
implies
in class java.security.BasicPermission
perm
- the permission to check againstpublic boolean equals(java.lang.Object obj)
Checks two ResourcePermission objects for equality.
More specifically, this method returns true if:
equals
in class java.security.BasicPermission
obj
- the object tested for equality with this objectpublic int hashCode()
hashCode
in class java.security.BasicPermission
public java.lang.String getActions()
getActions
in class java.security.BasicPermission
public java.lang.String getType()
public java.lang.String getResourceName()
public java.security.PermissionCollection newPermissionCollection()
newPermissionCollection
in class java.security.BasicPermission