Class DeploymentAdminPermission
- All Implemented Interfaces:
Serializable
,Guard
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 = Bugs Bunny, o = ACME, c = US)
- (name=org.osgi.ExampleApp)
(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.
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final String
Constant String to the "cancel" action.private static final Constructor<? extends Permission>
private final Permission
private static final String
static final String
Constant String to the "install" action.static final String
Constant String to the "list" action.static final String
Constant String to the "metadata" action.private static final long
static final String
Constant String to the "uninstall" action.static final String
Constant String to the "uninstall_forced" action. -
Constructor Summary
ConstructorsConstructorDescriptionDeploymentAdminPermission
(String name, String actions) Creates a newDeploymentAdminPermission
object for the givenname
andaction
. -
Method Summary
Modifier and TypeMethodDescriptionboolean
Checks two DeploymentAdminPermission objects for equality.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.Returns a new PermissionCollection object for storing DeploymentAdminPermission objects.Methods inherited from class java.security.Permission
checkGuard, getName, toString
-
Field Details
-
serialVersionUID
private static final long serialVersionUID- See Also:
-
INSTALL
Constant String to the "install" action. -
LIST
Constant String to the "list" action. -
UNINSTALL
Constant String to the "uninstall" action. -
UNINSTALL_FORCED
Constant String to the "uninstall_forced" action. -
CANCEL
Constant String to the "cancel" action. -
METADATA
Constant String to the "metadata" action. -
delegateProperty
- See Also:
-
constructor
-
delegate
-
-
Constructor Details
-
DeploymentAdminPermission
Creates a newDeploymentAdminPermission
object for the givenname
andaction
.The
name
parameter identifies the target deployment package the permission relates to. Theactions
parameter contains the comma separated list of allowed actions.- Parameters:
name
- filter string, must not be null.actions
- action string, must not be null. "*" means all the possible actions.- Throws:
IllegalArgumentException
- if the filter is invalid, the list of actions contains unknown operations or one of the parameters is null
-
-
Method Details
-
equals
Checks two DeploymentAdminPermission objects for equality. Two permission objects are equal if:- their target filters are semantically equal and
- their actions are the same
- Specified by:
equals
in classPermission
- Parameters:
obj
- The reference object with which to compare.- Returns:
- true if the two objects are equal.
- See Also:
-
hashCode
public int hashCode()Returns hash code for this permission object.- Specified by:
hashCode
in classPermission
- Returns:
- Hash code for this permission object.
- See Also:
-
getActions
Returns the String representation of the action list.The method always gives back the actions in the following (alphabetical) order:
cancel, install, list, metadata, uninstall, uninstall_forced
- Specified by:
getActions
in classPermission
- Returns:
- Action list of this permission instance. This is a comma-separated list that reflects the action parameter of the constructor.
- See Also:
-
implies
Checks if this DeploymentAdminPermission would imply the parameter 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) andsigner
(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.
- Specified by:
implies
in classPermission
- Parameters:
permission
- Permission to check.- Returns:
- true if this DeploymentAdminPermission object implies the specified permission.
- See Also:
-
newPermissionCollection
Returns a new PermissionCollection object for storing DeploymentAdminPermission objects.- Overrides:
newPermissionCollection
in classPermission
- Returns:
- The new PermissionCollection.
- See Also:
-