Ibm mobilefirst 来自某些设备的连接问题

Ibm mobilefirst 来自某些设备的连接问题,ibm-mobilefirst,Ibm Mobilefirst,无法使用自定义验证器和ChallengeHandler从设备连接 这是来自iPod Touch设备的Worklight 6.1.0.2。在worklight服务器上,我们可以在堆栈跟踪中看到这一点 klight.console.controllers.UsersController from Application javax.ws.rs.core.Application [10/8/14 15:20:04:170 CDT] 0000001c com.worklight.core.auth.im

无法使用自定义验证器和ChallengeHandler从设备连接

这是来自iPod Touch设备的Worklight 6.1.0.2。在worklight服务器上,我们可以在堆栈跟踪中看到这一点

klight.console.controllers.UsersController from Application javax.ws.rs.core.Application
[10/8/14 15:20:04:170 CDT] 0000001c com.worklight.core.auth.impl.LoginContext                    E FWLSE0059E: Login into realm 'NullLoginModule' failed. Invalid gadget request format: /WorkExecution/iphone/my_custom_auth_request_urlnull. Unknown handler path: my_custom_auth_request_url. [project AnywhereWorkManagement]
com.worklight.gadgets.GadgetRuntimeException: Invalid gadget request format: /WorkExecution/iphone/my_custom_auth_request_urlnull. Unknown handler path: my_custom_auth_request_url
    at com.worklight.gadgets.api.GadgetAP
我们的质询处理程序使用以下Javascript调用提交身份验证信息:

