ابزار تشخیص تغییر
ابزار تشخیص تغییر برای شناسایی پراکسیها، خطمشیها، جریانهای مشترک، و JARهای منبع Apigee (در سطح پراکسی، محیط، یا سازمان) ساخته شده است که ممکن است درطول و پساز انتقال به Edge برای Private Cloud 4.54.00 تحتتأثیر قرار بگیرند. این ابزار گزارشی تولید میکند که جزئیات پراکسیهای مستقر، جاریسازیهای همرسانیشده، و منابع JAR تحتتأثیر تغییرات را ارائه میدهد و به راهنماها و استراتژیهای خاص مربوط به آن پراکسیها یا جاریسازیهای همرسانیشده شناساییشده اشاره میکند.
پیشنیازها
- برای اجرای این ابزار، به دستگاهی مبتنی بر RHEL یا Rocky Linux نیاز است (الزامات نصب Edge را ببینید).
- برای اینکه دستورگانهای ابزار اجرا شود، JRE 8 یا بالاتر باید در ماشین میزبان نصب و بهدرستی پیکربندی شده باشد.
- این ابزار برای اصالتسنجی و بازیابی دادهها به دسترسی شبکهای به نقطه پایانی (نشانی وب) «سرور مدیریت» و اطلاعات اعتباری معتبر سرپرست نیاز دارد.
- این ابزار برای بارگیری بستهها، تولید گزارشها، و ذخیره خروجی به دسترسی به دایرکتوری کاری تعیینشده (برای مثال،
/tmp) با فضای دیسک کافی و اجازههای خواندن/نوشتن مناسب نیاز دارد. - (اختیاری) هنگام ارتقا از نسخه ۴.۵۳.۰۰، این ابزار به فایل LDIF تولیدشده بااستفاده از فرمان
ldapsearchدر بخش تغییر OpenLDAP - استخراج دادههای LDAP نیاز دارد تا RDNهای طولانی را که از ۲۴۱ نویسه/بایت فراتر میروند شناسایی کند.
درحال اجرای ابزار
پساز برآورده شدن همه پیشنیازها، ابزار را بااستفاده از اطلاعات کاربری Apigee از مخزن Apigee بارگیری کنید و بایگانی بارگیریشده را استخراج کنید:
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
پساز تکمیل بارگیری، میتوانید فرمان زیر را اجرا کنید تا همه گزینههای دردسترس برای ابزار را ببینید:
./change-detector --help
برای اجرای ابزار، از فرمان زیر استفاده کنید و اطلاعات خودتان را جایگزین جایبانها کنید:
export APIGEE_PASSWORD=YOUR_PASSWORD ./change-detector --username YOUR_USERNAME --mgmt-url MGMT_URL --source-version SOURCE_VERSION
هنگام ارتقا مستقیم از Edge for Private Cloud 4.53.01، --source-version 4.53.01 را مشخص کنید تا تغییرات Java 21 اسکن شود. اگر از نسخه ۴.۵۳.۰۰ ارتقا میدهید، --source-version 4.53.00 را مشخص کنید تا اسکن تجمعی انجام شود که هم منسوخ شدن خطمشی نسخه ۴.۵۳.۰۱ و هم تغییرات Java 21 را پوشش دهد.
این ابزار برونداد را در قالب CSV یا JSON تولید میکند که میتواند مستقیماً مرور شود یا به برنامههای صفحهگسترده مثل «کاربرگنگار Google» وارد شود.
درک برونداد ابزار
گزارش حاوی ستونهای زیر است:
سازمان
نام سازمانی که مصنوع در آن قرار دارد. برای تغییرات OpenLDAP، این None است.
محیط زیست
محیط خاص (برای مثال، dev، test، prod) در سازمان. برای «درخواستهای دسترسی به Jira» در سطح سازمان، این فیلد N/A است. برای تغییرات OpenLDAP، این None است.
نام پراکسی
نام پراکسی API یا جریان مشترک. برای منابع JAR سطح سازمان، این نام سازمان را نمایش میدهد. برای منابع JAR سطح محیط، این گزینه نام محیط را نمایش میدهد. برای تغییرات OpenLDAP، این فیلد نهاد LDAP مربوط به RDN را نشان میدهد.
حوزه
دامنه و سطح مصنوع اسکنشده را مشخص میکند:
proxy-level-jar: فایل منبع JAR در سطح پراکسی (زیر/resources/java) بارگذاری شد.env-level-jar: فایل منبع JAR بارگذاریشده در سطح محیط (به فایلهای منبع مراجعه کنید).org-level-jar: فایل منبع JAR در سطح سازمان بارگذاری شد.proxy: خطمشی یا پیکربندی در بازبینی پراکسی میانای برنامهسازی کاربردی.-
sharedflow: خطمشی یا پیکربندی در بازبینی جریان مشترک. -
ldif: فایل OpenLDAP LDIF (برای بررسیهای OpenLDAP).
ویرایش
شماره بازبینی خاص پراکسی میانای برنامهسازی کاربردی یا جریان همرسانیشده. برای فایلهای JAR سطح محیط یا سازمان، این فیلد N/A است. برای تغییرات OpenLDAP، این مقدار None است.
نام خطمشی
نام خطمشی خاصی که بهعنوان مشکل بالقوه شناسایی شده است (برای مثال، JavaCallout-ValidateAccount یا OASValidation-1). برای منابع سطح سازمان، این فیلد N/A (Organization Resource) را نمایش میدهد. برای منابع سطح محیط، این فیلد N/A (Environment Resource) را نمایش میدهد. برای تغییرات OpenLDAP، این None است.
نوع خطمشی
نوع خطمشی (برای مثال، java-callout یا OASValidation). برای تغییرات OpenLDAP، این مقدار None است.
نسخه منبع
نسخه OPDK منبع پیکربندیشده برای اسکن (4.53.00 یا 4.53.01).
منبع تحتتأثیر قرارگرفته
منبع یا کتابخانه خاص شناساییشده را شرح میدهد:
- برای شناساییهای پیامواره Java 21: نام دقیق فایل JAR تحتتأثیر قرارگرفته (برای مثال،
order-transform.jarیاcorba-callout.jar). - برای منسوخ شدنهای نسخه قدیمی ۴.۵۳:
deprecated library detected for NAME_OF_THE_AFFECTED_JAVA_CALLOUT_JAR. - برای شناساییهای OAS، JSONPath، یا OpenLDAP: عنصر یا منبع خطمشی خاص (برای نمونه،
oas content type handling،wildcard expression، یاLDAP RDN exceeds 241 characters).
دلیل شناسایی
اطلاعات تشخیصی دقیقی درباره دلیل پرچمگذاری مورد ارائه میدهد:
- برای شناساییهای پیامواره Java 21: کلاس خاص، کتابخانه جایگزین هدف (درصورت وجود)، و علت اصلی (برای مثال،
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)). اگر چندین مشکل در یک JAR شناسایی شود، این مشکلات با;از هم جدا میشوند و با هم ترکیب میشوند. - برای منسوخ شدنهای قدیمی 4.53: فهرستی از کلاسهای ارجاعشده از کتابخانههای منسوخشده (برای مثال،
['Detected use of class CLASS_NAME from JAR_NAME']). - برای اعتبارسنجیهای OAS: متغیر مشخصشده در برچسب
Source(برای مثال،Source=response). - برای JSONPath: عبارت دقیق پرچمگذاریشده.
- برای OpenLDAP: «نام متمایز نسبی» (RDN) نهاد LDAP خاصی که از ۲۴۱ بایت یا نویسه فراتر رفته است.
قطعیت تأثیر
این فیلد نشاندهنده میزان اطمینانی است که ابزار با آن مسدودکننده ارتقا را شناسایی کرده است. مقادیر به حروف بزرگ استانداردسازی میشوند:
HIGH: این ابزار تغییری ناسازگار را شناسایی کرده است (مانند فراخوانی به کلاسی که برای همیشه حذف شده است، مثلjavax.xml.bind.JAXBContextیاsun.misc.BASE64Encoder، یا OpenLDAP RDN که از ۲۴۱ بایت فراتر رفته است). احتمال خرابی زمان اجرا (ClassNotFoundExceptionیاNoClassDefFoundError) تقریباً قطعی است، مگراینکه اصلاح شود.MEDIUM: این ابزار الگویی را شناسایی کرده است که به بازرسی توسعهدهنده و درستیسنجی عملکردی نیاز دارد:- برای «تماسهای خروجی جاوا»: تحت
METHOD_SIGNATURE_MODIFICATIONپرچمگذاری شده است (برای مثال،org.w3c.dom.Document)، جایی که کلاس در Java 21 وجود دارد اما ممکن است روشهای خاصی تغییر کرده یا منسوخ شده باشند. - برای خطمشیهای OASValidation: وقتی متغیرهای زمان اجرای پویا در عنصر
<Source>استفاده میشوند (برای مثال،Source=response)، پرچمگذاری میشود که برای مشاهده متغیرهای حلشده درطول اجرای پراکسی، نیاز به ضبط Trace دارد.
- برای «تماسهای خروجی جاوا»: تحت
گزارشهای تشخیص نمونه
گزارش اسکن Java 21 هدفگیریشده (--source-version 4.53.01)
نمونه زیر برونداد گزارش را برای ارتقا از OPDK 4.53.01 به 4.54.00 نشان میدهد:
| سازمان | محیط زیست | نام پراکسی | حوزه | ویرایش | نام خطمشی | نوع خطمشی | نسخه منبع | منبع تحتتأثیر قرارگرفته | دلیل تشخیص | قطعیت تأثیر |
|---|---|---|---|---|---|---|---|---|---|---|
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 |
گزارش اسکن تجمعی (--source-version 4.53.00)
نمونه زیر برونداد گزارش را برای ارتقا از OPDK 4.53.00 به 4.54.00 نشان میدهد:
| سازمان | محیط زیست | نام پراکسی | حوزه | ویرایش | نام خطمشی | نوع خطمشی | نسخه منبع | منبع تحتتأثیر قرارگرفته | دلیل تشخیص | قطعیت تأثیر |
|---|---|---|---|---|---|---|---|---|---|---|
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 |
برای راهنمایی درباره اصلاح مشکلات شناساییشده، به راهبردهای اصلاح مراجعه کنید.