调用 WLAuthorizationManager.obtainAccessToken 时状态为“201”和错误消息“已创建”的失败响应
Posted
技术标签:
【中文标题】调用 WLAuthorizationManager.obtainAccessToken 时状态为“201”和错误消息“已创建”的失败响应【英文标题】:Failure response with status "201" and error message "Created" When invoking WLAuthorizationManager.obtainAccessToken 【发布时间】:2019-05-17 05:42:56 【问题描述】:环境:
-
Windows Server 2012 R2
JRE 1.8.0_101
IBM WAS Liberty Core 8.5.5.5
IBM MFP 8.1
Apache Web 服务器
我们已经在上述环境中设置了 UAT。我们已经在服务器上部署了我们的应用程序,部署了用于用户身份验证的适配器和一个用于获取数据的资源适配器。
当我们调用没有安全性(未受保护)的适配器过程时,应用正在获取数据。但是,当我们尝试使用默认范围或自定义范围调用适配器过程而不是触发质询处理程序时,我们会收到错误状态为“201”和错误消息“已创建”的失败响应。
另一个观察结果是,当使用默认范围或 push.mobileclient
调用 WLAuthorizationManager.ObtainAccessToken
时,它会给出相同的失败响应,错误状态为“201”和错误消息“已创建”。相同的应用程序在开发环境中运行良好。
当我尝试使用https://domain:port/mfp/api/az/v1/token
从邮递员获取令牌并传递范围、grant_type 和必要的授权标头时,它提供了带有令牌的有效响应。但是当我们尝试通过获取令牌时,应用程序会给出失败响应。
失败响应
"status":201,"statusText":"Created","responseText":"","responseHeaders":"connection":"Keep-Alive","content-language":"en-US","content-length":"0","date":"Fri, 17 May 2019 05:42:45 GMT","keep-alive":"timeout=5, max=100","location":"/mfp/api/registration/clients/1e746550-e804-4ee7-88ba-b99896qqqqpwo","server":"Apache/2.4.39 (Win64) OpenSSL/1.1.1b","via":"1.1 ","x-powered-by":"Servlet/3.0","errorMsg":"Created","errorCode":"201"
【问题讨论】:
你找出问题所在和解决方法了吗? 【参考方案1】:201 不是 /token 端点所期望的响应代码。这很可能来自拓扑中的中间元素。您已经提到将 Apache Web 服务器作为配置的一部分 - 这是发送 201 吗?
而且,服务器的实际响应显示"server":"Apache/2.4.39 (Win64) OpenSSL/1.1.1b"
所以,这就是你可以做的事情
一个。尝试绕过网络服务器,看看是否能解决问题 - 很可能,它应该。
b.验证 Apache Web 服务器的配置设置以查看返回 201 的原因。
【讨论】:
【参考方案2】:派对迟到了,但对于仍然遇到此错误的任何人:
安装以下临时修复: 8.0.0.0-MFPF-IF202006151151
这解决了我的错误。似乎是 MobileFirst 中的一个错误,我花了很长时间才找到。
【讨论】:
以上是关于调用 WLAuthorizationManager.obtainAccessToken 时状态为“201”和错误消息“已创建”的失败响应的主要内容,如果未能解决你的问题,请参考以下文章
MFP 8.0 WLAuthorizationManager.obtainAccessToken 返回错误,错误代码为 CHALLENGE_HANDLING_CANCELED
在 mfp WL.Client.createSecurityCheckChallengeHandler() 或 WLAuthorizationManager.login() 中登录失败
无效的请求正文 - IBM MobileFirst 8.0 中 WLAuthorizationManager.obtainAccessToken 的 JSON 映射失败