java.lang.Objectjava.security.Permission
java.security.UnresolvedPermission
public final class UnresolvedPermission
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.
Permission,
Permissions,
PermissionCollection,
Policy,
Serialized Form| Constructor Summary | |
|---|---|
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. |
String |
getActions()
Returns the canonical string representation of the actions, which currently is the empty string "", since there are no actions for an UnresolvedPermission. |
String |
getUnresolvedActions()
Get the actions for the underlying permission that has not been resolved. |
Certificate[] |
getUnresolvedCerts()
Get the signer certificates (without any supporting chain) for the underlying permission that has not been resolved. |
String |
getUnresolvedName()
Get the target name of the underlying permission that has not been resolved. |
String |
getUnresolvedType()
Get the type (class name) of the underlying permission that has not been resolved. |
int |
hashCode()
Returns the hash code value for this object. |
boolean |
implies(Permission p)
This method always returns false for unresolved permissions. |
PermissionCollection |
newPermissionCollection()
Returns a new PermissionCollection object for storing UnresolvedPermission objects. |
String |
toString()
Returns a string describing this UnresolvedPermission. |
| Methods inherited from class java.security.Permission |
|---|
checkGuard, getName |
| Methods inherited from class java.lang.Object |
|---|
clone, finalize, getClass, notify, notifyAll, wait, wait, wait |
| Constructor Detail |
|---|
public UnresolvedPermission(String type, String name, String actions, Certificate[] certs)
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 |
|---|
public boolean implies(Permission p)
implies in class Permissionp - the permission to check against.
public boolean equals(Object obj)
To determine certificate equality, this method only compares actual signer certificates. Supporting certificate chains are not taken into consideration by this method.
equals in class Permissionobj - the object we are testing for equality with this object.
Object.hashCode(),
Hashtablepublic int hashCode()
hashCode in class PermissionObject.equals(java.lang.Object),
Hashtablepublic String getActions()
getActions in class Permissionpublic String getUnresolvedType()
public String getUnresolvedName()
null,
if there is no targe namepublic String getUnresolvedActions()
null
if there are no actionspublic Certificate[] getUnresolvedCerts()
public String toString()
toString in class Permissionpublic PermissionCollection newPermissionCollection()
newPermissionCollection in class PermissionCes informations proviennent du site de http://java.sun.com
Le contenu de cette page provient du site de Sun, et est généré depuis un cache sur l'infobrol après certains traitements automatisés. La présentation peut donc différer du document original, mais le contenu aussi. Vous pouvez utiliser ce bouton pour afficher la page originale du site de Sun :
Maintenir les pages en cache sur différents sites peut offrir plus de disponibilité.
Chaque page est indexée dans la base de donnée, ce qui permet de retrouver facilement les informations, au moyen des sommaires, du moteur de recherche interne, etc.
Des facilités sont mises en place pour que les membres de l'infobrol puissent effectuer des traductions en français des différents documents. Ceci devrait permettre aux débutants en programmation Java de consulter les API en français s'ils maîtrisent moins bien la langue de Shakespeare. Dans le cas où une traduction a été soumise, elle est disponible au moyen d'un lien en bas de page. Si la traduction a été validée, la page s'affiche par défaut en français, et un lien en bas de page permet d'atteindre la version en anglais.
Le code sur l'infobrol est automatiquement coloré selon la syntaxe, et les différents mots clés sont transformés en liens pour accéder rapidement aux informations.
Vous avez la possibilité de partager vos expériences en proposant vos propres extraits de code en utilisant le bouton "ajouter un commentaire" en bas de page. Si vous visitez simplement l'infobrol, vous avez déjà accès à cette fonction, mais si vous étes membre du brol, vous pouvez en plus utiliser des boutons supplémentaires de mise en forme, dont la coloration automatique de vos extraits de codes.
Vous pouvez modifier vos préférences dans votre profil pour ne plus afficher les interactions avec les réseaux sociaux sur ces pages.
6 mots clés dont 0 définis manuellement (plus d'information...).
Avertissement
Cette page ne possède pas encore de mots clés manuels, ceci est donc un exemple automatique (les niveaux de pertinence sont fictifs, mais les liens sont valables). Pour tester le nuage avec une page qui contient des mots définis manuellement, vous pouvez cliquer ici.Vous pouvez modifier vos préférences dans votre profil pour ne plus afficher le nuage de mots clés.
Recherche (afficher)
Utilisateur (masquer)
Navigation (masquer)
Apparence (afficher)
Stats (afficher)
Citation (masquer)