Değişiklik algılama aracı
Edge for Private Cloud 4.54.00'a geçiş sırasında ve sonrasında etkilenebilecek Apigee proxy'lerini, politikalarını, paylaşılan akışlarını ve kaynak JAR'larını (proxy, ortam veya kuruluş düzeyinde) tanımlamak için bir değişiklik algılama aracı oluşturulmuştur. Bu araç, değişikliklerden etkilenen dağıtılmış proxy'leri, paylaşılan akışları ve kaynak JAR'ları ayrıntılı olarak açıklayan bir rapor oluşturur ve tanımlanan proxy'ler veya paylaşılan akışlarla ilgili belirli kılavuzlara ve stratejilere yönlendirir.
Ön koşullar
- Bu aracı çalıştırmak için RHEL tabanlı veya Rocky Linux makine gerekir (bkz. Edge yükleme koşulları).
- Aracın komut dosyalarının çalışmasına izin vermek için ana makineye JRE 8 veya sonraki bir sürümün yüklenmesi ve doğru şekilde yapılandırılması gerekir.
- Araç, yönetim sunucusunun uç noktasına (URL) ağ erişimi ve kimlik doğrulama ile veri alma için geçerli yönetim kimlik bilgileri gerektirir.
- Araç, paketleri indirmek, günlük oluşturmak ve çıkışları depolamak için yeterli disk alanına ve uygun okuma/yazma izinlerine sahip, belirlenmiş bir çalışma dizinine (ör.
/tmp) erişim gerektirir. - (İsteğe bağlı) 4.53.00 sürümünden yükseltme yaparken araç, 241 karakteri/baytı aşan uzun RDN'leri tespit etmek için OpenLDAP değişikliği - LDAP verilerini ayıklama bölümündeki
ldapsearchkomutu kullanılarak oluşturulan bir LDIF dosyası gerektirir.
Aracı çalıştırma
Tüm ön koşullar karşılandıktan sonra Apigee kimlik bilgilerinizi kullanarak aracı Apigee deposundan indirin ve indirilen arşivi çıkarın:
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
İndirme işlemi tamamlandıktan sonra, aracın tüm kullanılabilir seçeneklerini görmek için aşağıdaki komutu çalıştırabilirsiniz:
./change-detector --help
Aracı çalıştırmak için aşağıdaki komutu kullanın ve yer tutucuları bilgilerinizle değiştirin:
export APIGEE_PASSWORD=YOUR_PASSWORD ./change-detector --username YOUR_USERNAME --mgmt-url MGMT_URL --source-version SOURCE_VERSION
Java 21 değişikliklerini taramak için doğrudan Edge for Private Cloud 4.53.01'den yükseltme yaparken --source-version 4.53.01 değerini belirtin. 4.53.00 sürümünden yükseltme yapıyorsanız hem 4.53.01 sürümündeki politika desteğinin sonlandırılması hem de Java 21 değişikliklerini kapsayan kümülatif bir tarama gerçekleştirmek için --source-version 4.53.00 değerini belirtin.
Araç, doğrudan incelenebilen veya Google E-Tablolar gibi e-tablo uygulamalarına aktarılabilen CSV ya da JSON biçiminde çıkış oluşturur.
Araç çıkışını anlama
Rapor aşağıdaki sütunları içerir:
Kurumsal
Öğenin bulunduğu kuruluşun adı. OpenLDAP değişiklikleri için bu değer None'dır.
Ortam
Kuruluş içindeki belirli ortam (ör. dev, test, prod). Kuruluş düzeyindeki JAR'lar için bu alan N/A şeklindedir. OpenLDAP değişiklikleri için bu değer None'dır.
Proxy Adı
API proxy'sinin veya paylaşılan akışın adı. Kuruluş düzeyindeki JAR kaynakları için kuruluş adı gösterilir. Ortam düzeyindeki JAR kaynakları için ortam adını gösterir. OpenLDAP değişiklikleri için bu alan, RDN'nin LDAP varlığını gösterir.
Kapsam
Taranan yapının kapsamını ve düzeyini belirtir:
proxy-level-jar: Proxy düzeyinde (/resources/javaaltında) yüklenen JAR kaynak dosyası.env-level-jar: Ortam düzeyinde yüklenen JAR kaynak dosyası (Kaynak dosyalar bölümüne bakın).org-level-jar: Kuruluş düzeyinde yüklenen JAR kaynak dosyası.proxy: API proxy düzeltmesindeki politika veya yapılandırma.sharedflow: Paylaşılan akış düzeltmesindeki politika veya yapılandırma.ldif: OpenLDAP LDIF dosyası (OpenLDAP kontrolleri için).
Düzeltme
API proxy'sinin veya paylaşılan akışın belirli düzeltme numarası. Ortam veya kuruluş düzeyindeki JAR'lar için bu alan N/A şeklindedir. OpenLDAP değişiklikleri için bu değer None'dır.
Politika Adı
Olası sorun olarak tanımlanan politikanın adı (örneğin, JavaCallout-ValidateAccount veya OASValidation-1). Kuruluş düzeyindeki kaynaklar için bu alanda N/A (Organization Resource) gösterilir. Ortam düzeyindeki kaynaklar için bu alanda N/A (Environment Resource) gösterilir. OpenLDAP değişiklikleri için bu değer None şeklindedir.
Politika Türü
Politika türü (örneğin, java-callout veya OASValidation). OpenLDAP değişiklikleri için bu None'dir.
Kaynak Sürüm
Taramada yapılandırılan kaynak OPDK sürümü (4.53.00 veya 4.53.01).
Etkilenen Kaynak
Algılanan belirli kaynağı veya kitaplığı açıklar:
- Java 21 çağrı algılamaları için: Etkilenen JAR dosyasının tam adı (ör.
order-transform.jarveyacorba-callout.jar). - Eski 4.53 desteğinin sonlandırılması için:
deprecated library detected for NAME_OF_THE_AFFECTED_JAVA_CALLOUT_JAR. - OAS, JSONPath veya OpenLDAP algılamaları için: Belirli politika öğesi veya kaynak (örneğin,
oas content type handling,wildcard expressionveyaLDAP RDN exceeds 241 characters).
Tespit Nedeni
Öğenin neden işaretlendiğiyle ilgili ayrıntılı teşhis bilgileri sağlar:
- Java 21 açıklama algılamaları için: Belirli sınıf, hedef değiştirme kitaplığı (varsa) ve temel neden (ör.
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)). Aynı JAR içinde birden fazla sorun algılanırsa bunlar;ile ayrılmış olarak birleştirilir. - Eski 4.53 desteğinin sonlandırılması için: Desteği sonlandırılan kitaplıklardan referans verilen sınıfların listesi (ör.
['Detected use of class CLASS_NAME from JAR_NAME']). - OAS doğrulamaları için:
Sourceetiketinde belirtilen değişken (örneğin,Source=response). - JSONPath için: Tam olarak işaretlenen ifade.
- OpenLDAP için: 241 baytı veya karakteri aşan LDAP varlığının RDN'si.
Etki Kesinliği
Bu alan, aracın yükseltme engelleyiciyi ne kadar güvenle tanımladığını gösterir. Değerler büyük harfle standartlaştırılır:
HIGH: Araç, uyumsuz bir değişiklik tespit etti (ör.javax.xml.bind.JAXBContextveyasun.misc.BASE64Encodergibi kalıcı olarak kaldırılmış bir sınıfa yapılan çağrı ya da 241 baytı aşan bir OpenLDAP RDN). Düzeltilmediği sürece çalışma zamanı hatası (ClassNotFoundExceptionveyaNoClassDefFoundError) olasılığı neredeyse kesindir.MEDIUM: Araç, geliştirici incelemesi ve işlevsel doğrulama gerektiren bir kalıp algıladı:- Java açıklama metinleri için:
METHOD_SIGNATURE_MODIFICATION(ör.org.w3c.dom.Document) altında işaretlenir. Burada sınıf, Java 21'de mevcuttur ancak belirli yöntemler değiştirilmiş veya kullanımdan kaldırılmış olabilir. - OASValidation politikaları için:
<Source>öğesinde (ör.Source=response) dinamik çalışma zamanı değişkenleri kullanıldığında işaretlenir. Bu durumda, proxy yürütme sırasında çözümlenen değişkenleri gözlemlemek için İzleme'nin yakalanması gerekir.
- Java açıklama metinleri için:
Örnek algılama raporları
Hedeflenen Java 21 tarama raporu (--source-version 4.53.01)
Aşağıdaki örnekte, OPDK 4.53.01'den 4.54.00'a yükseltme işlemine ait rapor çıktısı gösterilmektedir:
| Kurumsal | Ortam | Proxy Adı | Kapsam | Düzeltme | Politika Adı | Politika Türü | Kaynak Sürüm | Etkilenen Kaynak | Tespit nedeni | Etki Kesinliği |
|---|---|---|---|---|---|---|---|---|---|---|
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 |
Kümülatif tarama raporu (--source-version 4.53.00)
Aşağıdaki örnekte, OPDK 4.53.00'dan 4.54.00'a yükseltme için rapor çıkışı gösterilmektedir:
| Kurumsal | Ortam | Proxy Adı | Kapsam | Düzeltme | Politika Adı | Politika Türü | Kaynak Sürüm | Etkilenen Kaynak | Tespit nedeni | Etki Kesinliği |
|---|---|---|---|---|---|---|---|---|---|---|
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 |
Belirlenen sorunları giderme konusunda rehberlik için Çözüm stratejileri başlıklı makaleyi inceleyin.