Aktualisieren und validieren Sie Java-Anwendungen

Im Folgenden werden allgemeine Schritte für die Vorbereitung einer Java EE-Anwendung aufgeführt, die derzeit in Oracle Java Cloud Service - SaaS Extension ausgeführt wird und auf Oracle WebLogic Server for OCI ausgeführt wird.

Beachten Sie die folgenden Änderungen der Anwendungsumgebung. Sie müssen Ihren Anwendungscode aktualisieren, um die verschiedenen kompatiblen Versionen zwischen den beiden Umgebungen zu berücksichtigen. Weitere Informationen zu den Unterschieden in jeder Produktversion finden Sie in der Produktdokumentation.

Fläche Oracle Java Cloud Service - SaaS Extension Oracle WebLogic Server für OCI
Oracle Java Standard Edition JDK 7 JDK 8
Oracle Java Enterprise Edition Java EE 5 Java EE 7
Oracle WebLogic Server WebLogic-Server 11g (10.3.6) WebLogic-Server 12c
Oracle Fusion Middleware Oracle Fusion Middleware 11g Release 1 (11.1.1.7.1 oder 11.1.1.9.1) Oracle Fusion Middleware 12c Release 2 (12.2.1.x)
Oracle JDeveloper Oracle JDeveloper 11g Oracle JDeveloper 12c

Beachten Sie, dass das Upgrade Ihres Oracle WebLogic Server das Upgrade von WebLogic - (Java EE-) Webservices (JAX-RS und JAX-WS) umfasst.

Erforderliche Aktualisierungs- und Validierungsschritte ausführen

Testen Sie Ihre Java-Anwendungen neu, und testen Sie sie anschließend auf die neue Umgebung.

