public class DmtPermission
extends java.security.Permission
DmtPermission("./OSGi/bundles", "Add,Replace,Get");This means that owner of this permission can execute Add, Replace and Get commands on the ./OSGi/bundles management object. It is possible to use wildcards in both the target and the actions field. Wildcard in the target field means that the owner of the permission can access children nodes of the target node. Example:
DmtPermission("./OSGi/bundles/*", "Get");This means that owner of this permission has Get access on every child node of ./OSGi/bundles. The asterix does not necessarily have to follow a '/' character. For example the
"./OSGi/a*"
target matches
the ./OSGi/applications
subtree.
If wildcard is present in the actions field, all legal OMA DM commands are
allowed on the designated nodes(s) by the owner of the permission. Action
names are interpreted case-insensitively, but the canonical action string
returned by getActions()
uses the forms defined by the action
constants.
Modifier and Type | Field and Description |
---|---|
private java.lang.String |
actions |
static java.lang.String |
ADD
Holders of DmtPermission with the Add action present can create new nodes
in the DMT, that is they are authorized to execute the
createInteriorNode() and createLeafNode() methods of the DmtSession.
|
static java.lang.String |
DELETE
Holders of DmtPermission with the Delete action present can delete nodes
from the DMT, that is they are authorized to execute the deleteNode()
method of the DmtSession.
|
static java.lang.String |
EXEC
Holders of DmtPermission with the Exec action present can execute nodes
in the DMT, that is they are authorized to call the execute() method of
the DmtSession.
|
static java.lang.String |
GET
Holders of DmtPermission with the Get action present can query DMT node
value or properties, that is they are authorized to execute the
isLeafNode(), getNodeAcl(), getEffectiveNodeAcl(), getMetaNode(),
getNodeValue(), getChildNodeNames(), getNodeTitle(), getNodeVersion(),
getNodeTimeStamp(), getNodeSize() and getNodeType() methods of the
DmtSession.
|
private int |
mask |
private java.lang.String |
path |
private boolean |
prefixPath |
static java.lang.String |
REPLACE
Holders of DmtPermission with the Replace action present can update DMT
node value or properties, that is they are authorized to execute the
setNodeAcl(), setNodeTitle(), setNodeValue(), setNodeType() and
renameNode() methods of the DmtSession.
|
private static long |
serialVersionUID |
Constructor and Description |
---|
DmtPermission(java.lang.String dmtUri,
java.lang.String actions)
Creates a new DmtPermission object for the specified DMT URI with the
specified actions.
|
Modifier and Type | Method and Description |
---|---|
private static void |
addAction(java.lang.StringBuffer sb,
int mask,
int flag,
java.lang.String action) |
private static java.lang.String |
canonicalActions(int mask) |
private void |
checkUri(java.lang.String dmtUri) |
boolean |
equals(java.lang.Object obj)
Checks whether the given object is equal to this DmtPermission instance.
|
java.lang.String |
getActions()
Returns the String representation of the action list.
|
(package private) int |
getMask() |
private static int |
getMask(java.lang.String actions) |
int |
hashCode()
Returns the hash code for this permission object.
|
boolean |
implies(java.security.Permission p)
Checks if this DmtPermission object "implies" the specified
permission.
|
(package private) boolean |
impliesPath(DmtPermission p) |
java.security.PermissionCollection |
newPermissionCollection()
Returns a new PermissionCollection object for storing DmtPermission
objects.
|
private static final long serialVersionUID
public static final java.lang.String ADD
public static final java.lang.String DELETE
public static final java.lang.String EXEC
public static final java.lang.String GET
public static final java.lang.String REPLACE
private final boolean prefixPath
private final java.lang.String path
private final int mask
private final java.lang.String actions
public DmtPermission(java.lang.String dmtUri, java.lang.String actions)
"*"
, which matches all valid
(see Uri.isValidUri(java.lang.String)
) absolute URIs;
*
character (for example "./OSGi/L*"
), which matches all valid
absolute URIs beginning with the given prefix;
Since the *
character is itself a valid URI character, it
can appear as the last character of a valid absolute URI. To distinguish
this case from using *
as a wildcard, the *
character at the end of the URI must be escaped with the \
charater. For example the URI "./a*"
matches
"./a"
, "./aa"
, "./a/b"
etc. while
"./a\*"
matches "./a*"
only.
The actions string must either be "*" to allow all actions, or it must contain a non-empty subset of the valid actions, defined as constants in this class.
dmtUri
- URI of the management object (or subtree)actions
- OMA DM actions allowedjava.lang.NullPointerException
- if any of the parameters are
null
java.lang.IllegalArgumentException
- if any of the parameters are invalidprivate void checkUri(java.lang.String dmtUri) throws java.lang.IllegalArgumentException
java.lang.IllegalArgumentException
public boolean equals(java.lang.Object obj)
equals
in class java.security.Permission
obj
- the object to compare to this DmtPermission instancetrue
if the parameter represents the same
permissions as this instancepublic java.lang.String getActions()
getActions
in class java.security.Permission
public int hashCode()
equals(java.lang.Object)
method, then calling
this method on each of the two DmtPermission objects must produce the
same integer result.hashCode
in class java.security.Permission
public boolean implies(java.security.Permission p)
false
if and only if at
least one of the following conditions are fulfilled for the specified
permission:
implies
in class java.security.Permission
p
- the permission to check for implicationpublic java.security.PermissionCollection newPermissionCollection()
newPermissionCollection
in class java.security.Permission
private static int getMask(java.lang.String actions)
private static java.lang.String canonicalActions(int mask)
private static void addAction(java.lang.StringBuffer sb, int mask, int flag, java.lang.String action)
int getMask()
boolean impliesPath(DmtPermission p)