Công cụ phát hiện thay đổi Edge cho Đám mây riêng tư 4.54.00

Công cụ phát hiện thay đổi

Chúng tôi đã tạo một công cụ phát hiện thay đổi để xác định các proxy, chính sách, luồng dùng chung và tệp JAR tài nguyên Apigee (ở cấp proxy, môi trường hoặc tổ chức) có thể bị ảnh hưởng trong và sau quá trình chuyển đổi sang Edge cho Đám mây riêng tư 4.54.00. Công cụ này tạo một báo cáo nêu chi tiết các proxy đã triển khai, luồng dùng chung và tệp JAR tài nguyên bị ảnh hưởng bởi các thay đổi, đồng thời cung cấp hướng dẫn đến các hướng dẫn và chiến lược cụ thể có liên quan đến những proxy hoặc luồng dùng chung đã xác định.

Điều kiện tiên quyết

  1. Bạn phải có một máy dựa trên RHEL hoặc Rocky Linux để chạy công cụ này (xem Yêu cầu cài đặt Edge).
  2. Bạn phải cài đặt JRE 8 trở lên và định cấu hình đúng cách trên máy chủ lưu trữ để cho phép các tập lệnh của công cụ chạy.
  3. Công cụ này yêu cầu quyền truy cập vào điểm cuối (URL) của Máy chủ quản lý và thông tin đăng nhập quản trị hợp lệ để xác thực và truy xuất dữ liệu.
  4. Công cụ này yêu cầu quyền truy cập vào một thư mục làm việc được chỉ định (ví dụ: /tmp) có đủ dung lượng ổ đĩa và quyền đọc/ghi thích hợp để tải gói xuống, tạo nhật ký và lưu trữ đầu ra.
  5. (Không bắt buộc) Khi nâng cấp từ phiên bản 4.53.00, công cụ này yêu cầu một tệp LDIF được tạo bằng lệnh ldapsearch trong phần Thay đổi OpenLDAP – Trích xuất dữ liệu LDAP để phát hiện các RDN dài vượt quá 241 ký tự/byte.

Chạy công cụ

Sau khi đáp ứng tất cả các điều kiện tiên quyết, hãy tải công cụ xuống từ kho lưu trữ Apigee bằng thông tin đăng nhập Apigee của bạn và trích xuất kho lưu trữ đã tải xuống:

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

Sau khi quá trình tải xuống hoàn tất, bạn có thể chạy lệnh sau để xem tất cả các tuỳ chọn có sẵn cho công cụ này:

./change-detector --help

Để chạy công cụ này, hãy sử dụng lệnh sau và thay thế các phần giữ chỗ bằng thông tin của bạn:

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

Chỉ định --source-version 4.53.01 khi nâng cấp trực tiếp từ Edge cho Đám mây riêng tư 4.53.01 để quét các thay đổi của Java 21. Nếu nâng cấp từ phiên bản 4.53.00, hãy chỉ định --source-version 4.53.00 để thực hiện quá trình quét tích luỹ bao gồm cả việc ngừng sử dụng chính sách phiên bản 4.53.01 và các thay đổi của Java 21.

Công cụ này tạo đầu ra ở định dạng CSV hoặc JSON mà bạn có thể trực tiếp xem xét hoặc nhập vào các ứng dụng bảng tính như Google Trang tính.

Tìm hiểu đầu ra của công cụ

Báo cáo này chứa các cột sau:

Tổ chức

Tên của tổ chức nơi cấu phần phần mềm được lưu trữ. Đối với các thay đổi của OpenLDAP, giá trị này là None.

Môi trường

Môi trường cụ thể (ví dụ: dev, test, prod) trong tổ chức. Đối với các tệp JAR ở cấp tổ chức, trường này là N/A. Đối với các thay đổi của OpenLDAP, giá trị này là None.

Tên proxy

Tên của proxy API hoặc luồng dùng chung. Đối với các tài nguyên JAR ở cấp tổ chức, trường này sẽ hiển thị tên tổ chức. Đối với các tài nguyên JAR ở cấp môi trường, trường này sẽ hiển thị tên môi trường. Đối với các thay đổi của OpenLDAP, trường này sẽ hiển thị thực thể LDAP của RDN.

Phạm vi

Chỉ định phạm vi và cấp độ của cấu phần phần mềm được quét:

  • proxy-level-jar: Tệp tài nguyên JAR được tải lên ở cấp proxy (trong /resources/java).
  • env-level-jar: Tệp tài nguyên JAR được tải lên ở cấp môi trường (xem Tệp tài nguyên).
  • org-level-jar: Tệp tài nguyên JAR được tải lên ở cấp tổ chức.
  • proxy: Chính sách hoặc cấu hình trong bản sửa đổi proxy API.
  • sharedflow: Chính sách hoặc cấu hình trong bản sửa đổi luồng dùng chung.
  • ldif: Tệp LDIF OpenLDAP (đối với các lượt kiểm tra OpenLDAP).

Bản sửa đổi

Số bản sửa đổi cụ thể của proxy API hoặc luồng dùng chung. Đối với các tệp JAR ở cấp môi trường hoặc tổ chức, trường này là N/A. Đối với các thay đổi của OpenLDAP, giá trị này là None.