Jeder der folgenden Schritte hebt auf hoher Ebene einen Prozess hervor, den Sie ausführen müssen, um Ihre Anwendungen zu aktualisieren und zu validieren.

  1. Identifizieren Sie gesicherte und anonyme Seiten in Ihrer vorhandenen Anwendung. Normalerweise werden Anwendungsseiten mit der CLIENT-CERT-Konfiguration in web.xml gesichert.
  2. Rollen identifizieren, die in der aktuellen Anwendung verwendet werden. ADF-Anwendungen verwenden die Datei jazn-data.xml, um Rollen zu definieren, während Java EE-Anwendungen Anwendungsrollen und Sicherheits-Constraints innerhalb der Anwendungs-Deployment-Deskriptoren in der Datei web.xml oder im Anwendungscode angeben können.
  3. Identifizieren Sie die Policys, die für die Webservicesicherheit für Ihre vorhandenen Anwendungen verwendet werden.
    Clientsicherheits-Policys für SOAP-Clientanwendungen befinden sich im Anwendungscode und umfassen in der Regel
    • oracle/wss11_saml_token_with_message_protection_client_policy
    • oracle/wss_saml_token_bearer_over_ssl_client_policy
    Die Standard-Policy für REST-Clientanwendungen ist oracle/http_saml20_token_bearer_over_ssl_client_policy.
  4. Geben Sie an, ob oder wie die Anwendung in die Fusion-basierte Oracle-Anwendung integriert ist.
    Zu den allgemeinen Mustern gehören:
    • Seite oder Links mit Application Composer-, Seitenintegration oder Page Composer-Tooling einbetten
    • Springboard mit dem Strukturwerkzeug
    • Navigation mit Navigatorkonfiguration
  5. Identifizieren Sie Anwendungsabhängigkeiten.
    Beispiel: Geben Sie eine der folgenden Abhängigkeiten an:
    • Librarys
    • SSL-Zertifikate
    • Webservices-Sicherheitszertifikate
    • Systemeigenschaften
    • Von der Anwendung erwartete Dateisystemstruktur
    • Zugangsdateneinträge im OPSS Zugangsdatenspeicher
    • E-Mail-Benachrichtigungsverwendung
  6. Exportieren Sie Daten aus dem Datenbankschema, und importieren Sie sie in den neuen Datenbankservice in Oracle Cloud Infrastructure. Beachten Sie, dass Sie für Oracle Cloud Infrastructure Database Systems Oracle Application Express (APEX) installieren und Anwendungen migrieren müssen.
    Weitere Informationen finden Sie in der Dokumentation zu Oracle Database Cloud - Database Schema Service.
  7. Konfigurieren Sie die Sicherheit der Webschicht mit Oracle Identity Cloud Service, um geschützte Anwendungsressourcen zu aktualisieren, wie in der Dokumentation zu Oracle WebLogic Server for OCI beschrieben.
  8. Rollenautorisierung konfigurieren. Integrieren Sie OPSS-Benutzer- und -Gruppen-APIs mit Oracle Identity Cloud Service, wie in der Oracle WebLogic Server for OCI-Dokumentation beschrieben.
  9. Oracle JDeveloper 12c herunterladen und installieren. Diese Version ist mit der zuvor ausgewählten Oracle WebLogic Server-Version verknüpft.
  10. Öffnen Sie Ihre vorhandenen Java EE-Anwendungen in Oracle JDeveloper 12c. JDeveloper migriert das Projekt automatisch zu 12c, einschließlich ADF-Abhängigkeiten. Weitere Einzelheiten finden Sie in der Oracle JDeveloper-Dokumentation.
  11. Stellen Sie Ihre Anwendung in Oracle WebLogic Server for OCI bereit, und validieren Sie sie:
    1. Generieren Sie Ihre WAR - oder EAR-Datei aus Oracle JDeveloper.
    2. Melden Sie sich an der Oracle WebLogic Server-Administrationskonsole an.
    3. Stellen Sie die WAR - oder EAR-Datei auf dem Cluster oder den Managed Servern der WebLogic-Domain bereit.
  12. Aktualisieren Sie bei Seitenintegrationen Anwendungs-URLs in Ihren Oracle Fusion-basierten Anwendungen, indem Sie Application Composer oder Page Composer verwenden, sofern dies für die jeweilige Anwendung angemessen ist.
  13. Validieren Sie Ihre Anwendung, indem Sie Tests in Test- oder Entwicklungsumgebungen durchführen.
    Beachten Sie, dass Sie möglicherweise die Webseiten-Sicherheit und Rollenautorisierung konfigurieren müssen, bevor Sie die Anwendungsvalidierung abschließen können, wie im nächsten Artikel beschrieben.
Konfigurieren Sie die Webseiten-Sicherheit und Rollenautorisierung in Oracle Identity Cloud Service, wie im nächsten Artikel beschrieben, bevor Sie die Anwendung in Ihrer Produktionsumgebung bereitstellen.

Probleme mit Berechtigungen diagnostizieren und beheben

Sie können feststellen, dass einige Ihrer Java-Anwendungscode AccessControlException-Fehler in der neuen Umgebung auslöst. Sie können diese Berechtigungsprobleme diagnostizieren und beheben, indem Sie Logs auf Details prüfen und dann Berechtigungsberechtigungsberechtigungen mit Oracle Enterprise Manager Fusion Middleware Control konfigurieren.

Wenn Sie codeBase definieren, um Berechtigungen zu erteilen (in Schritt 2 der folgenden Prozedur), können die folgenden Umgebungsvariablen hilfreich sein:

  • oracle.deployed.app.dir=/u01/data/domains/wls_domain/servers/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

