java.lang.Object java.security.Permission java.security.UnresolvedPermission
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.
To instantiate the new class, UnresolvedPermission assumes
the class provides a zero, one, and/or two-argument constructor.
The zero-argument constructor would be used to instantiate
a permission without a name and without actions.
A one-arg constructor is assumed to take a
name as input, and a two-arg constructor is assumed to take a
String name and
as input. UnresolvedPermission may invoke a
constructor with a
null name and/or actions.
If an appropriate permission constructor is not available,
the UnresolvedPermission is ignored and the relevant permission
will not be granted to executing code.
The newly created permission object replaces the UnresolvedPermission, which is removed.
Note that the
getName method for an
UnresolvedPermission returns the
type (class name) for the underlying permission
that has not been resolved.
public UnresolvedPermission(String type, String name, String actions, Certificate certs)
|Method from java.security.UnresolvedPermission Summary:|
|equals, getActions, getUnresolvedActions, getUnresolvedCerts, getUnresolvedName, getUnresolvedType, hashCode, implies, newPermissionCollection, resolve, toString|
|Methods from java.security.Permission:|
|checkGuard, equals, getActions, getName, hashCode, implies, newPermissionCollection, toString|
|Methods from java.lang.Object:|
|clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait|
|Method from java.security.UnresolvedPermission Detail:|
To determine certificate equality, this method only compares actual signer certificates. Supporting certificate chains are not taken into consideration by this method.
public String getActions()
public String getUnresolvedActions()
public Certificate getUnresolvedCerts()
public String getUnresolvedName()
public String getUnresolvedType()
public int hashCode()
public boolean implies(Permission p)
Permission resolve(Permission p, Certificate certs)
public String toString()