Mettez à jour et validez vos applications Java

Voici les étapes globales de préparation d'une application Java EE en cours d'exécution sur Oracle Java Cloud Service - SaaS Extension, à exécuter sur Oracle WebLogic Server for OCI.

Prenez note des modifications suivantes apportées à l'environnement d'application. Vous devrez mettre à jour votre code application pour tenir compte des différentes versions compatibles entre les deux environnements. Pour plus d'informations sur les différences dans chaque version du produit, reportez-vous à la documentation du produit.

Zone Oracle Java Cloud Service - SaaS Extension Oracle WebLogic Server pour OCI
Oracle Java Standard Edition JDK 7 JDK 8
Oracle Java Enterprise Edition Java EE 5 Java EE 7
Oracle WebLogic Server Serveur WebLogic 11g (10.3.6) Serveur WebLogic 12c
Oracle Fusion Middleware Oracle Fusion Middleware 11g version 1 (11.1.1.7.1 ou 11.1.1.9.1) Oracle Fusion Middleware 12c version 2 (12.2.1.x)
Oracle JDeveloper Oracle JDeveloper 11g Oracle JDeveloper 12c

Notez que la mise à niveau d'Oracle WebLogic Server inclut la mise à niveau des services Web WebLogic (Java EE) (JAX-RS et JAX-WS).

Effectuer les étapes de mise à jour et de validation requises

Réacteur, puis testez vos applications Java pour le nouvel environnement.

Chacune des étapes suivantes met en évidence à un niveau élevé un processus que vous devez effectuer pour mettre à jour et valider vos applications.

  1. Identifiez les pages sécurisées et anonymes dans votre application existante. Habituellement, les pages d'application sont sécurisées à l'aide de la configuration CLIENT-CERT dans web.xml.
  2. Identifiez les rôles utilisés dans l'application en cours. Les applications ADF utilisent le fichier jazn-data.xml pour définir des rôles, tandis que les applications Java EE peuvent spécifier des rôles d'application et des contraintes de sécurité dans les descripteurs de déploiement d'application du fichier web.xml ou dans le code d'application.
  3. Identifiez les stratégies utilisées pour la sécurité des services Web pour vos applications existantes.
    Les stratégies de sécurité client pour les applications client SOAP sont situées dans le code application et incluent généralement :
    • oracle/wss11_saml_token_with_message_protection_client_policy
    • oracle/wss_saml_token_bearer_over_ssl_client_policy
    La stratégie par défaut pour les applications client REST est oracle/http_saml20_token_bearer_over_ssl_client_policy
  4. Indiquez si l'application est intégrée à l'application Oracle basée sur Fusion ou comment elle l'est.
    Les modèles courants sont les suivants :
    • Intégration d'une page ou de liens à l'aide d'Application Composer, d'une intégration de page ou d'un outil Page Composer
    • Tableau de bord à l'aide de l'outil Structure
    • Navigation à l'aide de la configuration du navigateur
  5. Identifiez les dépendances d'application.
    Par exemple, identifiez l'une des dépendances suivantes :
    • Bibliothèques
    • Certificats SSL
    • Certificats de sécurité des services Web
    • Propriétés système
    • Structure du système de fichiers attendue par l'application
    • Entrées d'informations d'identification dans la banque d'informations d'identification OPSS
    • Utilisation des notifications par courriel
  6. Exportez des données à partir du schéma de base de données et importez-les dans le nouveau service de base de données sur Oracle Cloud Infrastructure. Pour Oracle Cloud Infrastructure Database Systems, vous devrez installer Oracle Application Express (APEX) et migrer des applications.
    Pour plus de détails, reportez-vous à la documentation Oracle Database Cloud - Database Schema Service.
  7. Configurez la sécurité de niveau Web à l'aide d'Oracle Identity Cloud Service pour mettre à jour les ressources d'application protégées, comme décrit dans la documentation Oracle WebLogic Server for OCI.
  8. Configurer l'autorisation de rôle. Intégrez des API de groupe et d'utilisateur OPSS à Oracle Identity Cloud Service, comme décrit dans la documentation Oracle WebLogic Server for OCI.
  9. Téléchargez et installez Oracle JDeveloper 12c. Cette version est alignée sur la version Oracle WebLogic Server sélectionnée précédemment.
  10. Ouvrez vos applications Java EE existantes dans Oracle JDeveloper 12c. JDeveloper migrera automatiquement le projet vers 12c, y compris les dépendances ADF. Pour plus de détails, consultez la documentation Oracle JDeveloper.
  11. Déployez et validez votre application vers Oracle WebLogic Server for OCI :
    1. Générez votre fichier WAR ou EAR à partir d'Oracle JDeveloper.
    2. Connectez-vous à la console d'administration Oracle WebLogic Server.
    3. Déployez le fichier WAR ou EAR vers le cluster ou les serveurs gérés du domaine WebLogic.
  12. Pour les intégrations de page, mettez à jour les URL d'application dans vos applications Oracle Fusion à l'aide d'Application Composer ou de Page Composer, selon le cas pour l'application spécifique.
  13. Validez votre application en effectuant des tests sur des environnements de test ou de développement.
    Vous devrez peut-être configurer la sécurité de niveau Web et l'autorisation de rôle avant de pouvoir effectuer la validation de l'application, comme décrit dans l'article suivant.
Configurez la sécurité de niveau Web et l'autorisation de rôle dans Oracle Identity Cloud Service comme décrit dans le prochain article avant de déployer votre application dans votre environnement de production.

Diagnostiquer et résoudre des problèmes d'autorisations

