استكشاف المشكلات الشائعة وإصلاحها

فيما يلي بعض الأخطاء التي قد تواجهها أثناء تكامل Oracle E-Business Suite مع Oracle Identity Cloud Service باستخدام E-Business Suite Asserter.

حل خطأ امتيازات غير كافية

بعد تصديق Oracle Identity Cloud Service، بدلاً من الوصول إلى Oracle E-Business Suite، تتم إعادة توجيه المستخدم مرة أخرى إلى Oracle E-Business Suite مع ظهور رسالة الخطأ "ليس لديك امتيازات كافية للعملية الحالية." ويطالب المستخدم بتسجيل الدخول مرة أخرى.

بشكل عام، عندما يصدر تطبيق Oracle E-Business Suite هذا الخطأ، فهذا يعني أنه قد تم تعيين ملف تعريف الارتباط بنطاق غير صحيح. لتأكيد ذلك، تحقق من سجل تصحيح أخطاء E-Business Suite Asserter (<HOME DIR>/ebsasserter.log). يوضح سجل تصحيح أخطاء مصاحب E-Business Suite أن sessionCookieDomain يحتوي على قيمة غير صحيحة. تم تعيين CookieDomain على .oracle.com.

Aug 22, 2018 2:26:34 PM oracle.apps.fnd.ext.common.EBiz init
FINE: Ebiz init(): sessionCookieDomain =.oracle.com ; protocol=https:; ssoCookieName= ORASSO_AUTH_HINT

يجب عدم تعيين ICX_PARAMETERS.SESSION_COOKIE_DOMAIN على قيمة من أي نوع. يجب تحديث إعداد SESSION_COOKIE_DOMAIN في ICX_PARAMETERS.

  1. قم بتحديث قيمة SESSION_COOKIE_DOMAIN في ICX_PARAMETERS:
    SQL> select SESSION_COOKIE_DOMAIN from ICX_PARAMETERS;
    
    SESSION_COOKIE_DOMAIN
    ------------------------------
    .oracle.com
  2. قم بتعيين session_cookie_domain إلى NULL في ICX_PARAMETERS:
    update ICX_PARAMETERS set SESSION_COOKIE_DOMAIN = NULL;
    commit;
  3. قم بإعادة تشغيل جميع الخدمات.
  4. إعادة اختبار المشكلة.

حل خطأ خادم داخلي أثناء تسجيل الخروج

عند الخروج من Oracle E-Business Suite، يظهر المتصفح رسالة خطأ "خطأ في الخادم الداخلي".

يرجع السبب في هذه المشكلة إلى إصدار أقدم من AppsLogoutRedirect.java في جانب Oracle E-Business Suite.

تحقق من رأس AppsLogoutRedirect.java في جانب Oracle E-Business Suite:

adident Header $JAVA_TOP/oracle/apps/fnd/sso/AppsLogoutRedirect.class
$Header AppsLogoutRedirect.java 120.10.12010000.7 2010/01/19 20:18:52 rsantis ship $

يجب تطبيق آخر تحديث للتصحيحات المهمة لـ Oracle E-Business Suite الإصدار 12 يناير 2013 أو أعلى لإصلاح هذه المشكلة. يتيح تحديث التصحيحات المهمة هذا AppsLogoutRedirect.java الاستفادة من التوصيفات APPS_SSO وAPPS_AUTH_AGENT. تحقق من مستند المعرفة (يوليو 2018) (معرف المستند 2379675.1) للحصول على جميع التفاصيل لتطبيق هذا التصحيح.

إصلاح مشكلة مزامنة الوقت

أثناء الوصول إلى عنوان URL لتطبيق E-Business Suite Asserter، نتج عن تدفق الدخول إلى تطبيق Oracle E-Business Suite خطأ داخلي بالخادم.

يبدو تتبع رأس HTTP كما يلي:

GET https://xxxxxxxxxxxxxxxxxx.oracle.com:7002/ebs/response?code=AQIDBAVcZbun_M5qU4-t9LUCYDjAOgWYiDOrf1Kb5ndbWAEYd05C-uxDfSwP8Ejfn51WT-gTuYj6bLFFYAFHQEqgYy26MTEgRU5DUllQZZIIFFVElPTl9LRVkxNCB7djF9NCAFFFABCDEF= HTTP/1.1

