Edge for Private Cloud 4.54.00 – Tool zur Änderungserkennung

Tool zur Änderungserkennung

Es wurde ein Tool zur Änderungserkennung entwickelt, um Apigee-Proxys, -Richtlinien, freigegebene Abläufe und JAR-Dateien für Ressourcen (auf Proxy-, Umgebungs- oder Organisationsebene) zu identifizieren, die während und nach der Umstellung auf Edge for Private Cloud 4.54.00 betroffen sein könnten. Dieses Tool generiert einen Bericht mit Details zu bereitgestellten Proxys, freigegebenen Abläufen und JAR-Dateien für Ressourcen, die von den Änderungen betroffen sind, und verweist auf bestimmte Anleitungen und Strategien, die für diese identifizierten Proxys oder freigegebenen Abläufe relevant sind.

Vorbereitung

  1. Zum Ausführen dieses Tools ist ein RHEL-basierter oder Rocky Linux-Computer erforderlich (siehe Installationsanforderungen für Edge).
  2. JRE 8 oder höher muss auf dem Hostcomputer installiert und richtig konfiguriert sein, damit die Skripts des Tools ausgeführt werden können.
  3. Das Tool erfordert Netzwerkzugriff auf den Endpunkt (URL) des Management Servers und gültige Administratoranmeldedaten für die Authentifizierung und den Datenabruf.
  4. Das Tool erfordert Zugriff auf ein bestimmtes Arbeitsverzeichnis (z. B. /tmp) mit ausreichend Speicherplatz und entsprechenden Lese-/Schreibberechtigungen zum Herunterladen von Bundles, Generieren von Logs und Speichern der Ausgabe.
  5. (Optional) Wenn Sie ein Upgrade von Version 4.53.00 durchführen, benötigt das Tool eine LDIF-Datei, die mit dem ldapsearch Befehl im Abschnitt OpenLDAP-Änderung – LDAP-Daten extrahieren generiert wurde, um lange RDNs zu erkennen, die 241 Zeichen/Byte überschreiten.

Tool ausführen

Nachdem alle Voraussetzungen erfüllt sind, laden Sie das Tool mit Ihren Apigee-Anmeldedaten aus dem Apigee-Repository herunter und extrahieren Sie das heruntergeladene Archiv:

curl -u uName:pWord https://software.apigee.com/apigee/change-detector/change-detector-for-4.54.00_1.0.0.zip -o /tmp/change-detector-for-4.54.00_1.0.0.zip
unzip /tmp/change-detector-for-4.54.00_1.0.0.zip

Nach Abschluss des Downloads können Sie mit dem folgenden Befehl alle verfügbaren Optionen für das Tool aufrufen:

./change-detector --help

Verwenden Sie den folgenden Befehl, um das Tool auszuführen, und ersetzen Sie die Platzhalter durch Ihre Informationen:

export APIGEE_PASSWORD=YOUR_PASSWORD
./change-detector --username YOUR_USERNAME --mgmt-url MGMT_URL --source-version SOURCE_VERSION

Geben Sie --source-version 4.53.01 an, wenn Sie direkt von Edge for Private Cloud 4.53.01 aktualisieren, um nach Änderungen in Java 21 zu suchen. Wenn Sie ein Upgrade von Version 4.53.00 durchführen, geben Sie --source-version 4.53.00 an, um eine kumulative Suche durchzuführen, die sowohl die Einstellung der Richtlinien in Version 4.53.01 als auch die Änderungen in Java 21 umfasst.

Das Tool generiert eine Ausgabe im CSV- oder JSON-Format, die direkt überprüft oder in Tabellenkalkulationsanwendungen wie Google Sheets importiert werden kann.

Toolausgabe verstehen

Der Bericht enthält die folgenden Spalten:

Organisation

Der Name der Organisation, in der sich das Artefakt befindet. Bei OpenLDAP-Änderungen ist dies None.

Umgebung

Die spezifische Umgebung (z. B. dev, test, prod) innerhalb der Organisation. Bei JAR-Dateien auf Organisationsebene ist dieses Feld N/A. Bei OpenLDAP-Änderungen ist dies None.

Proxy-Name