Il se peut que certains de vos codes d'application Java génèrent des erreurs AccessControlException dans le nouvel environnement. Vous pouvez diagnostiquer et résoudre ces problèmes d'autorisation en vérifiant les journaux pour plus de détails, puis en configurant les autorisations à l'aide d'Oracle Enterprise Manager Fusion Middleware Control.

Lorsque vous définissez codeBase pour accorder des droits d'accès (à l'étape 2 de la procédure suivante), les variables d'environnement suivantes peuvent être utiles :

  • oracle.deployed.app.dir=/u01/data/domains/wls_domain/server/wls_adminserver/tmp/_WL_user
  • oracle.deployed.app.ext=/-
  • common.components.home=/u01/app/oracle/middleware/oracle_common
  • domain.home=/u01/data/domains/wls_domain

Pour diagnostiquer et résoudre des problèmes d'autorisations, procédez comme suit :

  1. Activer la journalisation JPS. Le niveau de journalisation par défaut n'est généralement pas suffisant pour repérer la source des erreurs AccessControlException. L'utilisation d'un détail plus précis sur les journaux vous permet de voir la base de code exacte qui exécute l'opération non autorisée.
    1. Ouvrez la console d'administration Oracle WebLogic Server et, dans l'arborescence Structure de domaine, développez Environnement. Sélectionnez Serveurs, puis cliquez sur le nom du serveur géré.
    2. Sélectionnez l'onglet Démarrage du serveur, cliquez sur Verrouiller et modifier, puis ajoutez les arguments suivants à la fin de la liste d'arguments :
      -Djps.auth.debug=true
      Djps.auth.debug.verbose=true
    3. Cliquez sur Enregistrer, puis sur Activer les modifications. Redémarrez ensuite le serveur géré.
    4. Répétez le cas d'utilisation qui cause AccessControlException, puis recherchez les entrées journalisées dans le fichier journal .out du serveur géré. Recherchez la chaîne FAILED. Par exemple :
      [OpsAuth] Check Permission
      	  PolicyContext:        [oauth-client]
      	  Resource/Target:      [context=SYSTEM,mapName=user.public.map,keyName=SaaSSystemAccount]
      	  Action:	        [read]
      	  Permission Class:     [oracle.security.jps.service.credstore.CredentialAccessPermission]
      	  Result:	        [FAILED]
      	  Evaluater:	     [ACC]
      	  Failed ProtectionDomain:ClassLoader-weblogic.utils.classloaders.GenericClassLoader@5Da796tt...
      Assurez-vous que le contexte de stratégie, la ressource/cible, l'action et la classe d'autorisations correspondent à ceux affichés par l'exception.
    5. Vérifiez le bloc CodeSource affiché immédiatement sous le fragment de journal de l'étape précédente. Le fichier répertorié est le fichier JAR exécutant le code avec l'autorisation manquante. Par exemple :
      CodeSource-file:/u01/data/domains/wls_domain/servers/wls_server_1/tmp/_WL_user/oauth-client/kk4bjg/lib/PublicReportServiceWSClient-1.0.11.jar
  2. Accordez une autorisation pour cette base de code. Vous pouvez le faire à l'aide de l'outil de ligne de commande WLST ou à l'aide d'Oracle Enterprise Manager Fusion Middleware Control. Les étapes suivantes montrent comment octroyer des droits d'accès à l'aide d'Oracle Enterprise Manager.
    Pour plus de détails sur l'utilisation de WLST, connectez-vous à My Oracle Support et recherchez l'article Doc ID 1327577.1.
    1. Connectez-vous à Oracle Enterprise Manager Fusion Middleware Control et dans le menu déroulant Domaine WebLogic, sélectionnez Sécurité, puis Stratégies système. Cliquez sur Créer une autorisation de sécurité.
    2. Dans la page Créer une autorisation système, sous CodeBase, ajoutez le fichier codeSource trouvé dans le fichier journal.
      Remplacez les variables d'environnement pour éviter d'utiliser le chemin réel du fichier. Par exemple, la variable oracle.deployed.app.dir pointe vers le dossier _WL_user dans l'exemple de chemin de fichier indiqué dans l'exemple de fichier JAR d'erreur de journal de l'étape précédente. Vous pouvez également utiliser la variable d'environnement oracle.deployed.app.ext pour appliquer l'autorisation à tout ce qui se trouve sous le chemin en cours.
      Par exemple :
      file:${oracle.deployed.app.dir}/MassItem28B${oracle.deployed.app.ext}
    3. Cliquez sur Ajouter. Cochez la case Sélectionner ici pour saisir les détails d'une nouvelle option d'autorisation et remplissez les détails :
      • Classe d'autorisation : oracle.security.jps.service.credstore.CredentialAccessPermission
      • Nom de ressource : context=SYSTEM,mapName=user.public.map,keyName=SaaSSystemAccount
      • Actions d'autorisation : lire
    4. Cliquez sur OK. Vérifiez les informations et cliquez sur OK pour enregistrer les modifications.
Après l'octroi de l'autorisation, généralement aucun redémarrage n'est nécessaire, mais si le problème se produit encore, redémarrer le serveur peut le résoudre. Après avoir résolu une erreur d'accès refusé, vous pouvez maintenant voir une nouvelle erreur sur un autre codeSource, car plus de votre code Java est en mesure d'exécuter. Par conséquent, vous devrez peut-être répéter ce processus de révision du journal, accorder une nouvelle autorisation à un autre fichier JAR, puis réessayer plusieurs fois jusqu'à ce que vous ayez résolu tous les problèmes d'autorisations.