疑難排解一般問題
使用 E-Business Suite Asserter 整合 Oracle E-Business Suite 與 OCI IAM 時,可能會發生以下幾種錯誤。
解決權限不足錯誤
在 OCI IAM 認證之後,系統會將使用者重新導向回 Oracle E-Business Suite,並顯示錯誤訊息您沒有目前作業的足夠權限,並提示使用者重新登入。
一般而言,當 Oracle E-Business Suite 應用程式發出此錯誤時,表示 Cookie 設定的網域不正確。若要確認,請檢查 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 不得設為任何類型的值。您必須更新 ICX_PARAMETERS 中的 SESSION_COOKIE_DOMAIN 設定。
登出時解決內部伺服器錯誤
當您從 Oracle E-Business Suite 登出時,瀏覽器會發出內部伺服器錯誤錯誤訊息。
此問題是因為 Oracle E-Business Suite 端的 AppsLogoutRedirect.java
版本較舊。
檢查 Oracle E-Business Suite 端的 AppsLogoutRedirect.java
標頭:
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 Release 12 重要修補程式更新 (2013 年 1 月或更高版本),才能修正此問題。此重要修補程式更新可讓 AppsLogoutRedirect.java
利用 APPS_SSO
和 APPS_AUTH_AGENT
設定檔。查看知識文件 (2018 年 7 月) (文件 ID 2379675.1) 以取得套用此修正程式的所有詳細資訊。
修正時間同步問題
當您存取 E-Business Suite Asserter 應用程式 URL 時,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 宣告器」網域日誌中的時間為 Sep 23, 2018 6:53:31,380 PM AST
。請注意,格林威治標準時間比大西洋標準時間早 4 小時。因此,時間集為 Sep 23, 2018 10:53:31 PM GMT
。部署 E-Business Suite Asserter 的系統未與 OCI IAM 同步,因此 OCI IAM 所傳送的權杖實際上不在有效期間內,因此發生錯誤:權杖已過期。
確定部署 E-Business Suite Asserter 之系統的日期和時間與 NTP 伺服器的時間同步,因此 OCI IAM 主機。
處理 Java 錯誤 ExceptionInInitializerError
當您存取 E-Business Suite Asserter 應用程式 URL 時,Oracle E-Business Suite 應用程式會發出 java.lang.ExceptionInInitializerError 錯誤。
「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
檔案是否具有必要的組態。此外,請檢查 bridge.properties
檔案中 wallet.path
指定的路徑是否有效。
處理 Java 錯誤 RuntimeException
當您存取 E-Business Suite Asserter 應用程式 URL 時,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 中建立的資料來源名稱。
修正深層連結問題
在 OCI IAM 認證之後,使用者將被重新導向回 Oracle E-Business Suite,並提示使用者重新登入。
這是因為深層連結沒有作用。
檢查是否已設定 whitelist.urls
橋接器特性。如果問題持續存在,請在 whitelist.urls
組態中明確指定連接埠號碼。例如,whitelist.urls=http://ebs.oracle.com:80/OA_HTML…
。您也可以檢查 weblogic.xml
檔案中 E-Business Suite Asserter App 的 JSESSION ID Cookie 名稱。如果 WebLogic 中具有相同 Cookie 名稱的任何其他 Web 應用程式,將會發生衝突。
登出時發生問題
如果在登出過程中發現問題,請驗證 OCI IAM 中的登出後重新導向 URL 參數值和 bridge.properties
檔案中的 post.logout.url 參數值。
bridge.properties
檔案中的 post.logout.url 是選擇性的參數,依照預設,您不需要提供值。您可以使用此參數,讓「E-Business Suite 宣告器」應用程式在「E-Business Suite 宣告器」完成登出處理作業之後,將使用者瀏覽器重導至指定的 URL。
如果啟用,bridge.properties
檔案中的 post.logout.url 值必須與 OCI IAM 中 E-Business Suite Asserter 應用程式的登出後重新導向 URL 參數值相符。
- 開啟 OCI IAM 中的 E-Business Suite Asserter 應用程式,然後更新登出後重新導向 URL 值。
- 開啟
ebs.war
檔案、更新bridge.properties
檔案、重新產生 war 檔案,然後將檔案重新部署至 WebLogic 伺服器。確定此參數的值與 OCI IAM 中的登出後重新導向 URL 參數相符。