Error 500--Internal Server Error
From RFC 2068 Hypertext Transfer Protocol -- HTTP/1.1:
10.5.1 500 Internal Server Error
The server encountered an unexpected condition which prevented it from fulfilling the request

يبدو سجل نطاق E-Business Suite Asserter كما يلي:

####<Sep 23, 2018 6:53:31,380 PM AST> <Error> <HTTP> <ebshost01.oracle.com>
<AdminServer> <[ACTIVE] ExecuteThread: '6' for queue: 'weblogic.kernel.Default (self-
tuning)'> <<WLS Kernel>> <> <0b38f1ae-a3cb-48f6-80d9-00e3f3bdb263-000000a0>
<1537718011380> <[severity-value: 8] [rif: 0] [partition-id: 0] [partition-name:
DOMAIN]> <BEA-101020> <[ServletContext@44159983[app:ebs module:ebs.war
path:null spec-version:3.1]] Servelet failed with an Exception

يبدو سجل E-Business Suite Asserter كما يلي:

FINE: validateToken return with result {"user_result":"America\/New_York",
"at_hash":"1A3gT4BT0WoWCTLE3IFa5A","sub":"john.doe@oracle.com","user_locale":"en",
"idp_name":"localIDP","idp_guid":"localIDP","a mr":["USERNAME_PASSWORD"],
"iss":"https: \/\/identity.oraclecloud.com\/","user_tenantname":"idcs-a61feab148e248508205cd98cdea4232",
"client_id":"67179f2609ab46309a75e5ca1f582a53","sid":"18ee87ea-04cf-4469-a565-48ccc763caf9",
"authn_strength":"2","azp":"67179f2609ab46309a75e5ca1f582a53","auth_time":"1536180435",
"session_exp":1537715029,"user_lang":"en","exp":1536209235,"iat":1536180437"idp_type":"LOCAL",
"tenant":"idcs-a61feab148e248508205cd98cdea4232","jti":"ed7be32b-d4e1-4e72-9868-6df142f07c6b",
"user_displayname":"John Doe","sub_mappingattr":"userName","tok_type":"IT",
"aud":["https:\/\/identity.oraclecloud.com\/","67179f2609ab46309a75e5ca1f582a53"],
"user_id":"63bf3d3f96094a66a6b7714218338116"}

تم تعيين session_exp على 1537715029. استخدم EpochConverter لتحويل وقت Unix epoch الحالي إلى تاريخ ووقت يمكن للإنسان قراءتهما. ومن ثم، يتم تعيين وقت انتهاء الصلاحية في الرمز المميز إلى Sunday, September 23, 2018 3:03:49 PM GMT. على أن الوقت في سجل نطاق E-Business Suite Asserter هو Sep 23, 2018 6:53:31,380 PM AST. لاحظ أن توقيت جرينتش هو 4 ساعات قبل توقيت المحيط الأطلسي القياسي. ومن ثم فإن الوقت المحدد هو Sep 23, 2018 10:53:31 PM GMT. النظام الذي يتم نشر أداة E-Business Suite Asserter فيه، ليس متزامنًا مع الوقت مع Oracle Identity Cloud Service، ونتيجة لذلك يكون الرمز المميز الذي تم تمريره بواسطة Oracle Identity Cloud Service قد انتهى بالفعل من فترة الصلاحية وبالتالي يكون الخطأ "Token Expired".

تأكد من تزامن التاريخ والوقت على النظام الذي يتم فيه نشر E-Business Suite Asserter مع خوادم NTP ومن ثم مضيف Oracle Identity Cloud Service.

معالجة خطأ Java ExceptionInInitializerError

أثناء الوصول إلى عنوان URL لتطبيق E-Business Suite Asserter، يقوم تطبيق Oracle E-Business Suite بإصدار خطأ java.lang.ExceptionInitializerError.

يعرض سجل تصحيح أخطاء مصاحب E-Business Suite خطأ Java التالي:

