无法从设备连接到 mobilefirst 适配器

Cannot connect to mobilefirst adapter from device

将我们的应用程序从 6.2 迁移到 7.0,移动网络应用程序在 phone 上运行良好,并且可以手动调用 HTTP js 适配器。但是,当将 apk 导出到 phone 时,应用程序会启动,但在调用数据适配器时会返回 403 错误:

{"status":403,"invocationContext":null}

和唯一的服务器日志:

"POST /SFMobileStudent/authorization/v1/clients/instance HTTP/1.1" 403 64 "-" "WLNativeAPI(bullhead; MMB29Q; Nexus 5X; SDK 23; Android 6.0.1)"

适配器也没有任何安全措施

securityTest="wl_unprotected"

不确定我们缺少什么,7.0 有 added/required 安全性吗?

那里不是很多,但您可以看到从设备 (comcast) 到服务器的流量。不知道是什么意思,就是重复。 tcpdump 抓包:

removed

LogCat

I/chromium(29279): [INFO:CONSOLE(1082)] "processMessage failed: Message: F09 WLAuthorizationManagerPlugin170261306 {"wlFailureStatus":"UNEXPECTED_ERROR","status":403,"responseText":"\n\n403 Forbidden</title>\n</head>\nForbidden</h1>\n

You don't have permission to access /SFMobileStudent/authorization/v1/clients/instance\non this server.</p>\n


\nIBM_HTTP_Server at mobilet.sfcollege.edu Port 443</address>\n</body></html>\n","statusText":"Unexpected errorCode occurred. Please try again."}", source: file:///android_asset/www/default/worklight/cordova.js (1082)

更多logCat

W/PluginManager(11209): THREAD WARNING: exec() call to WLAuthorizationManagerPlugin.getClientInstanceIdHeader blocked the main thread for 170ms. Plugin should use CordovaInterface.getThreadPool(). D/dalvikvm(11035): GC_EXPLICIT freed 153K, 39% free 8875K/14500K, paused 2ms+3ms, total 49ms I/ConvCursor(11035): ConversationCursor caching complete pos=18 E/ThermalDaemon( 356): set temp 65000 to name /sys/class/hwmon/hwmon0/device/temp1_max E/ThermalDaemon( 356): set temp -128000 to name /sys/class/hwmon/hwmon0/device/temp1_max_hyst D/dalvikvm(11209): Trying to load lib /data/app-lib/com.SFStudent-1/libauthjni.so 0x41d12ef8 D/dalvikvm(11209): Shared lib '/data/app-lib/com.SFStudent-1/libauthjni.so' already loaded in same CL 0x41d12ef8 D/WifiStateMachine( 917): handleMessage: E msg.what=151572 D/WifiStateMachine( 917): processMsg: ConnectedState D/WifiStateMachine( 917): processMsg: L2ConnectedState D/WifiStateMachine( 917): handleMessage: X D/WifiWatchdogStateMachine( 917): Fetch RSSI succeed, rssi=-68 mrssi=-68 txbad=245 txgood=47234 D/WifiWatchdogStateMachine( 917): Incremental loss=0/6 Current loss=0% volume=10.06 D/WifiWatchdogStateMachine( 917): Cache updated: loss[-68]=0% volume=27.82 D/dalvikvm(11209): GC_CONCURRENT freed 2032K, 45% free 8070K/14500K, paused 4ms+2ms, total 57ms D/dalvikvm(11209): WAIT_FOR_CONCURRENT_GC blocked 8ms W/PluginManager(11209): THREAD WARNING: exec() call to WLAuthorizationManagerPlugin.deleteAllAuthData blocked the main thread for 27ms. Plugin should use CordovaInterface.getThreadPool(). W/PluginManager(11209): THREAD WARNING: exec() call to WLAuthorizationManagerPlugin.getClientInstanceIdHeader blocked the main thread for 97ms. Plugin should use CordovaInterface.getThreadPool(). D/dalvikvm(11209): Trying to load lib /data/app-lib/com.SFStudent-1/libauthjni.so 0x41d12ef8 D/dalvikvm(11209): Shared lib '/data/app-lib/com.SFStudent-1/libauthjni.so' already loaded in same CL 0x41d12ef8 E/NONE (11209): [/apps/services/api/SFStudent/android/query] failure. state: 403, response: undefined I/chromium(11209): [INFO:CONSOLE(301)] "Error in Error callbackId: WLAuthorizationManagerPlugin1867260175 : ReferenceError: deferred is not defined", source: file:///android_asset/www/default/worklight/cordova.js (301) I/chromium(11209): [INFO:CONSOLE(1080)] "processMessage failed: Error: ReferenceError: deferred is not defined", source: file:///android_asset/www/default/worklight/cordova.js (1080) I/chromium(11209): [INFO:CONSOLE(1081)] "processMessage failed: Stack: ReferenceError: deferred is not defined I/chromium(11209): at Object.InitializeService.WL.Client.invokeProcedure.onFailure (eval at (file:///android_asset/www/default/js/libs/jquery/jquery-min.js:4:14070), :15:8) I/chromium(11209): at Object.options.onFailure (file:///android_asset/www/default/worklight/worklight.js:8806:29) I/chromium(11209): at Object.onInvokeProcedureFailure [as onFailure] (file:///android_asset/www/default/worklight/worklight.js:8718:14) I/chromium(11209): at klass.window.WLJSX.Ajax.WLRequest.WLJSX.Class.create.onFailure (file:///android_asset/www/default/worklight/worklight.js:3651:26) I/chromium(11209): at klass.window.WLJSX.Ajax.WLRequest.WLJSX.Class.create.onWlFailure (file:///android_asset/www/default/worklight/worklight.js:3600:12) I/chromium(11209): at Object. (file:///android_asset/www/default/worklight/worklight.js:3440:27) I/chromium(11209): at Object. (file:///android_asset/www/default/worklight/wljq.js:1202:33) I/chromium(11209): at fire (file:///android_asset/www/default/worklight/wljq.js:1047:30) I/chromium(11209): at Object.self.fireWith [as rejectWith] (file:///android_asset/www/default/worklight/wljq.js:1158:7) I/chromium(11209): at Object.deferred.(anonymous function) [as reject] (file:///android_asset/www/default/worklight/wljq.js:1247:34)", source: file:///android_asset/www/default/worklight/cordova.js (1081) I/chromium(11209): [INFO:CONSOLE(1082)] "processMessage failed: Message: F09 WLAuthorizationManagerPlugin1867260175 {"wlFailureStatus":"UNEXPECTED_ERROR","status":403,"responseText":"/*-secure-\n{\"reason\":\"App authenticity security check failed\"}*/","statusText":"Unexpected errorCode occurred. Please try again."}", source: file:///android_asset/www/default/worklight/cordova.js (1082)

已解决。应用程序描述符中有一个新标记:

directUpdateAuthenticityPublicKey

已更新,使用密钥库导出应用程序,现在一切正常。谢谢您的帮助。

问题: http://www-01.ibm.com/support/docview.wss?uid=swg21970348