我正在尝试执行给定here的示例应用程序,但面临问题。当我点击" Get Secret"数据按钮,请求到达适配器,但我得到一个失败的响应如下。
04-29 22:12:22.464: I/chromium(2802): [INFO:CONSOLE(34)] "=======getSecretData_CallbackFail========={"responseHeaders":{"X-Powered-By":"Servlet/3.0","Content-Type":"text/plain; charset=UTF-8","Content-Length":"21","Date":"Sat, 29 Apr 2017 16:41:31 GMT","WWW-Authenticate":"Bearer realm=\"imfAuthentication\", scope=\"AuthRealm\""},"status":401,"responseText":"missing_authorization","errorMsg":"Unauthorized","invocationContext":null}", source: file:///android_asset/www/default/js/main.js (34)
我正在使用Android手机测试应用程序。有人可以建议我做错了吗?
function getSecretData(){
var resourceRequest = new WLResourceRequest("/adapters/AuthenticationService/getSecretData", WLResourceRequest.GET, 30000);
resourceRequest.send().then(
getSecretData_CallbackOK,
getSecretData_CallbackFail
);
}
上述代码在客户端用于调用适配器。调用onAuthRequired
函数,但errormessage
未定义。
function onAuthRequired(headers, errorMessage){
WL.Logger.info("Authservice onAuthRequired--->"+errorMessage);
errorMessage = errorMessage ? errorMessage : null;
return {
authRequired: true,
errorMessage: errorMessage
};
}
答案 0 :(得分:0)
您的适配器的机密数据受域AuthRealm
保护,每当客户端向受保护的适配器端点发出请求时,它都会引发401未经授权的错误。基本上401是服务器抛出的挑战。
检查您是否已在this教程中的客户端代码中使用AuthRealm
域声明了已注册的质询处理程序。一旦客户端在挑战处理程序的帮助下成功应答服务器挑战,服务器将返回秘密数据。