Narzędzie do wykrywania zmian w Edge dla chmury prywatnej w wersji 4.54.00

Narzędzie do wykrywania zmian

Zbudowano narzędzie do wykrywania zmian, które identyfikuje serwery proxy Apigee, zasady, współdzielone przepływy i pliki JAR zasobów (na poziomie serwera proxy, środowiska lub organizacji), które mogą zostać naruszone podczas i po przejściu na Edge dla chmury prywatnej 4.54.00. To narzędzie generuje raport zawierający szczegółowe informacje o wdrożonych serwerach proxy, współdzielonych przepływach i plikach JAR zasobów, których dotyczą zmiany, oraz wskazuje konkretne przewodniki i strategie dotyczące zidentyfikowanych serwerów proxy lub współdzielonych przepływów.

Wymagania wstępne

  1. Do uruchomienia tego narzędzia wymagana jest maszyna z systemem RHEL lub Rocky Linux (zobacz wymagania dotyczące instalacji Edge).
  2. Aby umożliwić uruchamianie skryptów narzędzia, na maszynie hosta musi być zainstalowany i prawidłowo skonfigurowany JRE 8 lub nowszy.
  3. Narzędzie wymaga dostępu do sieci do punktu końcowego (adresu URL) serwera zarządzania oraz prawidłowych danych logowania administratora do uwierzytelniania i pobierania danych.
  4. Narzędzie wymaga dostępu do wyznaczonego katalogu roboczego (np. /tmp) z wystarczającą ilością miejsca na dysku oraz odpowiednimi uprawnieniami do odczytu i zapisu, aby pobierać pakiety, generować logi i przechowywać dane wyjściowe.
  5. (Opcjonalnie) Podczas uaktualniania z wersji 4.53.00 narzędzie wymaga pliku LDIF wygenerowanego za pomocą polecenia ldapsearch w sekcji Zmiana OpenLDAP – wyodrębnianie danych LDAP, aby wykryć długie nazwy wyróżniające przekraczające 241 znaków/bajtów.

Uruchamianie narzędzia

Gdy spełnisz wszystkie wymagania wstępne, pobierz narzędzie z repozytorium Apigee, używając danych logowania Apigee, i rozpakuj pobrane archiwum:

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

Po zakończeniu pobierania możesz uruchomić to polecenie, aby wyświetlić wszystkie dostępne opcje narzędzia:

./change-detector --help

Aby uruchomić narzędzie, użyj tego polecenia i zastąp symbole zastępcze swoimi informacjami:

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

Jeśli uaktualniasz bezpośrednio z Edge dla chmury prywatnej 4.53.01, określ --source-version 4.53.01, aby wyszukać zmiany w Javie 21. Jeśli uaktualniasz z wersji 4.53.00, określ --source-version 4.53.00, aby przeprowadzić skumulowane skanowanie obejmujące zarówno wycofanie zasad w wersji 4.53.01, jak i zmiany w Javie 21.

Narzędzie generuje dane wyjściowe w formacie CSV lub JSON, które można bezpośrednio sprawdzić lub zaimportować do aplikacji arkuszy kalkulacyjnych, takich jak Arkusze Google.

Interpretowanie danych wyjściowych narzędzia

Raport zawiera te kolumny:

Organizacja

Nazwa organizacji, w której znajduje się artefakt. W przypadku zmian w OpenLDAP jest to None.

Środowisko

Konkretne środowisko (np. dev, test, prod) w organizacji. W przypadku plików JAR na poziomie organizacji to pole ma wartość N/A. W przypadku zmian w OpenLDAP jest to None.

Nazwa serwera proxy

Nazwa serwera proxy interfejsu API lub współdzielonego przepływu. W przypadku zasobów JAR na poziomie organizacji wyświetla nazwę organizacji. W przypadku zasobów JAR na poziomie środowiska wyświetla nazwę środowiska. W przypadku zmian w OpenLDAP to pole pokazuje jednostkę LDAP nazwy wyróżniającej.

Zakres

Określa zakres i poziom skanowanego artefaktu:

  • proxy-level-jar: plik JAR zasobu przesłany na poziomie serwera proxy (w katalogu /resources/java).
  • env-level-jar: plik JAR zasobu przesłany na poziomie środowiska (zobacz Pliki zasobów).
  • org-level-jar: plik JAR zasobu przesłany na poziomie organizacji.
  • proxy: zasada lub konfiguracja w wersji serwera proxy interfejsu API.
  • sharedflow: zasada lub konfiguracja w wersji współdzielonego przepływu.
  • ldif: plik w formacie LDIF OpenLDAP (w przypadku sprawdzania OpenLDAP).

Wersja

