Activation d'un gestionnaire de sécurité Java

Par défaut, les applications Java™ n'ont aucune restriction de sécurité placée sur les activités demandées de l'API Java. Pour utiliser la sécurité Java qu'une application Java évite d'exécuter des actions potentiellement dangereuses, vous pouvez activer un gestionnaire de sécurité pour la JVM dans lequel l'application est exécutée.

Pourquoi et quand exécuter cette tâche

Le gestionnaire de sécurité impose une règle de sécurité qui correspond à un ensemble de droits (privilèges d'accès système) qui sont attribués aux sources des codes. Un fichier de règles par défaut est fourni avec la plateforme Java. Toutefois, pour activer les applications Java afin qu'elles s'exécutent correctement dans CICS lorsque la sécurité Java est active, vous devez indiquer un fichier de règles supplémentaire qui attribue à CICS les droits requis pour exécuter l'application.

Vous devez indiquer ce fichier de règles supplémentaire pour chaque type de JVM dont le gestionnaire de sécurité est activé. CICS fournit quelques exemples que vous pouvez utiliser pour créer vos propres règles.

Remarques : L'activation d'un gestionnaire de sécurité Java n'est pas prise en charge dans un serveur Liberty JVM.
  • L'exemple d'agent de sécurité OSGi crée un bundle de middleware OSGi appelé com.ibm.cics.server.examples.security dans votre projet contenant un profil de sécurité. Ce profil s'applique à tous les bundles OSGi de l'infrastructure dans laquelle il est installé.
  • Le fichier example.permissions contient des droits spécifiques à l'exécution d'applications dans un serveur JVM, notamment un droit de vérification permettant vérifier que les applications n'utilisent pas la méthode System.exit().
  • CICS doit disposer d'un accès en lecture et d'exécution à ce répertoire dans zFS, dans lequel vous déployez le bundle OSGi.

Pour les applications exécutées dans l'infrastructure OSGi d'un serveur JVM :

Procédure

  1. Créez un projet de plug-in dans CICS Explorer SDK et sélectionnez l'exemple d'agent de sécurité OSGi fourni.
  2. Dans le projet, sélectionnez le fichier example.permissions afin de modifier les droits de votre règle de sécurité.
    1. Vérifiez que les répertoires d'installation CICS zFS et DB2 sont correctement indiqués.
    2. Ajoutez des droits, si nécessaire.
  3. Déployez le bundle OSGi dans un répertoire approprié de zFS, par exemple /u/bundles.
  4. Editez le profil JVM du serveur JVM pour ajouter le bundle OSGi à l'option OSGI_BUNDLES avant n'importe quel autre bundle :
    • OSGI_BUNDLES=/u/bundles/com.ibm.cics.server.examples.security_1.0.0.jar
  5. Ajoutez la propriété Java au profil JVM pour activer la sécurité :
    • -Djava.security.policy=all.policy
  6. Ajoutez la variable d'environnement Java suivante au profil JVM afin d'activer la sécurité dans l'infrastructure OSGi :
    • org.osgi.framework.security=osgi
  7. Pour permettre à l'infrastructure OSGi de démarrer avec la sécurité Java 2, ajoutez la règle suivante :
    • grant { permission java.security.AllPermission; };
  8. Sauvegardez vos changements et activez la ressource JVMSERVER pour installer le bundle de middleware dans le serveur JVM.
  9. Facultatif : Activez la sécurité Java 2.
    1. Pour activer un mécanisme de règle de sécurité Java 2, ajoutez-le au profil JVM approprié. Vous devez également éditer votre règle de sécurité Java 2 pour accorder les droits d'accès appropriés.
    2. Pour utiliser JDBC ou SQLJ à partir d'une application Java avec un mécanisme de règle de sécurité Java 2 actif, utilisez IBM® Data Server Driver for JDBC and SQLJ.
    3. Pour activer un mécanisme de règle de sécurité Java 2, éditez le profil JVM. explique comment configurer une règle de sécurité Java 2.
    4. Editez la règle de sécurité Java 2 pour accorder des droits d'accès au pilote JDBC en ajoutant les lignes indiquées dans l'exemple 1. A la place de db2xxx, indiquez un répertoire sous lequel toutes vos bibliothèques DB2 sont situées. Les droits d'accès sont appliquées à tous les répertoires et fichiers figurant sous ce niveau. Cela vous permet d'utiliser JDBC et SQLJ.
    5. Editez la règle de sécurité Java 2 pour accorder des droits de lecture en ajoutant les lignes indiquées dans l'exemple 2. Si vous n'ajoutez pas de droits de lecture, l'exécution d'un programme Java génère des exceptions AccessControlExceptions et produit des résultats imprévisibles. Vous pouvez utiliser JDBC et SQLJ avec une règle de sécurité Java 2.
    Exemple 1 :
    grant codeBase "file:/usr/lpp/db2xxx/-" {
      permission java.security.AllPermission;
    };   
    Exemple 2 :
    grant {
    
    // allows anyone to read properties
    permission java.util.PropertyPermission "*", "read";
    
    };

Résultats

Lorsque l'application Java est appelée, la JVM détermine la source du code de la classe et consulte la règle de sécurité avant d'octroyer les droits adéquats à la classe.