public final class CoordinationPermission
extends java.security.BasicPermission
Coordination
.
CoordinationPermission
has three actions: initiate
,
participate
and admin
.
Modifier and Type | Field and Description |
---|---|
private static int |
ACTION_ADMIN |
private static int |
ACTION_ALL |
private static int |
ACTION_INITIATE |
(package private) int |
action_mask
The actions mask.
|
(package private) static int |
ACTION_NONE |
private static int |
ACTION_PARTICIPATE |
private java.lang.String |
actions
The actions in canonical form.
|
static java.lang.String |
ADMIN
The action string
admin . |
(package private) org.osgi.framework.Bundle |
bundle
The bundle used by this CoordinationPermission.
|
(package private) org.osgi.framework.Filter |
filter
If this CoordinationPermission was constructed with a filter, this holds
a Filter matching object used to evaluate the filter in implies.
|
static java.lang.String |
INITIATE
The action string
initiate . |
static java.lang.String |
PARTICIPATE
The action string
participate . |
private java.util.Map<java.lang.String,java.lang.Object> |
properties
This map holds the properties of the permission, used to match a filter
in implies.
|
private static long |
serialVersionUID |
Constructor and Description |
---|
CoordinationPermission(org.osgi.framework.Filter filter,
int mask)
Package private constructor used by CoordinationPermissionCollection.
|
CoordinationPermission(java.lang.String coordinationName,
org.osgi.framework.Bundle coordinationBundle,
java.lang.String actions)
Creates a new requested
CoordinationPermission object to be used
by the code that must perform checkPermission . |
CoordinationPermission(java.lang.String filter,
java.lang.String actions)
Creates a new granted
CoordinationPermission object. |
Modifier and Type | Method and Description |
---|---|
boolean |
equals(java.lang.Object obj)
Determines the equality of two
CoordinationPermission objects. |
java.lang.String |
getActions()
Returns the canonical string representation of the
CoordinationPermission actions. |
private java.util.Map<java.lang.String,java.lang.Object> |
getProperties()
Called by
implies(Permission) . |
int |
hashCode()
Returns the hash code value for this object.
|
boolean |
implies(java.security.Permission p)
Determines if the specified permission is implied by this object.
|
(package private) boolean |
implies0(CoordinationPermission requested,
int effective)
Internal implies method.
|
java.security.PermissionCollection |
newPermissionCollection()
Returns a new
PermissionCollection object suitable for storing
CoordinationPermission objects. |
private static int |
parseActions(java.lang.String actions)
Parse action string into action mask.
|
private static org.osgi.framework.Filter |
parseFilter(java.lang.String filterString)
Parse filter string into a Filter object.
|
private void |
readObject(java.io.ObjectInputStream s)
readObject is called to restore the state of this permission from a
stream.
|
private void |
setTransients(org.osgi.framework.Filter filter,
int mask)
Called by constructors and when deserialized.
|
private void |
writeObject(java.io.ObjectOutputStream s)
WriteObject is called to save the state of this permission object to a
stream.
|
private static final long serialVersionUID
public static final java.lang.String INITIATE
initiate
.public static final java.lang.String PARTICIPATE
participate
.public static final java.lang.String ADMIN
admin
.private static final int ACTION_INITIATE
private static final int ACTION_PARTICIPATE
private static final int ACTION_ADMIN
private static final int ACTION_ALL
static final int ACTION_NONE
transient int action_mask
private volatile java.lang.String actions
final transient org.osgi.framework.Bundle bundle
transient org.osgi.framework.Filter filter
private transient volatile java.util.Map<java.lang.String,java.lang.Object> properties
public CoordinationPermission(java.lang.String filter, java.lang.String actions)
CoordinationPermission
object.
This constructor must only be used to create a permission that is going
to be checked.
Examples:
(coordination.name=com.acme.*) (&(signer=\*,o=ACME,c=US)(coordination.name=com.acme.*)) (signer=\*,o=ACME,c=US)
When a signer key is used within the filter expression the signer value must escape the special filter chars ('*', '(', ')').
The name is specified as a filter expression. The filter gives access to the following attributes:
filter
- A filter expression. Filter attribute names are processed
in a case sensitive manner. A special value of "*"
can be
used to match all coordinations.actions
- admin
, initiate
or participate
(canonical order).java.lang.IllegalArgumentException
- If the filter has an invalid syntax.public CoordinationPermission(java.lang.String coordinationName, org.osgi.framework.Bundle coordinationBundle, java.lang.String actions)
CoordinationPermission
object to be used
by the code that must perform checkPermission
.
CoordinationPermission
objects created with this constructor
cannot be added to an CoordinationPermission
permission
collection.coordinationName
- The name of the requested Coordination.coordinationBundle
- The bundle which
created
the requested
Coordination.actions
- admin
, initiate
or participate
(canonical order).CoordinationPermission(org.osgi.framework.Filter filter, int mask)
filter
- name filtermask
- action maskprivate void setTransients(org.osgi.framework.Filter filter, int mask)
filter
- Permission's filter or null
for wildcard.mask
- action maskprivate static int parseActions(java.lang.String actions)
actions
- Action string.private static org.osgi.framework.Filter parseFilter(java.lang.String filterString)
filterString
- The filter string to parse.java.lang.IllegalArgumentException
- If the filter syntax is invalid.public boolean implies(java.security.Permission p)
This method checks that the filter of the target is implied by the
coordination name of this object. The list of
CoordinationPermission
actions must either match or allow for the
list of the target object to imply the target
CoordinationPermission
action.
implies
in class java.security.BasicPermission
p
- The requested permission.true
if the specified permission is implied by this
object; false
otherwise.boolean implies0(CoordinationPermission requested, int effective)
requested
- The requested CoordinationPermission which has already
be validated as a proper argument. The requested
CoordinationPermission must not have a filter expression.effective
- The effective actions with which to start.true
if the specified permission is implied by this
object; false
otherwise.public java.lang.String getActions()
CoordinationPermission
actions.
Always returns present CoordinationPermission
actions in the
following order: admin
, initiate
, participate
.
getActions
in class java.security.BasicPermission
CoordinationPermission
actions.public java.security.PermissionCollection newPermissionCollection()
PermissionCollection
object suitable for storing
CoordinationPermission
objects.newPermissionCollection
in class java.security.BasicPermission
PermissionCollection
object.public boolean equals(java.lang.Object obj)
CoordinationPermission
objects.
This method checks that specified permission has the same name and
CoordinationPermission
actions as this
CoordinationPermission
object.equals
in class java.security.BasicPermission
obj
- The object to test for equality with this
CoordinationPermission
object.true
if obj
is a CoordinationPermission
,
and has the same name and actions as this
CoordinationPermission
object; false
otherwise.public int hashCode()
hashCode
in class java.security.BasicPermission
private void writeObject(java.io.ObjectOutputStream s) throws java.io.IOException
java.io.IOException
private void readObject(java.io.ObjectInputStream s) throws java.io.IOException, java.lang.ClassNotFoundException
java.io.IOException
java.lang.ClassNotFoundException
private java.util.Map<java.lang.String,java.lang.Object> getProperties()
implies(Permission)
. This method
is only called on a requested permission which cannot have a filter set.