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
- 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).
- 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.
- 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.
- 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. - (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
ldapsearchtrong 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.jarhoặccorba-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 expressionhoặcLDAP 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.JAXBContexthoặcsun.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 (ClassNotFoundExceptionhoặcNoClassDefFoundError) 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.
- Đối với Lệnh gọi Java: Được gắn cờ trong
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.