java.security
Class UnresolvedPermission

java.lang.Object sample code for java.lang.Object definition code for java.lang.Object 
  extended by java.security.Permission sample code for java.security.Permission definition code for java.security.Permission 
      extended by java.security.UnresolvedPermission
All Implemented Interfaces:
Serializable sample code for java.io.Serializable definition code for java.io.Serializable , Guard sample code for java.security.Guard definition code for java.security.Guard

public final class UnresolvedPermission
extends Permission sample code for java.security.Permission definition code for java.security.Permission
implements Serializable sample code for java.io.Serializable definition code for java.io.Serializable

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.

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 String name as input, and a two-arg constructor is assumed to take a String name and String actions 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.

See Also:
Permission sample code for java.security.Permission definition code for java.security.Permission , Permissions sample code for java.security.Permissions definition code for java.security.Permissions , PermissionCollection sample code for java.security.PermissionCollection definition code for java.security.PermissionCollection , Policy sample code for java.security.Policy definition code for java.security.Policy , Serialized Form

Constructor Summary
UnresolvedPermission sample code for java.security.UnresolvedPermission.UnresolvedPermission(java.lang.String, java.lang.String, java.lang.String, java.security.cert.Certificate[]) definition code for java.security.UnresolvedPermission.UnresolvedPermission(java.lang.String, java.lang.String, java.lang.String, java.security.cert.Certificate[]) (String sample code for java.lang.String definition code for java.lang.String  type, String sample code for java.lang.String definition code for java.lang.String  name, String sample code for java.lang.String definition code for java.lang.String  actions, Certificate sample code for java.security.cert.Certificate definition code for java.security.cert.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 sample code for java.security.UnresolvedPermission.equals(java.lang.Object) definition code for java.security.UnresolvedPermission.equals(java.lang.Object) (Object sample code for java.lang.Object definition code for java.lang.Object  obj)
          Checks two UnresolvedPermission objects for equality.
 String sample code for java.lang.String definition code for java.lang.String getActions sample code for java.security.UnresolvedPermission.getActions() definition code for java.security.UnresolvedPermission.getActions() ()
          Returns the canonical string representation of the actions, which currently is the empty string "", since there are no actions for an UnresolvedPermission.
 String sample code for java.lang.String definition code for java.lang.String getUnresolvedActions sample code for java.security.UnresolvedPermission.getUnresolvedActions() definition code for java.security.UnresolvedPermission.getUnresolvedActions() ()
          Get the actions for the underlying permission that has not been resolved.
 Certificate sample code for java.security.cert.Certificate definition code for java.security.cert.Certificate [] getUnresolvedCerts sample code for java.security.UnresolvedPermission.getUnresolvedCerts() definition code for java.security.UnresolvedPermission.getUnresolvedCerts() ()
          Get the signer certificates (without any supporting chain) for the underlying permission that has not been resolved.
 String sample code for java.lang.String definition code for java.lang.String getUnresolvedName sample code for java.security.UnresolvedPermission.getUnresolvedName() definition code for java.security.UnresolvedPermission.getUnresolvedName() ()
          Get the target name of the underlying permission that has not been resolved.
 String sample code for java.lang.String definition code for java.lang.String getUnresolvedType sample code for java.security.UnresolvedPermission.getUnresolvedType() definition code for java.security.UnresolvedPermission.getUnresolvedType() ()
          Get the type (class name) of the underlying permission that has not been resolved.
 int hashCode sample code for java.security.UnresolvedPermission.hashCode() definition code for java.security.UnresolvedPermission.hashCode() ()
          Returns the hash code value for this object.
 boolean implies sample code for java.security.UnresolvedPermission.implies(java.security.Permission) definition code for java.security.UnresolvedPermission.implies(java.security.Permission) (Permission sample code for java.security.Permission definition code for java.security.Permission  p)
          This method always returns false for unresolved permissions.
 PermissionCollection sample code for java.security.PermissionCollection definition code for java.security.PermissionCollection newPermissionCollection sample code for java.security.UnresolvedPermission.newPermissionCollection() definition code for java.security.UnresolvedPermission.newPermissionCollection() ()
          Returns a new PermissionCollection object for storing UnresolvedPermission objects.
 String sample code for java.lang.String definition code for java.lang.String toString sample code for java.security.UnresolvedPermission.toString() definition code for java.security.UnresolvedPermission.toString() ()
          Returns a string describing this UnresolvedPermission.
 
Methods inherited from class java.security.Permission sample code for java.security.Permission definition code for java.security.Permission
checkGuard sample code for java.security.Permission.checkGuard(java.lang.Object) definition code for java.security.Permission.checkGuard(java.lang.Object) , getName sample code for java.security.Permission.getName() definition code for java.security.Permission.getName()
 
Methods inherited from class java.lang.Object sample code for java.lang.Object definition code for java.lang.Object
clone sample code for java.lang.Object.clone() definition code for java.lang.Object.clone() , finalize sample code for java.lang.Object.finalize() definition code for java.lang.Object.finalize() , getClass sample code for java.lang.Object.getClass() definition code for java.lang.Object.getClass() , notify sample code for java.lang.Object.notify() definition code for java.lang.Object.notify() , notifyAll sample code for java.lang.Object.notifyAll() definition code for java.lang.Object.notifyAll() , wait sample code for java.lang.Object.wait() definition code for java.lang.Object.wait() , wait sample code for java.lang.Object.wait(long) definition code for java.lang.Object.wait(long) , wait sample code for java.lang.Object.wait(long, int) definition code for java.lang.Object.wait(long, int)
 

Constructor Detail

UnresolvedPermission sample code for java.security.UnresolvedPermission(java.lang.String, java.lang.String, java.lang.String, java.security.cert.Certificate[]) definition code for java.security.UnresolvedPermission(java.lang.String, java.lang.String, java.lang.String, java.security.cert.Certificate[])

public UnresolvedPermission(String sample code for java.lang.String definition code for java.lang.String  type,
                            String sample code for java.lang.String definition code for java.lang.String  name,
                            String sample code for java.lang.String definition code for java.lang.String  actions,
                            Certificate sample code for java.security.cert.Certificate definition code for java.security.cert.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.

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). The signer certificates are copied from the array. Subsequent changes to the array will not affect this UnsolvedPermission.
Method Detail

implies sample code for java.security.UnresolvedPermission.implies(java.security.Permission) definition code for java.security.UnresolvedPermission.implies(java.security.Permission)

public boolean implies(Permission sample code for java.security.Permission definition code for java.security.Permission  p)
This method always returns false for unresolved permissions. That is, an UnresolvedPermission is never considered to imply another permission.

Specified by:
implies sample code for java.security.Permission.implies(java.security.Permission) definition code for java.security.Permission.implies(java.security.Permission) in class Permission sample code for java.security.Permission definition code for java.security.Permission
Parameters:
p - the permission to check against.
Returns:
false.

equals sample code for java.security.UnresolvedPermission.equals(java.lang.Object) definition code for java.security.UnresolvedPermission.equals(java.lang.Object)

public boolean equals(Object sample code for java.lang.Object definition code for java.lang.Object  obj)
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.

To determine certificate equality, this method only compares actual signer certificates. Supporting certificate chains are not taken into consideration by this method.

Specified by:
equals sample code for java.security.Permission.equals(java.lang.Object) definition code for java.security.Permission.equals(java.lang.Object) in class Permission sample code for java.security.Permission definition code for java.security.Permission
Parameters:
obj - the object we are testing for equality with this object.
Returns:
true if obj is an UnresolvedPermission, and has the same type (class) name, permission name, actions, and certificates as this object.
See Also:
Object.hashCode() sample code for java.lang.Object.hashCode() definition code for java.lang.Object.hashCode() , Hashtable sample code for java.util.Hashtable definition code for java.util.Hashtable

hashCode sample code for java.security.UnresolvedPermission.hashCode() definition code for java.security.UnresolvedPermission.hashCode()

public int hashCode()
Returns the hash code value for this object.

Specified by:
hashCode sample code for java.security.Permission.hashCode() definition code for java.security.Permission.hashCode() in class Permission sample code for java.security.Permission definition code for java.security.Permission
Returns:
a hash code value for this object.
See Also:
Object.equals(java.lang.Object) sample code for java.lang.Object.equals(java.lang.Object) definition code for java.lang.Object.equals(java.lang.Object) , Hashtable sample code for java.util.Hashtable definition code for java.util.Hashtable

getActions sample code for java.security.UnresolvedPermission.getActions() definition code for java.security.UnresolvedPermission.getActions()

public String sample code for java.lang.String definition code for java.lang.String  getActions()
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.

Specified by:
getActions sample code for java.security.Permission.getActions() definition code for java.security.Permission.getActions() in class Permission sample code for java.security.Permission definition code for java.security.Permission
Returns:
the empty string "".

getUnresolvedType sample code for java.security.UnresolvedPermission.getUnresolvedType() definition code for java.security.UnresolvedPermission.getUnresolvedType()

public String sample code for java.lang.String definition code for java.lang.String  getUnresolvedType()
Get the type (class name) of the underlying permission that has not been resolved.

Returns:
the type (class name) of the underlying permission that has not been resolved
Since:
1.5

getUnresolvedName sample code for java.security.UnresolvedPermission.getUnresolvedName() definition code for java.security.UnresolvedPermission.getUnresolvedName()

public String sample code for java.lang.String definition code for java.lang.String  getUnresolvedName()
Get the target name of the underlying permission that has not been resolved.

Returns:
the target name of the underlying permission that has not been resolved, or null, if there is no targe name
Since:
1.5

getUnresolvedActions sample code for java.security.UnresolvedPermission.getUnresolvedActions() definition code for java.security.UnresolvedPermission.getUnresolvedActions()

public String sample code for java.lang.String definition code for java.lang.String  getUnresolvedActions()
Get the actions for the underlying permission that has not been resolved.

Returns:
the actions for the underlying permission that has not been resolved, or null if there are no actions
Since:
1.5

getUnresolvedCerts sample code for java.security.UnresolvedPermission.getUnresolvedCerts() definition code for java.security.UnresolvedPermission.getUnresolvedCerts()

public Certificate sample code for java.security.cert.Certificate definition code for java.security.cert.Certificate [] getUnresolvedCerts()
Get the signer certificates (without any supporting chain) for the underlying permission that has not been resolved.

Returns:
the signer certificates for the underlying permission that has not been resolved, or null, if there are no signer certificates. Returns a new array each time this method is called.
Since:
1.5

toString sample code for java.security.UnresolvedPermission.toString() definition code for java.security.UnresolvedPermission.toString()

public String sample code for java.lang.String definition code for java.lang.String  toString()
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")'.

Overrides:
toString sample code for java.security.Permission.toString() definition code for java.security.Permission.toString() in class Permission sample code for java.security.Permission definition code for java.security.Permission
Returns:
information about this UnresolvedPermission.

newPermissionCollection sample code for java.security.UnresolvedPermission.newPermissionCollection() definition code for java.security.UnresolvedPermission.newPermissionCollection()

public PermissionCollection sample code for java.security.PermissionCollection definition code for java.security.PermissionCollection  newPermissionCollection()
Returns a new PermissionCollection object for storing UnresolvedPermission objects.

Overrides:
newPermissionCollection sample code for java.security.Permission.newPermissionCollection() definition code for java.security.Permission.newPermissionCollection() in class Permission sample code for java.security.Permission definition code for java.security.Permission
Returns:
a new PermissionCollection object suitable for storing UnresolvedPermissions.