So diagnostizieren und beheben Sie Berechtigungsprobleme:

  1. JPS-Logging aktivieren. Die Standardloggingebene reicht in der Regel nicht aus, um die Quelle von AccessControlException-Fehlern zu ermitteln. Mit einem feineren Detail in Logs können Sie die genaue Codebasis sehen, die den nicht autorisierten Vorgang ausführt.
    1. Öffnen Sie die Oracle WebLogic Server-Administrationskonsole, und blenden Sie im Baum Domainstruktur die Option Umgebung ein. Wählen Sie Server, und klicken Sie dann auf den Managed Server-Namen.
    2. Wählen Sie die Registerkarte "Serverstart", klicken Sie auf Sperren und Bearbeiten, und fügen Sie am Ende der Argumentliste die folgenden Argumente hinzu:
      -Djps.auth.debug=true
      Djps.auth.debug.verbose=true
    3. Klicken Sie auf Speichern, Änderungen aktivieren. Starten Sie dann den Managed Server neu.
    4. Replizieren Sie den Anwendungsfall, der das AccessControlException verursacht, und suchen Sie dann in der Logdatei des Managed Servers .out nach den Einträgen, die protokolliert werden. Suchen Sie nach der Zeichenfolge FAILED. Beispiel:
      [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...
      Stellen Sie sicher, dass PolicyContext, Resource/Target, Action und Permission Class mit denen übereinstimmen, die von der Ausnahme angezeigt werden.
    5. Prüfen Sie den Block CodeSource, der unmittelbar unterhalb des Log-Snippets im vorherigen Schritt angezeigt wird. Die aufgelistete Datei ist das JAR, das den Code mit der fehlenden Berechtigung ausführt. Beispiel:
      CodeSource-file:/u01/data/domains/wls_domain/servers/wls_server_1/tmp/_WL_user/oauth-client/kk4bjg/lib/PublicReportServiceWSClient-1.0.11.jar
  2. Erteilen Sie eine Berechtigung für diese Codebasis. Sie können dies mit dem WLST-Befehlszeilentool oder mit Oracle Enterprise Manager Fusion Middleware Control tun. Die folgenden Schritte zeigen, wie Sie Berechtigungen mit Oracle Enterprise Manager erteilen.
    Für Details zur Verwendung von WLST melden Sie sich bei My Oracle Support an, und suchen Sie den Artikel Doc ID 1327577.1.
    1. Melden Sie sich bei Oracle Enterprise Manager Fusion Middleware Control an, und wählen Sie im Dropdown-Menü WebLogic-Domain die Optionen Sicherheit und System-Policys. Klicken Sie auf Neue Sicherheitsberechtigung erstellen.
    2. Fügen Sie auf der Seite "Systemzugriff erstellen" unter CodeBase die codeSource-Datei hinzu, die in der Logdatei gefunden wurde.
      Ersetzen Sie Umgebungsvariablen, um die Verwendung des eigentlichen Dateipfads zu vermeiden. Beispiel: Die Variable oracle.deployed.app.dir verweist auf den Ordner _WL_user im Beispieldateipfad, der in der Beispiel-Log-Fehler-JAR-Datei des vorherigen Schritts angegeben wird. Sie können die Umgebungsvariable oracle.deployed.app.ext auch verwenden, um die Berechtigung auf alles unter dem aktuellen Pfad anzuwenden.
      Zum Beispiel:
      file:${oracle.deployed.app.dir}/MassItem28B${oracle.deployed.app.ext}
    3. Klicken Sie auf Hinzufügen. Aktivieren Sie diese Option, um Details für eine neue Berechtigungsoption einzugeben, und geben Sie die Details ein:
      • Berechtigungsklasse: oracle.security.jps.service.credstore.CredentialAccessPermission
      • Ressourcenname: context=SYSTEM,mapName=user.public.map,keyName=SaaSSystemAccount
      • Berechtigungsaktionen: Lesen
    4. Klicken Sie auf OK. Prüfen Sie die Informationen, und klicken Sie auf "OK", um die Änderungen zu speichern.
Nach Erteilung der Berechtigung ist in der Regel kein Neustart erforderlich, aber wenn das Problem immer noch auftritt, kann das Neustart des Servers es beheben. Nachdem Sie einen verweigerten Zugriffsfehler behoben haben, wird möglicherweise ein neuer Fehler in einem anderen codeSource angezeigt, da mehr von Ihrem Java-Code ausgeführt werden kann. Daher müssen Sie möglicherweise diesen Prozess der Überprüfung des Logs wiederholen, einer anderen JAR-Datei eine neue Berechtigung erteilen und anschließend mehrmals erneut testen, bis Sie alle Berechtigungsprobleme behoben haben.