调用WLAuthorizationManager.obtainAccessToken时,状态为“ 201”且错误消息为“ Created”的失败响应

时间:2019-05-17 05:42:57

标签: apache authentication oauth-2.0 ibm-mobilefirst mobilefirst-server

环境:

  1. Windows Server 2012 R2
  2. JRE 1.8.0_101
  3. IBM WAS Liberty Core 8.5.5.5
  4. IBM MFP 8.1
  5. Apache Web服务器

我们已经在上述环境中设置了UAT。我们已经在服务器上部署了应用程序,已经部署了用于用户身份验证的适配器,并且已经部署了用于获取数据的资源适配器。

当我们在没有安全性(不受保护)的情况下调用适配器过程时,应用程序正在获取数据。但是,当我们尝试使用默认范围或自定义范围来调用适配器过程而不是触发挑战处理程序时,我们将获得错误状态为“ 201”和错误消息为“已创建”的故障响应。

另一个观察结果是,当使用默认范围或ngOnInit(){ this.magnify(imgID, zoom) } magnify(imgID, zoom) { var img, glass, w, h, bw; img = document.getElementById(imgID); /*create magnifier glass:*/ glass = document.createElement("DIV"); glass.setAttribute("class", "img-magnifier-glass"); /*insert magnifier glass:*/ img.parentElement.insertBefore(glass, img); /*set background properties for the magnifier glass:*/ glass.style.backgroundImage = "url('" + img.src + "')"; glass.style.backgroundRepeat = "no-repeat"; glass.style.backgroundSize = (img.width * zoom) + "px " + (img.height * zoom) + "px"; bw = 3; w = glass.offsetWidth / 2; h = glass.offsetHeight / 2; /*execute a function when someone moves the magnifier glass over the image:*/ glass.addEventListener("mousemove", moveMagnifier); img.addEventListener("mousemove", moveMagnifier); /*and also for touch screens:*/ glass.addEventListener("touchmove", moveMagnifier); img.addEventListener("touchmove", moveMagnifier); function moveMagnifier(e) { var pos, x, y; /*prevent any other actions that may occur when moving over the image*/ e.preventDefault(); /*get the cursor's x and y positions:*/ pos = getCursorPos(e); x = pos.x; y = pos.y; /*prevent the magnifier glass from being positioned outside the image:*/ if (x > img.width - (w / zoom)) {x = img.width - (w / zoom);} if (x < w / zoom) {x = w / zoom;} if (y > img.height - (h / zoom)) {y = img.height - (h / zoom);} if (y < h / zoom) {y = h / zoom;} /*set the position of the magnifier glass:*/ glass.style.left = (x - w) + "px"; glass.style.top = (y - h) + "px"; /*display what the magnifier glass "sees":*/ glass.style.backgroundPosition = "-" + ((x * zoom) - w + bw) + "px -" + ((y * zoom) - h + bw) + "px"; } function getCursorPos(e) { var a, x = 0, y = 0; e = e || window.event; /*get the x and y positions of the image:*/ a = img.getBoundingClientRect(); /*calculate the cursor's x and y coordinates, relative to the image:*/ x = e.pageX - a.left; y = e.pageY - a.top; /*consider any page scrolling:*/ x = x - window.pageXOffset; y = y - window.pageYOffset; return {x : x, y : y}; } } 调用WLAuthorizationManager.ObtainAccessToken时,它会给出相同的故障响应,错误状态为“ 201”,错误消息为“已创建”。相同的应用程序在开发环境中可以正常工作。

当我尝试使用push.mobileclient从邮递员那里获取令牌并传递范围,grant_type和必要的授权标头时,它会提供带有令牌的有效响应。但是,当我们尝试通过获取令牌尝试从应用中获得失败响应时。

失败响应

https://domain:port/mfp/api/az/v1/token

2 个答案:

答案 0 :(得分:0)

201不是/ token端点所期望的响应代码。这很可能来自拓扑中的中间元素。您已经提到Apache Web Server作为配置的一部分-这是发送201吗?

此外,服务器的实际响应显示"server":"Apache/2.4.39 (Win64) OpenSSL/1.1.1b"

所以,这是您可以做的

a。尝试绕过Web服务器,看看是否可以解决问题-完全有可能。

b。验证Apache Web服务器的配置设置以查看为什么返回201。

答案 1 :(得分:0)

迟到聚会,但对于仍然遇到此错误的任何人:

安装以下临时修订: 8.0.0.0-MFPF-IF202006151151

这为我解决了错误。似乎是MobileFirst中的错误,我花了很长时间才找到。