Der Name des API-Proxys oder des freigegebenen Ablaufs. Bei JAR-Ressourcen auf Organisationsebene wird hier der Name der Organisation angezeigt. Bei JAR-Ressourcen auf Umgebungsebene wird hier der Name der Umgebung angezeigt. Bei OpenLDAP-Änderungen wird in diesem Feld die LDAP-Entität des RDN angezeigt.

Bereich

Gibt den Bereich und die Ebene des gescannten Artefakts an:

  • proxy-level-jar: JAR-Ressourcendatei, die auf Proxyebene hochgeladen wurde (unter /resources/java).
  • env-level-jar: JAR-Ressourcendatei, die auf Umgebungsebene hochgeladen wurde (siehe Ressourcendateien).
  • org-level-jar: JAR-Ressourcendatei, die auf Organisationsebene hochgeladen wurde.
  • proxy: Richtlinie oder Konfiguration in einer API-Proxy-Version.
  • sharedflow: Richtlinie oder Konfiguration in einer freigegebenen Ablaufversion.
  • ldif: OpenLDAP-LDIF-Datei (für OpenLDAP-Prüfungen).

Überarbeitung

Die spezifische Versionsnummer des API-Proxys oder des freigegebenen Ablaufs. Bei JAR-Dateien auf Umgebungs- oder Organisationsebene ist dieses Feld N/A. Bei OpenLDAP-Änderungen ist dies None.

Richtlinienname

Der Name der spezifischen Richtlinie, die als potenzielles Problem identifiziert wurde (z. B. JavaCallout-ValidateAccount oder OASValidation-1). Bei Ressourcen auf Organisationsebene wird in diesem Feld N/A (Organization Resource) angezeigt. Bei Ressourcen auf Umgebungsebene wird in diesem Feld N/A (Environment Resource) angezeigt. Bei OpenLDAP-Änderungen ist dies None.

Richtlinientyp

Der Richtlinientyp (z. B. java-callout oder OASValidation). Bei OpenLDAP-Änderungen ist dies None.

Quellversion

Die für den Scan konfigurierte OPDK-Quellversion (4.53.00 oder 4.53.01).

Betroffene Ressource

Beschreibt die spezifische Ressource oder Bibliothek, die erkannt wurde:

  • Bei Java 21-Callout-Erkennungen: Der genaue Name der betroffenen JAR-Datei (z. B. order-transform.jar oder corba-callout.jar).
  • Bei Einstellungen in Version 4.53: deprecated library detected for NAME_OF_THE_AFFECTED_JAVA_CALLOUT_JAR.
  • Bei OAS-, JSONPath- oder OpenLDAP-Erkennungen: Das spezifische Richtlinienelement oder die Ressource (z. B. oas content type handling, wildcard expression oder LDAP RDN exceeds 241 characters).

Grund für die Erkennung

Enthält detaillierte Diagnoseinformationen dazu, warum das Element gekennzeichnet wurde:

  • Bei Java 21-Callout-Erkennungen: Die spezifische Klasse, die Zielersatzbibliothek (falls zutreffend) und die Ursache (z. B. Class: javax.xml.bind.JAXBContext | Target Library: jakarta.xml.bind-api-2.3.3.jar | Root Cause: ClassNotFoundException: JAXB API was removed from Java SE in Java 11 (JEP 320)). Wenn mehrere Probleme in derselben JAR-Datei erkannt werden, werden sie durch ; getrennt zusammengefasst.
  • Bei Einstellungen in Version 4.53: Eine Liste der referenzierten Klassen aus veralteten Bibliotheken (z. B. ['Detected use of class CLASS_NAME from JAR_NAME']).
  • Bei OAS-Validierungen: Die im Tag Source angegebene Variable (z. B. Source=response).
  • Bei JSONPath: Der genaue Ausdruck, der gekennzeichnet wurde.
  • Bei OpenLDAP: Der RDN der spezifischen LDAP-Entität, der 241 Byte oder Zeichen überschritten hat.

Sicherheit der Auswirkung

