- All Implemented Interfaces:
- Serializable,- Guard
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(java.security.Permission)
 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.
- Since:
- 1.2
- See Also:
- 
Constructor SummaryConstructorsConstructorDescriptionUnresolvedPermission(String type, String name, String actions, Certificate[] certs) Creates a newUnresolvedPermissioncontaining the permission information needed later to actually create a Permission of the specified class, when the permission is resolved.
- 
Method SummaryModifier and TypeMethodDescriptionbooleanChecks twoUnresolvedPermissionobjects for equality.Returns the canonical string representation of the actions, which currently is the empty string "", since there are no actions for anUnresolvedPermission.Get the actions for the underlying permission that has not been resolved.Get the signer certificates (without any supporting chain) for the underlying permission that has not been resolved.Get the target name of the underlying permission that has not been resolved.Get the type (class name) of the underlying permission that has not been resolved.inthashCode()Returns the hash code value for this object.booleanThis method always returnsfalsefor unresolved permissions.Returns a new PermissionCollection object for storingUnresolvedPermissionobjects.toString()Returns a string describing thisUnresolvedPermission.Methods declared in class java.security.PermissioncheckGuard, getName
- 
Constructor Details- 
UnresolvedPermissionCreates a newUnresolvedPermissioncontaining 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 UnresolvedPermission.
 
 
- 
- 
Method Details- 
impliesThis method always returnsfalsefor unresolved permissions. That is, anUnresolvedPermissionis never considered to imply another permission.- Specified by:
- impliesin class- Permission
- Parameters:
- p- the permission to check against.
- Returns:
- false.
 
- 
equalsChecks twoUnresolvedPermissionobjects for equality. Checks thatobjis anUnresolvedPermission, 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:
- equalsin class- Permission
- Parameters:
- obj- the object we are testing for equality with this object.
- Returns:
- true if objis anUnresolvedPermission, and has the same type (class) name, permission name, actions, and certificates as this object.
- See Also:
 
- 
hashCodepublic int hashCode()Returns the hash code value for this object.- Specified by:
- hashCodein class- Permission
- Returns:
- a hash code value for this object.
- See Also:
 
- 
getActionsReturns the canonical string representation of the actions, which currently is the empty string "", since there are no actions for anUnresolvedPermission. That is, the actions for the permission that will be created when thisUnresolvedPermissionis resolved may be non-null, but anUnresolvedPermissionitself is never considered to have any actions.- Specified by:
- getActionsin class- Permission
- Returns:
- the empty string "".
 
- 
getUnresolvedTypeGet 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
 
- 
getUnresolvedNameGet 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 target name
- Since:
- 1.5
 
- 
getUnresolvedActionsGet the actions for the underlying permission that has not been resolved.- Returns:
- the actions for the underlying permission that
          has not been resolved, or nullif there are no actions
- Since:
- 1.5
 
- 
getUnresolvedCertsGet 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
 
- 
toStringReturns a string describing thisUnresolvedPermission. The convention is to specify the class name, the permission name, and the actions, in the following format: '(unresolved "ClassName" "name" "actions")'.- Overrides:
- toStringin class- Permission
- Returns:
- information about this UnresolvedPermission.
 
- 
newPermissionCollectionReturns a new PermissionCollection object for storingUnresolvedPermissionobjects.- Overrides:
- newPermissionCollectionin class- Permission
- Returns:
- a new PermissionCollection object suitable for
 storing UnresolvedPermissions.
 
 
-