MFP 7.1 - 如果应用程序在后台保留一段时间,则会出现未经授权的错误

时间:2016-04-26 20:04:11

标签: ibm-mobilefirst

当App加载一切正常但是如果App在后台保持一段时间就像15到20分钟然后如果有任何适配器调用我们开始获得Unauthorized错误并且服务器和客户端之间的通信停止,直到app被杀死并重新加载。

XHR finished loading: POST "http://hostname:10080/MyProject/apps/services/api/MYMobileApp/common/login".
[mfpAuth.helper.auth] _isCustomResponse():
klass {request: klass, transport: XMLHttpRequest, readyState: 4, status: 200, statusText: "OK"…}
POST http://hostname:10080/MyProject/apps/services/my_custom_auth_request_url 500 (Internal Server Error)
XHR finished loading: POST "http://hostname:10080/MyProject/apps/services/my_custom_auth_request_url".
[mfpAuth.helper.auth] _submitLoginFormCallback(): response: {"request":{"options":{"method":"post","asynchronous":true,"contentType":"application/x-www-form-urlencoded","encoding":"UTF-8","parameters":{"username":"BKAC7759","password":"TODAY01"},"evalJSON":true,"evalJS":true,"requestHeaders":{"x-wl-app-version":"1.0","X-WL-ClientId":"txi6uhiRuF","X-WL-S-ClientId":"txi6uhiRuF","X-WL-Session":"a024e87e-4f12-1ec2-4d5c-d8a2b82fd896"}},"transport":{},"url":"/MyProject/apps/services/my_custom_auth_request_url","method":"post","parameters":{"username":"BKAC7759","password":"TODAY01"},"trackingId":"2e3aebe5-3ba1-2ac2-332d-37d6f33b868f","networkMetadata":{"$path":"http://hostname:10080/MyProject/apps/services/my_custom_auth_request_url","$category":"network","$trackingid":"2e3aebe5-3ba1-2ac2-332d-37d6f33b868f","$outboundTimestamp":1461690389486,"$inboundTimestamp":1461690389720,"$bytesReceived":0,"$roundTripTime":234,"$responseCode":500},"body":"username=BKAC7759&password=TODAY01","_complete":true},"transport":{},"readyState":4,"status":500,"statusText":"Internal Server Error","responseText":"Error 500: FWLSE0304E: Unhandled exception caught: SRVE0190E: File not found: /apps/services/my_custom_auth_request_url [project MyProject]\r\n","headerJSON":null,"responseXML":null,"responseJSON":null}
[mfpAuth.helper.auth] _isCustomResponse():
klass {request: klass, transport: XMLHttpRequest, readyState: 4, status: 500, statusText: "Internal Server Error"…}
Application details header: {"applicationDetails":{"platformVersion":"7.1.0.0","nativeVersion":""}}
Request [/MyProject/apps/services/api/MYMobileApp/common/login]
Application details header: {"applicationDetails":{"platformVersion":"7.1.0.0","nativeVersion":""}}
Request [http://hostname:10080/MyProject/authorization/v1/authorization]
Application details header: {"applicationDetails":{"platformVersion":"7.1.0.0","nativeVersion":""}}
Request [/MyProject/apps/services/api/MYMobileApp/common/login]
[MY.controllers.login] _loginComplete(): login step completed: undefined
XHR finished loading: POST "http://hostname:10080/MyProject/apps/services/api/MYMobileApp/common/login".
[mfpAuth.helper.auth] _isCustomResponse():
klass {request: klass, transport: XMLHttpRequest, readyState: 4, status: 200, statusText: "OK"…}
[mfpAuth.helper.auth] _handleChallenge(): Handle Challenge : realm:  MYRealm
[mfpAuth.helper.auth] _handleChallenge(): Challenge Required.
[MY.controllers.login] _loginRequired(): login required: {"authStatus":"required"}
XHR finished loading: POST "http://hostname:10080/MyProject/apps/services/api/MYMobileApp/common/login".
[mfpAuth.helper.auth] _isCustomResponse():
klass {request: klass, transport: XMLHttpRequest, readyState: 4, status: 200, statusText: "OK"…}
XHR finished loading: GET "http://hostname:10080/MyProject/authorization/v1/authorization?response…F%2Fmfpredirecturi&scope=MYRealm&isAjaxRequest=true&x=0.3972540041119985".
[mfpAuth.helper.auth] _isCustomResponse():
klass {request: klass, transport: XMLHttpRequest, readyState: 4, status: 200, statusText: "OK"…}
Request [/MyProject/apps/services/api/MYMobileApp/common/heartbeat]
Application details header: {"applicationDetails":{"platformVersion":"7.1.0.0","nativeVersion":""}}
XHR finished loading: POST "http://hostname:10080/MyProject/apps/services/api/MYMobileApp/common/heartbeat".
[mfpAuth.helper.auth] _isCustomResponse():
klass {request: klass, transport: XMLHttpRequest, readyState: 4, status: 200, statusText: "OK"…}
response [/MyProject/apps/services/api/MYMobileApp/common/heartbeat] success: 
Heartbeat sent successfully
[MY.controllers.login] buttonClicked(): Enter
Request [/MyProject/apps/services/api/MYMobileApp/common/login]
Application details header: {"applicationDetails":{"platformVersion":"7.1.0.0","nativeVersion":""}}
[mfpAuth.helper.auth] submitLogin(): realm, username  MYRealm BKAC7759
Request [login]
[MY.controllers.login] buttonClicked(): Exit
XHR finished loading: POST "http://hostname:10080/MyProject/apps/services/api/MYMobileApp/common/login".
[mfpAuth.helper.auth] _isCustomResponse():
klass {request: klass, transport: XMLHttpRequest, readyState: 4, status: 200, statusText: "OK"…}
XHR finished loading: POST "http://hostname:10080/MyProject/apps/services/my_custom_auth_request_url".
[mfpAuth.helper.auth] _submitLoginFormCallback(): response: {"request":{"options":{"method":"post","asynchronous":true,"contentType":"application/x-www-form-urlencoded","encoding":"UTF-8","parameters":{"username":"BKAC7759","password":"TODAY01"},"evalJSON":true,"evalJS":true,"requestHeaders":{"x-wl-app-version":"1.0","X-WL-ClientId":"txi6uhiRuF","X-WL-S-ClientId":"txi6uhiRuF","X-WL-Session":"a024e87e-4f12-1ec2-4d5c-d8a2b82fd896"}},"transport":{},"url":"/MyProject/apps/services/my_custom_auth_request_url","method":"post","parameters":{"username":"BKAC7759","password":"TODAY01"},"trackingId":"4866d09a-e7f5-8026-63dc-cb33c8aa2ac4","networkMetadata":{"$path":"http://hostname:10080/MyProject/apps/services/my_custom_auth_request_url","$category":"network","$trackingid":"4866d09a-e7f5-8026-63dc-cb33c8aa2ac4","$outboundTimestamp":1461690398949,"$inboundTimestamp":1461690401013,"$bytesReceived":25,"$roundTripTime":2064,"$responseCode":200},"body":"username=BKAC7759&password=TODAY01","_complete":true},"transport":{},"readyState":4,"status":200,"statusText":"OK","responseText":"{\"authStatus\":\"complete\"}","headerJSON":null,"responseXML":null,"responseJSON":{"authStatus":"complete"}}
[mfpAuth.helper.auth] _isCustomResponse():
klass {request: klass, transport: XMLHttpRequest, readyState: 4, status: 200, statusText: "OK"…}
[mfpAuth.helper.auth] _handleChallenge(): Handle Challenge : realm:  MYRealm
[mfpAuth.helper.auth] _handleChallenge(): Challenge Not Required
Application details header: {"applicationDetails":{"platformVersion":"7.1.0.0","nativeVersion":""}}
Request [/MyProject/apps/services/api/MYMobileApp/common/login]
Application details header: {"applicationDetails":{"platformVersion":"7.1.0.0","nativeVersion":""}}
Request [/MyProject/apps/services/api/MYMobileApp/common/login]
Application details header: {"applicationDetails":{"platformVersion":"7.1.0.0","nativeVersion":""}}
Request [http://hostname:10080/MyProject/authorization/v1/authorization]
Application details header: {"applicationDetails":{"platformVersion":"7.1.0.0","nativeVersion":""}}
Request [/MyProject/apps/services/api/MYMobileApp/common/login]
[MY.controllers.login] _loginComplete(): login step completed: undefined
XHR finished loading: POST "http://hostname:10080/MyProject/apps/services/api/MYMobileApp/common/login".
[mfpAuth.helper.auth] _isCustomResponse():
klass {request: klass, transport: XMLHttpRequest, readyState: 4, status: 200, statusText: "OK"…}
[mfpAuth.helper.auth] _handleChallenge(): Handle Challenge : realm:  MYRealm
[MY.controllers.login] _loginComplete(): login step completed: undefined
XHR finished loading: POST "http://hostname:10080/MyProject/apps/services/api/MYMobileApp/common/login".
[mfpAuth.helper.auth] _isCustomResponse():
klass {request: klass, transport: XMLHttpRequest, readyState: 4, status: 200, statusText: "OK"…}
XHR finished loading: POST "http://hostname:10080/MyProject/apps/services/api/MYMobileApp/common/login".
[mfpAuth.helper.auth] _isCustomResponse():
klass {request: klass, transport: XMLHttpRequest, readyState: 4, status: 200, statusText: "OK"…}
XHR finished loading: GET "http://hostname:10080/MyProject/authorization/v1/authorization?response…F%2Fmfpredirecturi&scope=MYRealm&isAjaxRequest=true&x=0.6668569553490127".
[mfpAuth.helper.auth] _isCustomResponse():
klass {request: klass, transport: XMLHttpRequest, readyState: 4, status: 222, statusText: "Undefined"…}
response [http://hostname:10080/MyProject/authorization/v1/authorization] success: 
[mfpAuth.helper.auth] _isCustomResponse():
klass {request: klass, transport: XMLHttpRequest, readyState: 4, status: 222, statusText: "Undefined"…}
Request [http://hostname:10080/MyProject/authorization/v1/token]
Application details header: {"applicationDetails":{"platformVersion":"7.1.0.0","nativeVersion":""}}
XHR finished loading: POST "http://hostname:10080/MyProject/authorization/v1/token".
[mfpAuth.helper.auth] _isCustomResponse():
klass {request: klass, transport: XMLHttpRequest, readyState: 4, status: 200, statusText: "OK"…}
response [http://hostname:10080/MyProject/authorization/v1/token] success: {"scope":"MYRealm wl_antiXSRFRealm wl_anonymousUserRealm","token_type":"bearer","expires_in":3600,"id_token":"eyJhbGciOiJSUzI1NiIsImpwayI6eyJhbGciOiJSU0EiLCJleHAiOiJBUUFCIiwibW9kIjoiQU1VTDg0WXZiN0RXVVpaUFRlaEIydUVwT2Mwd0ZNLXdPQ05aODFLQTkyYkc4Sm00UlNCNUQyU2xiU2U3UGlQVVZfcmJsd1BrSWQ2NWdvLTExaDg5Y0ltZDQxc0NxcnY4Q3hzVThGYUNVV1Q5TXl6Sy1tR2RBeWJGOTNUWTM2WEVUaC1tMzVGcE9qeG1abXpFVFcxalZZU1N2eDVzNFFjOXZfdDZaTG9ZN0VIOEMySjZucXdwcENqMlhVR1MwWWhLYkNEYWlXRmcwTURTbHNIWWdVaGJqZXloTVdZWHM1WnVKeUc3SmNUQ0V2OENScVdVNEIwMEV3a3hOZUxnRHVTd3RXdVI1MnYtY19vNm41Wi1VODhwRGU3MG51RWVhYmIxX21EQXE0T3cyUTIzakdmR2hCa1Z4OHlhR2NtZjFfMkozbmtvRGJQWF9vR25MbXA0dDltRFpZOCJ9fQ.eyJpbWYudXNlciI6eyJpZCI6IkJLQUM3NzU5IiwiYXV0aEJ5IjoiRENTU1JlYWxtIiwiYXR0cmlidXRlcyI6IntcImxvZ2luSWRlbnRpdHlcIjpcIntcXFwidXNlcm5hbWVcXFwiOlxcXCJCS0FDNzc1OVxcXCIsXFxcImxvZ2luU3RhdHVzXFxcIjpcXFwic3VjY2Vzc1xcXCIsXFxcImZpcnN0TmFtZVxcXCI6XFxcIkJST09LRSAgICAgICAgIFxcXCIsXFxcImxhc3ROYW1lXFxcIjpcXFwiS0FDRVZJQyAgICAgICAgICAgICBcXFwiLFxcXCJzdGF0dXNcXFwiOlxcXCJBY3RpdmVcXFwiLFxcXCJpcm5cXFwiOlxcXCI1MzQ0OTg0OVxcXCIsXFxcInVzZXJUeXBlXFxcIjpcXFwiQ29uc3RpdHVlbnRcXFwiLFxcXCJhbGxvd2VkUm9sZXNcXFwiOltcXFwiQ3VzdG"}
XHR finished loading: GET "http://hostname:10080/MyProject/adapters/SecurityAdapter/security/login".
[mfpAuth.helper.auth] _isCustomResponse():
klass {responseHeaders: Object, status: 200, responseText: "{'secretData':'1234567'}", invocationContext: null}
[MY.controllers.login] Login Completes Successfully
[MY.controllers.login] :loginIdentity: {"username":"BKAC7759","loginStatus":"success","firstName":"BROOKE         ","lastName":"KACEVIC             ","status":"Active","irn":"53449849","userType":"Constituent","allowedRoles":["Custodian","NonCustodian"],"userCases":[{"irn":771036557,"caseNumber":90018572,"firstName":"NOAH           ","lastName":"LANDI-RODRIGUEZ     ","role":"Custodian"},{"irn":52292240,"caseNumber":170022954,"firstName":"NOAH           ","lastName":"LANDI-RODRIGUEZ     ","role":"Custodian"},{"irn":53449831,"caseNumber":110022149,"firstName":"BELINDA        ","lastName":"KACEVIC             ","role":"NonCustodian"}]}
[MY.controllers.login] :UserInfoService: {"username":"BKAC7759","cplist":[{"irn":771036557,"caseNumber":90018572,"firstName":"NOAH           ","lastName":"LANDI-RODRIGUEZ     ","role":"Custodian"},{"irn":52292240,"caseNumber":170022954,"firstName":"NOAH           ","lastName":"LANDI-RODRIGUEZ     ","role":"Custodian"},{"irn":53449831,"caseNumber":110022149,"firstName":"BELINDA        ","lastName":"KACEVIC             ","role":"NonCustodian"}],"irn":"53449849","firstname":"BROOKE         ","lastname":"KACEVIC             ","loginstatus":"success","allowedroles":["Custodian","NonCustodian"],"usertype":"Constituent","status":true,"selectedcase":[],"limbo":false,"demographics":[]}
Request [/MyProject/apps/services/api/MYMobileApp/common/init]
Application details header: {"applicationDetails":{"platformVersion":"7.1.0.0","nativeVersion":""}}
XHR finished loading: POST "http://hostname:10080/MyProject/apps/services/api/MYMobileApp/common/init".
[mfpAuth.helper.auth] _isCustomResponse():
klass {request: klass, transport: XMLHttpRequest, readyState: 4, status: 200, statusText: "OK"…}
response [/MyProject/apps/services/api/MYMobileApp/common/init] success: /*-secure-
{"userInfo":{"SubscribeServlet":{"userId":null,"attributes":{},"isUserAuthenticated":0,"displayName":null,"deviceId":null},"wl_directUpdateRealm":{"userId":null,"attributes":{},"isUserAuthenticated":0,"displayName":null,"deviceId":null},"send-message":{"userId":null,"attributes":{},"isUserAuthenticated":0,"displayName":null,"deviceId":null},"get-subscriptions":{"userId":null,"attributes":{},"isUserAuthenticated":0,"displayName":null,"deviceId":null},"wl_deviceAutoProvisioningRealm":{"userId":null,"attributes":{},"isUserAuthenticated":0,"displayName":null,"deviceId":null},"wl_deviceNoProvisioningRealm":{"userId":null,"attributes":{},"isUserAuthenticated":0,"displayName":null,"deviceId":null},"send-bulk-messages":{"userId":null,"attributes":{},"isUserAuthenticated":0,"displayName":null,"deviceId":null},"wl_anonymousUserRealm":{"userId":"3622e77a-b9f1-4fbe-8201-34bf2130d1dc","attributes":{},"isUserAuthenticated":1,"displayName":"3622e77a-b9f1-4fbe-8201-34bf2130d1dc","deviceId":"3622e77a-b9f1-4fbe-8201-34bf2130d1dc"},"wl_authenticityRealm":{"userId":null,"attributes":{},"isUserAuthenticated":0,"displayName":null,"deviceId":null},"wl_remoteDisableRealm":{"userId":null,"attributes":{},"isUserAuthenticated":0,"displayName":null,"deviceId":null},"MYRealm":{"userId":"BKAC7759","attributes":{"loginIdentity":"{\"username\":\"BKAC7759\",\"loginStatus\":\"success\",\"firstName\":\"BROOKE         \",\"lastName\":\"KACEVIC             \",\"status\":\"Active\",\"irn\":\"53449849\",\"userType\":\"Constituent\",\"allowedRoles\":[\"Custodian\",\"NonCustodian\"],\"userCases\":[{\"irn\":771036557,\"caseNumber\":90018572,\"firstName\":\"NOAH           \",\"lastName\":\"LANDI-RODRIGUEZ     \",\"role\":\"Custodian\"},{\"irn\":52292240,\"caseNumber\":170022954,\"firstName\":\"NOAH           \",\"lastName\":\"LANDI-RODRIGUEZ     \",\"role\":\"Custodian\"},{\"irn\":53449831,\"caseNumber\":110022149,\"firstName\":\"BELINDA        \",\"lastName\":\"KACEVIC             \",\"role\":\"NonCustodian\"}]}"},"isUserAuthenticated":1,"displayName":null,"deviceId":"BKAC7759"},"SampleAppRealm":{"userId":null,"attributes":{},"isUserAuthenticated":0,"displayName":null,"deviceId":null},"wl_antiXSRFRealm":{"userId":"uu39jsbudjfiuttj6ohr2i7e1b","attributes":{},"isUserAuthenticated":1,"displayName":"uu39jsbudjfiuttj6ohr2i7e1b","deviceId":"uu39jsbudjfiuttj6ohr2i7e1b"},"myserver":{"userId":"3622e77a-b9f1-4fbe-8201-34bf2130d1dc","attributes":{},"isUserAuthenticated":1,"displayName":"3622e77a-b9f1-4fbe-8201-34bf2130d1dc","deviceId":"3622e77a-b9f1-4fbe-8201-34bf2130d1dc"}},"userPrefs":{},"gadgetProps":{"ENVIRONMENT":"common"}}*/
wlclient connect success
Uncaught Exception: Uncaught TypeError: Cannot read property 'subscribe' of undefined at (compiled_code):3900
Uncaught TypeError: Cannot read property 'subscribe' of undefined
XHR finished loading: POST "http://hostname:10080/MyProject/adapters/PaymentAdapter/payment/info/cp".
[mfpAuth.helper.auth] _isCustomResponse():
klass {responseHeaders: Object, status: 200, responseText: "[]", responseJSON: Array[0], invocationContext: null}
resp: klass {responseHeaders: Object, status: 200, responseText: "[]", responseJSON: Array[0], invocationContext: null}
[MY.controllers.paymenthistory] payment info cp on case change successful
XHR finished loading: POST "http://hostname:10080/MyProject/adapters/CaseAdapter/case/info".
[mfpAuth.helper.auth] _isCustomResponse():
klass {responseHeaders: Object, status: 200, responseText: "{"funDesc":"Process used to close a case when chil…IGUEZ","children":{"name":["BRAYDEN KACEVIC"]}}]}", responseJSON: Object, invocationContext: null}
[MY.controllers.home] caseDetails Response{"funDesc":"Process used to close a case when children emancipate or other reasons exist. ","caseDetails":[{"_case":90018572,"statusCode":"Case Closure","statusDate":{"year":2012,"month":2,"day":3,"timezone":-2147483648,"hour":-2147483648,"minute":-2147483648,"second":-2147483648},"office":{"name":"LOOKOUT MOUNTAIN OFFICE","street1":"10056 N HWY 27","street2":"","street3":"","city":"ROCK SPRING","state":"GA","zip5":"30739","zip4":"","hours":"M-F 8:00 A.M. to 5:00 P.M.","fax":"7063750700","email":"ROCKSPRINGCSE@MY.GA.GOV                          "},"otherParent":"NOAH LANDI-RODRIGUEZ","children":{"name":["BRAYDEN KACEVIC"]}}]}
XHR finished loading: POST "http://hostname:10080/MyProject/adapters/CaseAdapter/case/info".
[mfpAuth.helper.auth] _isCustomResponse():
klass {responseHeaders: Object, status: 200, responseText: "{"funDesc":"Process of establishing paternity (leg…IGUEZ","children":{"name":["BRAYDEN KACEVIC"]}}]}", responseJSON: Object, invocationContext: null}
[MY.controllers.home] caseDetails Response{"funDesc":"Process of establishing paternity (legal fatherhood) and/or child support order.","caseDetails":[{"_case":170022954,"statusCode":"Establishment","statusDate":{"year":2013,"month":1,"day":8,"timezone":-2147483648,"hour":-2147483648,"minute":-2147483648,"second":-2147483648},"office":{"name":"LOOKOUT MOUNTAIN OFFICE","street1":"10056 N HWY 27","street2":"","street3":"","city":"ROCK SPRING","state":"GA","zip5":"30739","zip4":"","hours":"M-F 8:00 A.M. to 5:00 P.M.","fax":"7063750700","email":"ROCKSPRINGCSE@MY.GA.GOV                          "},"otherParent":"NOAH LANDI-RODRIGUEZ","children":{"name":["BRAYDEN KACEVIC"]}}]}
XHR finished loading: POST "http://hostname:10080/MyProject/adapters/PaymentAdapter/payment/info/cp".
[mfpAuth.helper.auth] _isCustomResponse():
klass {responseHeaders: Object, status: 200, responseText: "[]", responseJSON: Array[0], invocationContext: null}
[mfpAuth.helper.auth] _isCustomResponse():
klass {responseHeaders: Object, status: 200, responseText: "{"funDesc":"Process of establishing paternity (leg…IGUEZ","children":{"name":["BRAYDEN KACEVIC"]}}]}", responseJSON: Object, invocationContext: null}
[MY.controllers.home] caseDetails Response{"funDesc":"Process of establishing paternity (legal fatherhood) and/or child support order.","caseDetails":[{"_case":170022954,"statusCode":"Establishment","statusDate":{"year":2013,"month":1,"day":8,"timezone":-2147483648,"hour":-2147483648,"minute":-2147483648,"second":-2147483648},"office":{"name":"LOOKOUT MOUNTAIN OFFICE","street1":"10056 N HWY 27","street2":"","street3":"","city":"ROCK SPRING","state":"GA","zip5":"30739","zip4":"","hours":"M-F 8:00 A.M. to 5:00 P.M.","fax":"7063750700","email":"ROCKSPRINGCSE@MY.GA.GOV                          "},"otherParent":"NOAH LANDI-RODRIGUEZ","children":{"name":["BRAYDEN KACEVIC"]}}]}
XHR finished loading: POST "http://hostname:10080/MyProject/adapters/PaymentAdapter/payment/info/ncp".
[mfpAuth.helper.auth] _isCustomResponse():
klass {responseHeaders: Object, status: 200, responseText: "[{"date":{"year":2015,"month":7,"day":8,"timezone"…3648,"minute":-2147483648,"second":-2147483648}}]", responseJSON: Array[6], invocationContext: null}
resp: klass {responseHeaders: Object, status: 200, responseText: "[{"date":{"year":2015,"month":7,"day":8,"timezone"…3648,"minute":-2147483648,"second":-2147483648}}]", responseJSON: Array[6], invocationContext: null}
[MY.controllers.paymenthistory] payment info ncp on case change successful
resp: klass {responseHeaders: Object, status: 200, responseText: "[{"date":{"year":2015,"month":7,"day":8,"timezone"…3648,"minute":-2147483648,"second":-2147483648}}]", responseJSON: Array[6], invocationContext: null}
Deferred long-running timer task(s) to improve scrolling smoothness. See crbug.com/574343.
toState=== Object {url: "/paymenthistory", views: Object, name: "app.paymenthistory"}
fromState=== Object {url: "/home", views: Object, name: "app.home"}
timeout elapsedTime :  5.733
timeout :  Stop
timeout : reStartSession 
XHR finished loading: POST "http://hostname:10080/MyProject/adapters/PaymentAdapter/payment/info/cp".
[mfpAuth.helper.auth] _isCustomResponse():
klass {responseHeaders: Object, status: 200, responseText: "[]", responseJSON: Array[0], invocationContext: null}
resp: klass {responseHeaders: Object, status: 200, responseText: "[]", responseJSON: Array[0], invocationContext: null}invocationContext: nullresponseHeaders: ObjectresponseJSON: Array[0]responseText: "[]"status: 200__proto__: Object
[MY.controllers.paymenthistory] payment info cp on case change successful
Deferred long-running timer task(s) to improve scrolling smoothness. See crbug.com/574343.
XHR finished loading: POST "http://hostname:10080/MyProject/adapters/PaymentAdapter/payment/info/cp".
[mfpAuth.helper.auth] _isCustomResponse():
klass {responseHeaders: Object, status: 200, responseText: "[]", responseJSON: Array[0], invocationContext: null}
resp: klass {responseHeaders: Object, status: 200, responseText: "[]", responseJSON: Array[0], invocationContext: null}
[MY.controllers.paymenthistory] payment info cp on case change successful
XHR finished loading: POST "http://hostname:10080/MyProject/adapters/PaymentAdapter/payment/info/ncp".
[mfpAuth.helper.auth] _isCustomResponse():
klass {responseHeaders: Object, status: 200, responseText: "[{"date":{"year":2015,"month":7,"day":8,"timezone"…3648,"minute":-2147483648,"second":-2147483648}}]", responseJSON: Array[6], invocationContext: null}
resp: klass {responseHeaders: Object, status: 200, responseText: "[{"date":{"year":2015,"month":7,"day":8,"timezone"…3648,"minute":-2147483648,"second":-2147483648}}]", responseJSON: Array[6], invocationContext: null}
[MY.controllers.paymenthistory] payment info ncp on case change successful
resp: klass {responseHeaders: Object, status: 200, responseText: "[{"date":{"year":2015,"month":7,"day":8,"timezone"…3648,"minute":-2147483648,"second":-2147483648}}]", responseJSON: Array[6], invocationContext: null}

[mfpAuth.helper.auth] _isCustomResponse():
klass {request: klass, transport: XMLHttpRequest, readyState: 4, status: 200, statusText: "OK"…}
response [/MyProject/apps/services/api/MYMobileApp/common/heartbeat] success: 
Heartbeat sent successfully
Request [/MyProject/apps/services/api/MYMobileApp/common/heartbeat]
Application details header: {"applicationDetails":{"platformVersion":"7.1.0.0","nativeVersion":""}}
XHR finished loading: POST "http://hostname:10080/MyProject/apps/services/api/MYMobileApp/common/heartbeat".
[mfpAuth.helper.auth] _isCustomResponse():
klass {request: klass, transport: XMLHttpRequest, readyState: 4, status: 200, statusText: "OK"…}
response [/MyProject/apps/services/api/MYMobileApp/common/heartbeat] success: 
Heartbeat sent successfully
timeout elapsedTime :  600.004
Request [http://hostname:10080/MyProject/authorization/v1/authorization]
Application details header: {"applicationDetails":{"platformVersion":"7.1.0.0","nativeVersion":""}}
XHR finished loading: GET "http://hostname:10080/MyProject/authorization/v1/authorization?client_id=txi6uhiRuF&scope=-MYRealm&isAjaxRequest=true&x=0.6998167100291259".
[mfpAuth.helper.auth] _isCustomResponse():
klass {request: klass, transport: XMLHttpRequest, readyState: 4, status: 200, statusText: "OK"…}
response [http://hostname:10080/MyProject/authorization/v1/authorization] success: 
timeout : - Timeout occurred
[MY.timeoutFactory] timeout : WL.Client.logout.onSuccess():MYRealm: resp is {"responseHeaders":{"Date":"Tue, 26 Apr 2016 17:16:59 GMT","X-Powered-By":"Servlet/3.0","Content-Length":"0","Content-Language":"en-US"},"status":200,"responseText":"","invocationContext":null,"response":{"request":{"options":{"method":"get","asynchronous":true,"contentType":"application/x-www-form-urlencoded","encoding":"UTF-8","parameters":{"client_id":"txi6uhiRuF","scope":"-MYRealm","isAjaxRequest":"true","x":0.6998167100291259},"evalJSON":true,"evalJS":true,"timeout":30000,"onAuthentication":null,"isAuthResponse":null,"optionalHeaders":{"X-WL-Session":"a024e87e-4f12-1ec2-4d5c-d8a2b82fd896"},"requestHeaders":{"x-wl-app-version":"1.0","x-wl-app-details":"{\"applicationDetails\":{\"platformVersion\":\"7.1.0.0\",\"nativeVersion\":\"\"}}","WL-Instance-Id":"uu39jsbudjfiuttj6ohr2i7e1b","X-WL-Session":"a024e87e-4f12-1ec2-4d5c-d8a2b82fd896","X-WL-ClientId":"txi6uhiRuF","X-WL-S-ClientId":"txi6uhiRuF"}},"transport":{},"url":"http://hostname:10080/MyProject/authorization/v1/authorization?client_id=txi6uhiRuF&scope=-MYRealm&isAjaxRequest=true&x=0.6998167100291259","method":"get","parameters":{"client_id":"txi6uhiRuF","scope":"-MYRealm","isAjaxRequest":"true","x":"0.6998167100291259"},"trackingId":"3e3f7a4d-ad91-48b5-1c4d-475c77294c35","networkMetadata":{"$path":"http://hostname:10080/MyProject/authorization/v1/authorization?client_id=txi6uhiRuF&scope=-MYRealm&isAjaxRequest=true&x=0.6998167100291259","$category":"network","$trackingid":"3e3f7a4d-ad91-48b5-1c4d-475c77294c35","$outboundTimestamp":1461691020144,"$inboundTimestamp":1461691020350,"$bytesReceived":0,"$roundTripTime":206,"$responseCode":200},"body":null,"_complete":true},"transport":{},"readyState":4,"status":200,"statusText":"OK","responseText":"","headerJSON":null,"responseXML":null,"responseJSON":null}}
GET http://hostname:10080/MyProject/adapters/SecurityAdapter/security/login 401 (Unauthorized)
XHR finished loading: GET "http://hostname:10080/MyProject/adapters/SecurityAdapter/security/login".
Request [http://hostname:10080/MyProject/authorization/v1/authorization]
Application details header: {"applicationDetails":{"platformVersion":"7.1.0.0","nativeVersion":""}}
GET http://hostname:10080/MyProject/apps/services/preview/MYMobileApp/common/1.0/default/icon%20ion-help 404 (Not Found)
GET http://hostname:10080/MyProject/apps/services/preview/MYMobileApp/common/1.0/default/icon%20ion-information 404 (Not Found)
XHR finished loading: GET "http://hostname:10080/MyProject/authorization/v1/authorization?response…2F%2Fmfpredirecturi&scope=MYRealm&isAjaxRequest=true&x=0.420548791173293".

[mfpAuth.helper.auth] _isCustomResponse():
klass {request: klass, transport: XMLHttpRequest, readyState: 4, status: 200, statusText: "OK"…}
response [/MyProject/apps/services/api/MYMobileApp/common/heartbeat] success: 
Heartbeat sent successfully
Deferred long-running timer task(s) to improve scrolling smoothness. See crbug.com/574343.
JSONStore Find All returned : [{"_id":1,"json":{"userAgreementFlag":true}}]
Deferred long-running timer task(s) to improve scrolling smoothness. See crbug.com/574343.
toState=== Object {url: "/helpfulinformation", views: Object, name: "app.helpfulinformation"}
fromState=== Object {url: "/landing", views: Object, name: "app.landing"}
Deferred long-running timer task(s) to improve scrolling smoothness. See crbug.com/574343.
timeout elapsedTime :  1000.317
GET http://hostname:10080/MyProject/adapters/LocationAdapter/office/list 401 (Unauthorized)
XHR finished loading: GET "http://hostname:10080/MyProject/adapters/LocationAdapter/office/list".
timeout elapsedTime :  1008.765
GET http://hostname:10080/MyProject/adapters/LocationAdapter/office/list 401 (Unauthorized)
XHR finished loading: GET "http://hostname:10080/MyProject/adapters/LocationAdapter/office/list".
Request [/MyProject/apps/services/api/MYMobileApp/common/heartbeat]
Application details header: {"applicationDetails":{"platformVersion":"7.1.0.0","nativeVersion":""}}
XHR finished loading: POST "http://hostname:10080/MyProject/apps/services/api/MYMobileApp/common/heartbeat".
[mfpAuth.helper.auth] _isCustomResponse():
klass {request: klass, transport: XMLHttpRequest, readyState: 4, status: 200, statusText: "OK"…}
response [/MyProject/apps/services/api/MYMobileApp/common/heartbeat] success: 
Heartbeat sent successfully

wlAuthenticator-module.js

https://www.dropbox.com/s/786t87fdotcllwk/wlAuthenticator-module.js?dl=0

2 个答案:

答案 0 :(得分:0)

如果调用Object { _isScalar: false, source: Object, operator: Object },则需要挑战 IS 。你必须回答它,这是一个要求。

如果不需要质询,handleChallenge的工作就是isCustomResponse。{/ p>

如果false返回isCustomResponse,则需要回答此问题。

答案 1 :(得分:0)

我发现了这个问题。我们的isCustomResponse方法实现不正确。

我观察到,一旦实施了ChallengeHandler,如果我没有错,所有响应都将通过isCustomResponse方法。

通常,WL对象将在第一台服务器连接时生成toke,但在令牌过期后,如果发出请求,WL将获取新令牌并完成您的请求。获取新令牌的过程受第三个else if if条件或isCustomResponse方法的影响。

我将我的代码与MFP提供的customLoginModule进行了比较,发现额外条件没有意义。挑战处理程序只应在response.responseJSON.authStatus是" required"或者"完成"休息所有响应应该只返回customResponse

的错误
  this._isCustomResponse = function(response) {
if (!response || !response.responseJSON || response.responseText === null) {
                return false;
            }
 if (!response || !response.responseJSON || response.responseText === null) {
                return false;
            }
            else if (response.responseJSON.authStatus) { 
                return true;
            }
            else if (response.responseJSON.MyRealm && response.responseJSON.MyRealm.isUserAuthenticated) {
                return true;
            }  
}

删除第三个后,如果 - 解决了我的问题。

this._isCustomResponse = function(response) {
     if (!response || !response.responseJSON || response.responseText === null) {
                    return false;
                }
                else if (response.responseJSON.authStatus) { 
                    return true;
                } 
    }