Tên chính sách

Tên của chính sách cụ thể đã được xác định là một vấn đề tiềm ẩn (ví dụ: JavaCallout-ValidateAccount hoặc OASValidation-1). Đối với các tài nguyên ở cấp tổ chức, trường này sẽ hiển thị N/A (Organization Resource). Đối với các tài nguyên ở cấp môi trường, trường này sẽ hiển thị N/A (Environment Resource). Đối với các thay đổi của OpenLDAP, giá trị này là None.

Loại chính sách

Loại chính sách (ví dụ: java-callout hoặc OASValidation). Đối với các thay đổi của OpenLDAP, giá trị này là None.

Phiên bản nguồn

Phiên bản OPDK nguồn được định cấu hình cho quá trình quét (4.53.00 hoặc 4.53.01).

Tài nguyên bị ảnh hưởng

Mô tả tài nguyên hoặc thư viện cụ thể được phát hiện:

  • Đối với các lượt phát hiện lệnh gọi Java 21: Tên chính xác của tệp JAR bị ảnh hưởng (ví dụ: order-transform.jar hoặc corba-callout.jar).
  • Đối với các lượt ngừng sử dụng phiên bản 4.53 cũ: deprecated library detected for NAME_OF_THE_AFFECTED_JAVA_CALLOUT_JAR.
  • Đối với các lượt phát hiện OAS, JSONPath hoặc OpenLDAP: Phần tử hoặc tài nguyên chính sách cụ thể (ví dụ: oas content type handling, wildcard expression hoặc LDAP RDN exceeds 241 characters).

Lý do phát hiện

Cung cấp thông tin chẩn đoán chi tiết về lý do mục đó bị gắn cờ:

  • Đối với các lượt phát hiện lệnh gọi Java 21: Lớp cụ thể, thư viện thay thế mục tiêu (nếu có) và nguyên nhân gốc (ví dụ: 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)). Nếu phát hiện nhiều vấn đề trong cùng một tệp JAR, thì các vấn đề đó sẽ được hợp nhất và phân tách bằng ;.
  • Đối với các lượt ngừng sử dụng phiên bản 4.53 cũ: Danh sách các lớp được tham chiếu từ các thư viện đã ngừng sử dụng (ví dụ: ['Detected use of class CLASS_NAME from JAR_NAME']).
  • Đối với các lượt xác thực OAS: Biến được chỉ định trong thẻ Source (ví dụ: Source=response).
  • Đối với JSONPath: Biểu thức chính xác được gắn cờ.
  • Đối với OpenLDAP: RDN của thực thể LDAP cụ thể vượt quá 241 byte hoặc ký tự.

Mức độ chắc chắn về tác động

Trường này cho biết mức độ tin cậy mà công cụ này đã xác định một yếu tố chặn nâng cấp. Các giá trị được chuẩn hoá ở dạng chữ in hoa:

  • HIGH: Công cụ này đã phát hiện một thay đổi không tương thích (chẳng hạn như lệnh gọi đến một lớp đã bị xoá vĩnh viễn như javax.xml.bind.JAXBContext hoặc sun.misc.BASE64Encoder, hoặc một RDN OpenLDAP vượt quá 241 byte). Có khả năng gần như chắc chắn xảy ra lỗi thời gian chạy (ClassNotFoundException hoặc NoClassDefFoundError) trừ phi được khắc phục.
  • MEDIUM: Công cụ này đã phát hiện một mẫu yêu cầu nhà phát triển kiểm tra và xác minh chức năng:
    • Đối với Lệnh gọi Java: Được gắn cờ trong METHOD_SIGNATURE_MODIFICATION (ví dụ: org.w3c.dom.Document), trong đó lớp này tồn tại trong Java 21 nhưng các phương thức cụ thể có thể đã bị thay đổi hoặc ngừng sử dụng.
    • Đối với các chính sách OASValidation: Được gắn cờ khi các biến thời gian chạy động được sử dụng trong phần tử <Source> (ví dụ: Source=response), yêu cầu ghi lại Dấu vết để quan sát các biến đã giải quyết trong quá trình thực thi proxy.

Báo cáo phát hiện mẫu

Báo cáo quét Java 21 được nhắm mục tiêu (--source-version 4.53.01)

Mẫu sau đây minh hoạ đầu ra của báo cáo cho quá trình nâng cấp từ OPDK 4.53.01 lên 4.54.00:

Tổ chức Môi trường Tên proxy Phạm vi Bản sửa đổi Tên chính sách Loại chính sách Phiên bản nguồn Tài nguyên bị ảnh hưởng Lý do phát hiện Mức độ chắc chắn về tác động
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

Báo cáo quét tích luỹ (--source-version 4.53.00)

Mẫu sau đây minh hoạ đầu ra của báo cáo cho quá trình nâng cấp từ OPDK 4.53.00 lên 4.54.00:

Tổ chức Môi trường Tên proxy Phạm vi Bản sửa đổi Tên chính sách Loại chính sách Phiên bản nguồn Tài nguyên bị ảnh hưởng Lý do phát hiện Mức độ chắc chắn về tác động
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

Để được hướng dẫn về cách khắc phục các vấn đề đã xác định, hãy xem bài viết Chiến lược khắc phục.