The UnresolvedPermission class is used to hold Permissions that
were "unresolved" when the Policy was initialized.
An unresolved permission is one whose actual Permission class
does not yet exist at the time the Policy is initialized (see below).
The policy for a Java runtime (specifying
which permissions are available for code from various principals)
is represented by a Policy object.
Whenever a Policy is initialized or refreshed, Permission objects of
appropriate classes are created for all permissions
allowed by the Policy.
Many permission class types
referenced by the policy configuration are ones that exist
locally (i.e., ones that can be found on CLASSPATH).
Objects for such permissions can be instantiated during
Policy initialization. For example, it is always possible
to instantiate a java.io.FilePermission, since the
FilePermission class is found on the CLASSPATH.
Other permission classes may not yet exist during Policy
initialization. For example, a referenced permission class may
be in a JAR file that will later be loaded.
For each such class, an UnresolvedPermission is instantiated.
Thus, an UnresolvedPermission is essentially a "placeholder"
containing information about the permission.
Later, when code calls AccessController.checkPermission
on a permission of a type that was previously unresolved,
but whose class has since been loaded, previously-unresolved
permissions of that type are "resolved". That is,
for each such UnresolvedPermission, a new object of
the appropriate class type is instantiated, based on the
information in the UnresolvedPermission. This new object
replaces the UnresolvedPermission, which is removed.
UnresolvedPermission(String type,
String name,
String actions,
Certificate[] certs)
Creates a new UnresolvedPermission containing the permission
information needed later to actually create a Permission of the
specified class, when the permission is resolved.
Method Summary
boolean
equals(Object obj)
Checks two UnresolvedPermission objects for equality.
getActions()
Returns the canonical string representation of the actions,
which currently is the empty string "", since there are no actions for
an UnresolvedPermission.
int
hashCode()
Returns the hash code value for this object.
boolean
implies(Permission p)
This method always returns false for unresolved permissions.
Creates a new UnresolvedPermission containing the permission
information needed later to actually create a Permission of the
specified class, when the permission is resolved.
Parameters:
type - the class name of the Permission class that will be
created when this unresolved permission is resolved.
name - the name of the permission.
actions - the actions of the permission.
certs - the certificates the permission's class was signed with.
This is a list of certificate chains, where each chain is composed of a
signer certificate and optionally its supporting certificate chain.
Each chain is ordered bottom-to-top (i.e., with the signer certificate
first and the (root) certificate authority last).
Checks two UnresolvedPermission objects for equality.
Checks that obj is an UnresolvedPermission, and has
the same type (class) name, permission name, actions, and
certificates as this object.
Returns the canonical string representation of the actions,
which currently is the empty string "", since there are no actions for
an UnresolvedPermission. That is, the actions for the
permission that will be created when this UnresolvedPermission
is resolved may be non-null, but an UnresolvedPermission
itself is never considered to have any actions.
Returns a string describing this UnresolvedPermission. The convention
is to specify the class name, the permission name, and the actions, in
the following format: '(unresolved "ClassName" "name" "actions")'.
Submit a bug or feature For further API reference and developer documentation, see Java 2 SDK SE Developer Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Java, Java 2D, and JDBC are trademarks or registered trademarks of Sun Microsystems, Inc. in the US and other countries. Copyright 1993-2001 Sun Microsystems, Inc. 901 San Antonio Road Palo Alto, California, 94303, U.S.A. All Rights Reserved.