Konkretny numer wersji serwera proxy interfejsu API lub współdzielonego przepływu. W przypadku plików JAR na poziomie środowiska lub organizacji to pole ma wartość N/A. W przypadku zmian w OpenLDAP jest to None.

Nazwa zasady

Nazwa konkretnej zasady, która została zidentyfikowana jako potencjalny problem (np. JavaCallout-ValidateAccount lub OASValidation-1). W przypadku zasobów na poziomie organizacji to pole wyświetla wartość N/A (Organization Resource). W przypadku zasobów na poziomie środowiska to pole wyświetla wartość N/A (Environment Resource). W przypadku zmian w OpenLDAP jest to None.

Typ zasady

Typ zasady (np. java-callout lub OASValidation). W przypadku zmian w OpenLDAP jest to None.

Wersja źródłowa

Źródłowa wersja OPDK skonfigurowana do skanowania (4.53.00 lub 4.53.01).

Zasób, którego dotyczy problem

Opisuje konkretny wykryty zasób lub bibliotekę:

  • W przypadku wykrywania wywołań Java 21: dokładna nazwa pliku JAR, którego dotyczy problem (np. order-transform.jar lub corba-callout.jar).
  • W przypadku wycofania starszych wersji 4.53: deprecated library detected for NAME_OF_THE_AFFECTED_JAVA_CALLOUT_JAR.
  • W przypadku wykrywania OAS, JSONPath lub OpenLDAP: konkretny element zasady lub zasób (np. oas content type handling, wildcard expression lub LDAP RDN exceeds 241 characters).

Powód wykrycia

Zawiera szczegółowe informacje diagnostyczne o tym, dlaczego element został oznaczony:

  • W przypadku wykrywania wywołań Java 21: konkretna klasa, docelowa biblioteka zastępcza (jeśli dotyczy) i główna przyczyna (np. 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)). Jeśli w tym samym pliku JAR wykryto kilka problemów, są one konsolidowane i rozdzielane przez ;.
  • W przypadku wycofania starszych wersji 4.53: lista klas, do których odwołują się wycofane biblioteki (np. ['Detected use of class CLASS_NAME from JAR_NAME']).
  • W przypadku weryfikacji OAS: zmienna określona w tagu Source (np. Source=response).
  • W przypadku JSONPath: dokładne oznaczone wyrażenie.
  • W przypadku OpenLDAP: nazwa wyróżniająca konkretnej jednostki LDAP, która przekroczyła 241 bajtów lub znaków.

Pewność wpływu

To pole wskazuje stopień pewności, z jaką narzędzie zidentyfikowało blokadę uaktualnienia. Wartości są ustandaryzowane i zapisywane wielkimi literami:

  • HIGH: narzędzie wykryło niezgodną zmianę (np. wywołanie klasy trwale usuniętej, takiej jak javax.xml.bind.JAXBContext lub sun.misc.BASE64Encoder, albo nazwę wyróżniającą OpenLDAP przekraczającą 241 bajtów). Jeśli nie zostaną podjęte żadne działania, istnieje niemal pewne prawdopodobieństwo wystąpienia błędu w czasie działania (ClassNotFoundException lub NoClassDefFoundError).
  • MEDIUM: narzędzie wykryło wzorzec wymagający sprawdzenia przez dewelopera i weryfikacji funkcjonalnej:
    • W przypadku wywołań Java: oznaczone jako METHOD_SIGNATURE_MODIFICATION (np. org.w3c.dom.Document), gdzie klasa istnieje w Javie 21, ale konkretne metody mogły zostać zmienione lub wycofane.
    • W przypadku zasad OASValidation: oznaczone, gdy w elemencie <Source> używane są dynamiczne zmienne w czasie działania (np. Source=response), co wymaga przechwycenia śladu, aby obserwować rozwiązane zmienne podczas wykonywania serwera proxy.

Przykładowe raporty wykrywania

Raport skanowania Java 21 (--source-version 4.53.01)

Ten przykład ilustruje dane wyjściowe raportu dotyczące uaktualnienia z OPDK 4.53.01 do 4.54.00:

Organizacja Środowisko Nazwa serwera proxy Zakres Wersja Nazwa zasady Typ zasady Wersja źródłowa Zasób, którego dotyczy problem Powód wykrycia Pewność wpływu
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

Raport skumulowanego skanowania (--source-version 4.53.00)

Ten przykład ilustruje dane wyjściowe raportu dotyczące uaktualnienia z OPDK 4.53.00 do 4.54.00:

Organizacja Środowisko Nazwa serwera proxy Zakres Wersja Nazwa zasady Typ zasady Wersja źródłowa Zasób, którego dotyczy problem Powód wykrycia Pewność wpływu
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

Wskazówki dotyczące rozwiązywania zidentyfikowanych problemów znajdziesz w sekcji Strategie naprawcze.