public final class DeploymentAdminPermission extends Permission
The permission uses a filter string formatted similarly to the
Filter
. The filter determines the target of the
permission. The DeploymentAdminPermission
uses the name
and
the signer
filter attributes only. The value of the signer
attribute is matched against the signer chain (represented with its semicolon
separated Distinguished Name chain) of the Deployment Package, and the value
of the name
attribute is matched against the value of the
"DeploymentPackage-Name" manifest header of the Deployment Package. Example:
(signer=cn=*,o=ACME,c=*)"cn" and "c" may have an arbitrary value
(signer=*, o=ACME, c=US)Only the value of "o" and "c" are significant
(signer=* ; ou=S & V, o=Tweety Inc., c=US)The first element of the certificate chain is not important, only the second (the Distinguished Name of the root certificate)
(signer=- ; *, o=Tweety Inc., c=US)The same as the previous but '-' represents zero or more certificates, whereas the asterisk only represents a single certificate
(name=*)The name of the Deployment Package doesn't matter
(name=org.osgi.*)The name has to begin with "org.osgi."
The following actions are allowed:
list
A holder of this permission can access the inventory information of the
deployment packages selected by the <filter> string. The filter selects
the deployment packages on which the holder of the permission can acquire
detailed inventory information. See
DeploymentAdmin.getDeploymentPackage(Bundle)
,
DeploymentAdmin.getDeploymentPackage(String)
and
DeploymentAdmin.listDeploymentPackages()
.
install
A holder of this permission can install/update deployment packages if the
deployment package satisfies the <filter> string. See
DeploymentAdmin.installDeploymentPackage(java.io.InputStream)
.
uninstall
A holder of this permission can uninstall deployment packages if the
deployment package satisfies the <filter> string. See
DeploymentPackage.uninstall()
.
uninstall_forced
A holder of this permission can forcefully uninstall deployment packages if
the deployment package satisfies the <filter> string. See
DeploymentPackage.uninstallForced()
.
cancel
A holder of this permission can cancel an active deployment action. This
action being canceled could correspond to the install, update or uninstall of
a deployment package that satisfies the <filter> string. See
DeploymentAdmin.cancel()
metadata
A holder of this permission is able to retrieve metadata information about a
Deployment Package (e.g. is able to ask its manifest headers). See
DeploymentPackage.getBundle(String)
,
DeploymentPackage.getBundleInfos()
,
DeploymentPackage.getHeader(String)
,
DeploymentPackage.getResourceHeader(String, String)
,
DeploymentPackage.getResourceProcessor(String)
, DeploymentPackage.getResources()
The actions string is converted to lower case before processing.
Modifier and Type | Field and Description |
---|---|
static String |
CANCEL
Constant String to the "cancel" action.
|
static String |
INSTALL
Constant String to the "install" action.
|
static String |
LIST
Constant String to the "list" action.
|
static String |
METADATA
Constant String to the "metadata" action.
|
static String |
UNINSTALL
Constant String to the "uninstall" action.
|
static String |
UNINSTALL_FORCED
Constant String to the "uninstall_forced" action.
|
Constructor and Description |
---|
DeploymentAdminPermission(String name,
String actions)
Creates a new
DeploymentAdminPermission object for the given
name and action . |
Modifier and Type | Method and Description |
---|---|
boolean |
equals(Object obj)
Checks two DeploymentAdminPermission objects for equality.
|
String |
getActions()
Returns the String representation of the action list.
|
int |
hashCode()
Returns hash code for this permission object.
|
boolean |
implies(Permission permission)
Checks if this DeploymentAdminPermission would imply the parameter
permission.
|
PermissionCollection |
newPermissionCollection()
Returns a new PermissionCollection object for storing
DeploymentAdminPermission objects.
|
checkGuard, getName, toString
public static final String INSTALL
public static final String LIST
public static final String UNINSTALL
public static final String UNINSTALL_FORCED
public static final String CANCEL
public static final String METADATA
public DeploymentAdminPermission(String name, String actions)
DeploymentAdminPermission
object for the given
name
and action
.
The name
parameter identifies the target deployment package the
permission relates to. The actions
parameter contains the comma
separated list of allowed actions.
name
- filter string, must not be null.actions
- action string, must not be null. "*" means all the
possible actions.IllegalArgumentException
- if the filter is invalid, the list of
actions contains unknown operations or one of the parameters is
nullpublic boolean equals(Object obj)
equals
in class Permission
obj
- The reference object with which to compare.Object.equals(java.lang.Object)
public int hashCode()
hashCode
in class Permission
Object.hashCode()
public String getActions()
The method always gives back the actions in the following (alphabetical)
order:
cancel, install, list, metadata, uninstall, uninstall_forced
getActions
in class Permission
Permission.getActions()
public boolean implies(Permission permission)
Precondition of the implication is that the action set of this permission
is the superset of the action set of the other permission. Further rules
of implication are determined by the Filter
rules and the "OSGi Service Platform, Core Specification Release 4,
Chapter Certificate Matching".
The allowed attributes are: name
(the symbolic name of the
deployment package) and signer
(the signer of the deployment
package). In both cases wildcards can be used.
Examples:
1. DeploymentAdminPermission("(name=org.osgi.ExampleApp)", "list") 2. DeploymentAdminPermission("(name=org.osgi.ExampleApp)", "list, install") 3. DeploymentAdminPermission("(name=org.osgi.*)", "list") 4. DeploymentAdminPermission("(signer=*, o=ACME, c=US)", "list") 5. DeploymentAdminPermission("(signer=cn=Bugs Bunny, o=ACME, c=US)", "list")
1. implies 1. 2. implies 1. 1. doesn't implies 2. 3. implies 1. 4. implies 5.
implies
in class Permission
permission
- Permission to check.Permission.implies(java.security.Permission)
,
Filter
public PermissionCollection newPermissionCollection()
newPermissionCollection
in class Permission
Permission.newPermissionCollection()
Copyright © OSGi Alliance (2000, 2015). All Rights Reserved. Licensed under the OSGi Specification License, Version 2.0