<Feb 26, 2019 2:17:16,884 PM PST> <Error> <HTTP> <BEA-101020> 
<[ServletContext@2100554246[app:ebs module:ebs.war path:null spec-version:3.1]] Servlet failed with an Exception
java.lang.ExceptionInInitializerError
at com.oracle.ebs.sso.ConnectionProvider.getConnection(ConnectionProvider.java:36)
at com.oracle.ebs.sso.RequestWrapperFilter.doFilter(RequestWrapperFilter.java:34)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:78)

يحدث ذلك بسبب وجود إعدادات غير صحيحة في ملف bridge.properties. تحقق من ملف bridge.properties وتحقق من اشتماله على التكوين المطلوب. تحقق أيضًا من أن المسار المحدد في wallet.path في ملف bridge.properties صالح.

معالجة خطأ Java RuntimeException

أثناء الوصول إلى عنوان URL لتطبيق E-Business Suite Asserter، يقوم تطبيق Oracle E-Business Suite بإظهار java.lang.RuntimeException.

يعرض سجل تصحيح أخطاء مصاحب E-Business Suite خطأ Java التالي:

<Feb 26, 2019 2:01:33,454 PM PST> <Error> <HTTP> <BEA-101020> 
<[ServletContext@1207779454[app:ebs module:ebs.war path:null spec-version:3.1]] Servlet failed with an Exception
java.lang.RuntimeException: javax.naming.NameNotFoundException: Unable to resolve 'visionDS1'. Resolved ''; remaining name 'visionDS1'
at com.oracle.ebs.sso.ConnectionProvider.getConnection(ConnectionProvider.java:42)
at com.oracle.ebs.sso.RequestWrapperFilter.doFilter(RequestWrapperFilter.java:34)

تحقق من توافق مجموعة قيم ebs.ds.name مع اسم مصدر البيانات الذي تم تكوينه في WebLogic.

إصلاح مشكلة الارتباط العميق

بعد تصديق Oracle Identity Cloud Service، بدلاً من الوصول إلى Oracle E-Business Suite، تتم إعادة توجيه المستخدم إلى Oracle E-Business Suite ويطالب المستخدم بتسجيل الدخول مرة أخرى.

يحدث هذا لأن الارتباط العميق لا يعمل.

تحقق من تكوين خاصية الجسر whitelist.urls. إذا استمرت المشكلة، فحدد أرقام المنافذ بوضوح في تكوين whitelist.urls. على سبيل المثال، whitelist.urls=http://ebs.oracle.com:80/OA_HTML…. يمكنك أيضًا التحقق من اسم ملف تعريف الارتباط لمعرف JSESSION الخاص بتطبيق مهاجم E-Business Suite في ملف weblogic.xml. إذا كان هناك أي تطبيق ويب آخر في WebLogic بنفس اسم ملف تعريف الارتباط، فسيتعارض.

المشكلات أثناء تسجيل الخروج

في حالة العثور على مشكلات أثناء عملية تسجيل الخروج، تحقق من قيمة معلمة عنوان URL لإعادة توجيه ما بعد تسجيل الخروج في Oracle Identity Cloud Service وقيمة معلمة post.logout.url في ملف bridge.properties.

post.logout.url في ملف bridge.properties هو معلمة اختيارية ولا تحتاج افتراضيًا إلى إدخال قيمة. يمكنك استخدام هذه المعلمة لجعل تطبيق E-Business Suite Asserter يقوم بإعادة توجيه مستعرض المستخدم إلى عنوان URL المحدد بعد انتهاء E-Business Suite Asserter من عملية تسجيل الخروج.

في حالة التمكين، يجب أن تتطابق قيمة post.logout.url في ملف bridge.properties مع قيمة معلمة عنوان URL لإعادة توجيه ما بعد تسجيل الخروج لتطبيق مهاجم E-Business Suite في Oracle Identity Cloud Service.

  1. افتح تطبيق E-Business Suite Asserter في Oracle Identity Cloud Service وقم بتحديث قيمة عنوان URL لإعادة توجيه ما بعد تسجيل الخروج.
  2. افتح ملف ebs.war، وقم بتحديث ملف bridge.properties، وأعد إنشاء ملف war، ثم أعد توزيع الملف على خادم WebLogic. تأكد من تطابق قيمة هذه المعلمة مع معلمة عنوان URL لإعادة توجيه ما بعد تسجيل الخروج في Oracle Identity Cloud Service.