Dieses Feld gibt an, mit welcher Sicherheit das Tool einen Upgrade-Blocker identifiziert hat. Die Werte sind standardmäßig in Großbuchstaben angegeben:

  • HIGH:Das Tool hat eine inkompatible Änderung erkannt (z. B. einen Aufruf einer dauerhaft entfernten Klasse wie javax.xml.bind.JAXBContext oder sun.misc.BASE64Encoder oder einen OpenLDAP-RDN, der 241 Byte überschreitet). Es besteht eine nahezu sichere Wahrscheinlichkeit für einen Laufzeitfehler (ClassNotFoundException oder NoClassDefFoundError), wenn das Problem nicht behoben wird.
  • MEDIUM: Das Tool hat ein Muster erkannt, das eine Überprüfung durch Entwickler und eine funktionale Überprüfung erfordert:
    • Bei Java-Callouts: Gekennzeichnet unter METHOD_SIGNATURE_MODIFICATION (z. B. org.w3c.dom.Document), wobei die Klasse in Java 21 vorhanden ist, bestimmte Methoden aber möglicherweise geändert oder eingestellt wurden.
    • Bei OASValidation-Richtlinien: Gekennzeichnet, wenn dynamische Laufzeitvariablen im <Source> Element verwendet werden (z. B. Source=response). In diesem Fall muss Trace erfasst werden, um die aufgelösten Variablen während der Proxy-Ausführung zu beobachten.

Beispielberichte zur Erkennung

Bericht zum gezielten Java 21-Scan (--source-version 4.53.01)

Das folgende Beispiel zeigt die Berichtsausgabe für ein Upgrade von OPDK 4.53.01 auf 4.54.00:

Organisation Umgebung Proxy-Name Bereich Überarbeitung Richtlinienname Richtlinientyp Quellversion Betroffene Ressource Grund für die Erkennung Sicherheit der Auswirkung
my-org prod order-processing proxy-level-jar 12 JavaCallout-ParseXml java-callout 4.53.01 jaxb-callout.jar Class: javax.xml.bind.JAXBContext | Cause: ClassNotFoundException..... HIGH
my-org stage legacy-corba-bridge proxy-level-jar 1 JavaCallout-CorbaClient java-callout 4.53.01 corba-callout.jar Class: org.omg.CORBA.ORB | Cause: ClassNotFoundException..... HIGH
my-org prod prod env-level-jar N/A N/A (Environment Resource) java-callout 4.53.01 env-security-utils.jar Class: sun.misc.BASE64Encoder | Cause: ClassNotFoundException..... HIGH
my-org N/A my-org org-level-jar N/A N/A (Organization Resource) java-callout 4.53.01 cglib-nodep-2.2.jar Class: net.sf.cglib.proxy.Enhancer | Cause: IllegalArgumentException..... HIGH
my-org prod invoice-parser proxy-level-jar 5 JavaCallout-ParseInvoice java-callout 4.53.01 invoice-dom.jar Class: org.w3c.dom.Document | Cause: Modified methods in Java 21..... MEDIUM
my-org prod payment-gateway proxy-level-jar 3 JavaCallout-SignToken java-callout 4.53.01 payment-lib.jar Class: com.mycompany.crypto.OldProvider | Target: custom-crypto-3.0.jar..... HIGH

Bericht zum kumulativen Scan (--source-version 4.53.00)

Das folgende Beispiel zeigt die Berichtsausgabe für ein Upgrade von OPDK 4.53.00 auf 4.54.00:

Organisation Umgebung Proxy-Name Bereich Überarbeitung Richtlinienname Richtlinientyp Quellversion Betroffene Ressource Grund für die Erkennung Sicherheit der Auswirkung
my-org prod customer-portal proxy 3 ValidateOpenAPISpec OASValidation 4.53.00 oas content type handling Source=response MEDIUM
my-org prod accounts-api proxy-level-jar 4 JavaCallout-ValidateAccount java-callout 4.53.00 deprecated: custom-validator.jar..... ['Detected use of class org.apache.commons.beanutils.....'] HIGH
my-org prod order-processing proxy-level-jar 12 JavaCallout-ParseXml java-callout 4.53.00 jaxb-callout.jar Class: javax.xml.bind.JAXBContext | Cause: ClassNotFoundException..... HIGH
my-org None None ldif None None None 4.53.00 LDAP RDN exceeds 241 characters cn=very-long-rdn-name-exceeding-limit..... HIGH

Informationen zur Behebung der identifizierten Probleme finden Sie unter Strategien zur Behebung von Problemen.