Droits d'accès au fichier client.policy
La sécurité Java™ 2 utilise plusieurs fichiers de règles pour déterminer les droits accordés à chaque programme Java.
- Le fichier client.policy est un fichier de règles par défaut partagé par tous les conteneurs client WebSphere Application Server et les applets installés sur un noeud.
- L'ensemble des droits d'accès contenus dans les fichiers java.policy et client.policy sont accordés à tous les conteneurs client WebSphere Application Server et à tous les applets exécutés sur le noeud.
- Le fichier client.policy n'est pas un fichier de configuration géré par le référentiel et le service de réplication des fichiers. Les modifications apportées à ce fichier sont locales et ne sont pas répliquées sur l'autre machine.
- Le fichier client.policy fourni par WebSphere Application Server se trouve dans le répertoire racine_profil/propriétés/client.policy.
- Si les droits d'accès par défaut d'un client (ensemble des droits d'accès définis dans les fichiers java.policy et client.policy) sont suffisants, aucune action n'est requise. La règle client par défaut est sélectionnée automatiquement.
- Si un changement spécifique s'impose pour certains conteneurs client et applets d'un noeud, modifiez le fichier client.policy à l'aide de l'outil de règles. Pour modifier les fichiers de règles, voir Utilisation de PolicyTool pour éditer des fichiers de règles pour la sécurité Java 2. Les modifications apportées au fichier client.policy sont valables en local, au niveau du noeud.
Ce fichier contient les droits d'accès par défaut suivants :
![[AIX Solaris HP-UX Linux Windows]](../images/dist.gif)
![[z/OS]](../images/ngzos.gif)
grant codeBase "file:${was.install.root}/java/ext/*" {
permission java.security.AllPermission;
};
// JDK classes
grant codeBase "file:${was.install.root}/java/ext/-" {
permission java.security.AllPermission;
};
grant codeBase "file:${was.install.root}/java/tools/ibmtools.jar" {
permission java.security.AllPermission;
};
grant codeBase "file:/QIBM/ProdData/Java400/jdk14/lib/tools.jar" {
permission java.security.AllPermission;
};
// classes système WebSphere
grant codeBase "file:${racine.installation.was}/lib/-" {
permission java.security.AllPermission;
};
grant codeBase "file:${was.install.root}/plugins/-" {
permission java.security.AllPermission;
};
grant codeBase "file:${racine.installation.was}/classes/-" {
permission java.security.AllPermission;
};
grant codeBase "file:${racine.installation.was}/installedConnectors/-" {
permission java.security.AllPermission;
};
grant codeBase "file:${user.install.root}/installedConnectors/-" {
permission java.security.AllPermission;
};
grant codeBase "file:${was.install.root}/installedChannels/-" {
permission java.security.AllPermission;
};
// Droits J2EE 1.4 pour les applications de conteneur client
// dans $WAS_HOME/installedApps
grant codeBase "file:${user.install.root}/installedApps/-" {
//droits d'accès au client d'application
permission java.awt.AWTPermission "accessClipboard";
permission java.awt.AWTPermission "accessEventQueue";
permission java.awt.AWTPermission "showWindowWithoutWarningBanner";
permission java.lang.RuntimePermission "exitVM";
permission java.lang.RuntimePermission "loadLibrary";
permission java.lang.RuntimePermission "queuePrintJob";
permission java.net.SocketPermission "*", "connect";
permission java.net.SocketPermission "localhost:1024-", "accept,listen";
permission java.io.FilePermission "*", "read,write";
permission java.util.PropertyPermission "*", "read";
};
// droits d'accès J2EE 1.4 pour conteneur client - codebase du fichier EAR étendu
grant codeBase "file:${com.ibm.websphere.client.applicationclient.archivedir}/-" {
permission java.awt.AWTPermission "accessClipboard";
permission java.awt.AWTPermission "accessEventQueue";
permission java.awt.AWTPermission "showWindowWithoutWarningBanner";
permission java.lang.RuntimePermission "exitVM";
permission java.lang.RuntimePermission "loadLibrary";
permission java.lang.RuntimePermission "queuePrintJob";
permission java.net.SocketPermission "*", "connect";
permission java.net.SocketPermission "localhost:1024-", "accept,listen";
permission java.io.FilePermission "*", "read,write";
permission java.util.PropertyPermission "*", "read";
};
![[IBM i]](../images/iseries.gif)
grant codeBase "file:${was.install.root}/java/ext/*" {
permission java.security.AllPermission;
};
// JDK classes
grant codeBase "file:${was.install.root}/java/ext/-" {
permission java.security.AllPermission;
};
// Permet d'utiliser les extensions ibm jdk avec j9
grant codeBase "file:${was.install.root}/java/extj9/-" {
permission java.security.AllPermission;
};
// Permet d'utiliser des outils sun et ibm
grant codeBase "file:${was.install.root}/java/tools/-" {
permission java.security.AllPermission;
};
// classes système WebSphere
grant codeBase "file:${racine.installation.was}/lib/-" {
permission java.security.AllPermission;
};
grant codeBase "file:${was.install.root}/plugins/-" {
permission java.security.AllPermission;
};
grant codeBase "file:${racine.installation.was}/classes/-" {
permission java.security.AllPermission;
};
grant codeBase "file:${racine.installation.was}/installedConnectors/-" {
permission java.security.AllPermission;
};
grant codeBase "file:${user.install.root}/installedConnectors/-" {
permission java.security.AllPermission;
};
grant codeBase "file:${was.install.root}/installedChannels/-" {
permission java.security.AllPermission;
};
grant codeBase "file:${was.install.root}/util/-" {
permission java.security.AllPermission;
};
grant codeBase "file:${user.install.root}/lib/-" {
permission java.security.AllPermission;
};
grant codeBase "file:${user.install.root}/classes/-" {
permission java.security.AllPermission;
};
// Droits J2EE 1.4 pour les applications de conteneur client dans $WAS_HOME/installedApps
grant codeBase "file:${user.install.root}/installedApps/-" {
//droits d'accès au client d'application
permission java.awt.AWTPermission "accessClipboard";
permission java.awt.AWTPermission "accessEventQueue";
permission java.awt.AWTPermission "showWindowWithoutWarningBanner";
permission java.lang.RuntimePermission "exitVM";
permission java.lang.RuntimePermission "loadLibrary";
permission java.lang.RuntimePermission "queuePrintJob";
permission java.net.SocketPermission "*", "connect";
permission java.net.SocketPermission "localhost:1024-", "accept,listen";
permission java.io.FilePermission "*", "read,write";
permission java.util.PropertyPermission "*", "read";
};
// droits d'accès J2EE 1.4 pour conteneur client - codebase du fichier EAR étendu
grant codeBase "file:${com.ibm.websphere.client.applicationclient.archivedir}/-" {
permission java.awt.AWTPermission "accessClipboard";
permission java.awt.AWTPermission "accessEventQueue";
permission java.awt.AWTPermission "showWindowWithoutWarningBanner";
permission java.lang.RuntimePermission "exitVM";
permission java.lang.RuntimePermission "loadLibrary";
permission java.lang.RuntimePermission "queuePrintJob";
permission java.net.SocketPermission "*", "connect";
permission java.net.SocketPermission "localhost:1024-", "accept,listen";
permission java.io.FilePermission "*", "read,write";
permission java.util.PropertyPermission "*", "read";
};
L'ensemble des applets et des conteneurs client sur le noeud local reçoivent des droits d'accès à jour au moment de l'exécution. Si certains conteneurs client ou applets installés sur un noeud requièrent des droits d'accès non définis en tant que valeurs par défaut dans le fichier java.policy et le fichier par défaut client.policy, mettez à jour le fichier client.policy. Si le droit d'accès n'est pas défini, l'exception java.security.AccessControlException est générée. Les droits d'accès manquants sont répertoriés dans les données de l'exception, par exemple,
![[AIX Solaris HP-UX Linux Windows]](../images/dist.gif)
![[z/OS]](../images/ngzos.gif)
java.security.AccessControlException: access denied (java.io.FilePermission
C:\WebSphere\AppServer\java\jre\lib\ext\mail.jar read)
![[IBM i]](../images/iseries.gif)
java.security.AccessControlException: access denied (java.io.FilePermission
racine_serveur_app/Base/lib/mail-impl.jar read)
Les deux lignes précédentes de l'exemple doivent être sur une seule ligne, mais sont présentées sur deux lignes à des fins d'illustration.
![[AIX Solaris HP-UX Linux Windows]](../images/dist.gif)
![[z/OS]](../images/ngzos.gif)
grant codebase "file:user_client_installed_location" {permission
java.io.FilePermission "C:\WebSphere\AppServer\java\jre\lib\ext\mail.jar", "read"; };
![[IBM i]](../images/iseries.gif)
grant codebase "file:user_client_installed_location" { permission
java.io.FilePermission "app_server_root/lib/mail-impl.jar", "read"; };
Pour savoir s'il faut ajouter un droit d'accès, consultez la rubrique relative à l'exception de contrôle d'accès pour la sécurité Java 2.
Si vous mettez à jour le fichier de règles, vous devez relancer le navigateur et toutes les applications client.