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
- Do uruchomienia tego narzędzia wymagana jest maszyna z systemem RHEL lub Rocky Linux (zobacz wymagania dotyczące instalacji Edge).
- Aby umożliwić uruchamianie skryptów narzędzia, na maszynie hosta musi być zainstalowany i prawidłowo skonfigurowany JRE 8 lub nowszy.
- 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.
- 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. - (Opcjonalnie) Podczas uaktualniania z wersji 4.53.00 narzędzie wymaga pliku LDIF wygenerowanego za pomocą polecenia
ldapsearchw 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.jarlubcorba-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 expressionlubLDAP 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 jakjavax.xml.bind.JAXBContextlubsun.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 (ClassNotFoundExceptionlubNoClassDefFoundError).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.
- W przypadku wywołań Java: oznaczone jako
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.