challengeHandler.submitLoginForm(challengeHandler.getAuthURL(), loginOptions, l
其中getAuthURL返回字符串/my\u custom\u auth\u请求

奇怪的是,使用相同应用程序和worklight server的其他设备可以成功登录。另一个奇怪的数据点是,如果我们在这个iPod Touch设备上弹出Worklight设置面板,并更新Worklight服务器信息,Worklight登录就会成功

来自失败连接的Wireshark日志:

POST /AnywhereWorkManagement/apps/services/api/WorkExecution/iphone/login HTTP/1.1
Host: mobilenext1.tivlab.austin.ibm.com
Accept-Language: en_US
User-Agent: Mozilla/5.0 (iPod touch; CPU iPhone OS 7_1_2 like Mac OS X) AppleWebKit/537.51.2 (KHTML, like Gecko) Mobile/11D257 (367413328)/Worklight/6.1.0.02.20141006-1624
Content-Length: 71
x-wl-platform-version: 6.1.0.02.20141006-1624
X-Requested-With: XMLHttpRequest
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
x-wl-app-version: 7.5.1.1
Accept: text/javascript, text/html, application/xml, text/xml, */*
Connection: keep-alive
x-wl-native-version: 1475155033
x-wl-device-id: 36CDA8F2-F4E9-49D8-8CBB-A250FDC3B8FA
Cookie: WL_PERSISTENT_COOKIE=ac72a920-b614-423d-8347-e4b5c96a4a1b
Origin: file://
Accept-Encoding: gzip, deflate

realm=CustomAuthenticationRealm&isAjaxRequest=true&x=0.7606244247872382HTTP/1.1 503 Service Unavailable
X-Powered-By: Servlet/3.0
P3P: policyref="/w3c/p3p.xml", CP="CAO DSP COR CURa ADMa DEVa OUR IND PHY ONL UNI COM NAV INT DEM PRE"
Content-Language: en-US
Content-Length: 0
Connection: Close
Date: Fri, 10 Oct 2014 14:32:15 GMT
然后在更新自定义URL以删除尾部斜杠并重新登录后,以下是成功登录的wireshark日志:

POST /AnywhereWorkManagement/apps/services/api/WorkExecution/iphone/query HTTP/1.1
Host: mobilenext1.tivlab.austin.ibm.com
Accept-Language: en_US
User-Agent: Mozilla/5.0 (iPod touch; CPU iPhone OS 7_1_2 like Mac OS X) AppleWebKit/537.51.2 (KHTML, like Gecko) Mobile/11D257 (384405120)/Worklight/6.1.0.02.20141006-1624
Accept-Encoding: gzip, deflate
Content-Length: 210
x-wl-platform-version: 6.1.0.02.20141006-1624
X-Requested-With: XMLHttpRequest
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
x-wl-app-version: 7.5.1.1
Accept: text/javascript, text/html, application/xml, text/xml, */*
Connection: keep-alive
x-wl-native-version: 1475155033
x-wl-device-id: 36CDA8F2-F4E9-49D8-8CBB-A250FDC3B8FA
Cookie: WL_PERSISTENT_COOKIE=0983cfc8-8526-48c9-99cb-72659cb934b4; JSESSIONID=0000wSxsNgF79M62_UJTNmXKKYC:2e8ee48e-dec4-4c69-b8b4-ad37f839f1be
Origin: file://
WL-Instance-Id: okur33g93p35c9j7rvpk1r9g5j

adapter=OSLCGenericAdapter&procedure=getProperties&compressResponse&parameters=%5B%7B%22propertyNames%22%3A%5B%22si.auth.type%22%5D%7D%5D&__wl_deviceCtx=Ar1Cjm4_mo9jpBAA&isAjaxRequest=true&x=0.33572526928037405HTTP/1.1 200 OK
X-Powered-By: Servlet/3.0
P3P: policyref="/w3c/p3p.xml", CP="CAO DSP COR CURa ADMa DEVa OUR IND PHY ONL UNI COM NAV INT DEM PRE"
Content-Type: application/json; charset=UTF-8
Cache-Control: no-cache, no-store, must-revalidate
Expires: Sat, 26 Jul 1997 05:00:00 GMT
Content-Length: 93
Date: Fri, 10 Oct 2014 14:43:15 GMT





 /*-secure-
    {"isSuccessful":true,"responseID":"1516","properties":{"si.auth.type":"maximo"}}*/POST /AnywhereWorkManagement/apps/services/api/WorkExecution/iphone/my_custom_auth_request_url HTTP/1.1
    Host: mobilenext1.tivlab.austin.ibm.com
    Accept-Language: en_US
    User-Agent: Mozilla/5.0 (iPod touch; CPU iPhone OS 7_1_2 like Mac OS X) AppleWebKit/537.51.2 (KHTML, like Gecko) Mobile/11D257 (384405120)/Worklight/6.1.0.02.20141006-1624
    X-Requested-With: XMLHttpRequest
    Accept: text/javascript, text/html, application/xml, text/xml, */*
    Content-Type: application/x-www-form-urlencoded; charset=UTF-8
    x-wl-app-version: 7.5.1.1
    Connection: keep-alive
    Cookie: WL_PERSISTENT_COOKIE=0983cfc8-8526-48c9-99cb-72659cb934b4; JSESSIONID=0000wSxsNgF79M62_UJTNmXKKYC:2e8ee48e-dec4-4c69-b8b4-ad37f839f1be
    x-wl-device-id: 36CDA8F2-F4E9-49D8-8CBB-A250FDC3B8FA
    Content-Length: 62
    Origin: file://
    Accept-Encoding: gzip, deflate

    username=wilson&password=wilson&authType=maximo&langcode=en-USHTTP/1.1 200 OK
    X-Powered-By: Servlet/3.0
    P3P: policyref="/w3c/p3p.xml", CP="CAO DSP COR CURa ADMa DEVa OUR IND PHY ONL UNI COM NAV INT DEM PRE"
    Content-Type: application/json; charset=UTF-8
    Cache-Control: no-cache, must-revalidate
    Content-Language: en-US
    Transfer-Encoding: chunked
    Date: Fri, 10 Oct 2014 14:43:15 GMT

    19
    {"authStatus":"complete"}
    0
我在服务器日志中发现,这与worklight server的503错误相对应,我可以通过发布相同的登录URL来重现。然而,在我们的Worklight控制台中,iphone上列出的每个应用程序只有一个版本

 [10/10/14 10:37:54:063 CDT] 00000485 com.worklight.gadgets.serving.GadgetAPIServlet               E FWLSE0020E: Ajax request exception: The environment 'iphone' supports multiple versions, therefore you must request it with a version parameter. [project AnywhereWorkManagement]
[10/10/14 10:37:54:066 CDT] 00000485 com.worklight.gadgets.serving.GadgetAPIServlet               E FWLSE0117E: Error code: 1, error description: INTERNAL_ERROR, error message: FWLSE0069E: An internal error occurred during gadget request  [project AnywhereWorkManagement]The environment 'iphone' supports multiple versions, therefore you must request it with a version parameter., User Identity {wl_authenticityRealm=null, CustomAuthenticationRealm=null, wl_remoteDisableRealm=null, wl_antiXSRFRealm=null, wl_deviceAutoProvisioningRealm=null, wl_deviceNoProvisioningRealm=null, wl_anonymousUserRealm=null}. [project AnywhereWorkManagement] 
斯科特

解决方法是从服务器URL中删除尾部斜杠

对于永久性修复,我建议您打开一个PMR,以便开发团队可以仔细调查该问题。 在这样做时,请提供一个可复制的测试用例,因为流确实工作得很好,但在您的流中似乎不工作,所以需要更好地了解它到底在哪里失败。请务必在说明中提供此问题


可能是您正在更改质询处理程序中某个位置的URL?

Scott,请提及Worklight版本及其内部版本号。Scott,我也不相信后面的斜杠是罪魁祸首。该斜杠是Worklight在构建过程中需要并添加的,因为在该斜杠之后,URL实际上会继续,即:-请生成一个连接成功的Wireshark日志,以及一个连接失败的Wireshark日志。1从什么和到什么,您是否在设置屏幕中更改服务器URL?2 wireshark日志,是成功连接或失败连接的日志…1。从…起https:///AnywhereWorkManagement/ 到https:///AnywhereWorkManagement 没有尾随斜杠和2我现在已经添加了两个日志。请注意,成功连接wireshark.log根本没有对Worklight登录URL的显式调用。也许更改尾部斜杠会迫使worklight登录提前完成,或者其他什么?哪些设备失败,哪些成功?这样的更改应该会影响所有设备,而不是一些设备。我不认为我们正在更改质询处理程序中的url。在调用submitLoginForm方法之前,我可以在日志中看到正确的URL。我认为,如果没有提前成功登录Worklight,submitLoginForm将失败,并且命令行中出现空值。