需要 Worklight 适配器身份验证
Posted
技术标签:
【中文标题】需要 Worklight 适配器身份验证【英文标题】:Worklight Adapter authentication required 【发布时间】:2013-12-04 13:01:10 【问题描述】:我正在使用部署在 WebSphere Liberty 8.5.5.0 上的 Worklight 6.0.0.1,并且我的应用程序使用 2 个 HTTP 适配器。
在第一个适配器中,我放置了登录和注销功能(基于表单身份验证)。 在第二个适配器中,我放置了一些其他程序。
所以我的问题如下:
当我在 WebSphere 上部署 Worklight (.war) 并在其他服务器 (Tomcat) 上包含 Web 服务的其他 WAR 文件时,一切顺利。
但是,当我在同一台服务器 (WebSphere Liberty) 上部署 worklight 的 WAR 和包含我的 Web 服务的 WAR 时,第二个适配器(不包含登录功能的那个)出现问题。在第二个适配器的每个调用过程中,我都会收到“authentication required”作为响应。
但是当我在第一个适配器中调用一个过程时,它会返回正确的响应。
有什么想法吗?没搞清楚问题
我补充说我在两个适配器中调用相同的 Web 服务。
这是我得到的日志:
"status":200,"invocationContext":null,"invocationResult":"responseID":"64","statusCode":200,"result":,"errors":["authentication required"],"isSuccessful":true,"statusReason":"OK","responseHeaders":"Content-Language":"en-US","Transfer-Encoding":"chunked","Date":"Thu, 05 Dec 2013 06:13:15 GMT","Content-Type":"application/json;charset=UTF-8","X-Powered-By":"Servlet/3.0","success":0,"totalTime":280,"responseTime":271
【问题讨论】:
是否有更完整的错误日志可用?如果是这样,请用它编辑问题。 【参考方案1】:当您在第一个适配器中调用一个过程时,它会调用 Web 服务吗? 如果没有,我假设只有第二个适配器正在尝试访问 Web 服务。
考虑到这一点,我猜您的 Tomcat 服务器没有保护 Web 服务。这意味着您无需任何身份验证即可访问您的网络服务。
另一方面,WAS 或 Liberty 可以启用应用程序安全性。这意味着,如果您尝试访问部署在 WAS 或 Liberty 上的 Web 服务,系统将提示您进行身份验证。
【讨论】:
感谢您的回复,但我在第一个适配器中调用了相同的 Web 服务【参考方案2】:由于它适用于 WAS 和 Tomcat,因此该问题似乎仅在 Liberty Profile 下发生。在这种情况下,只有 Worklight 跟踪和 Liberty Profile 安全跟踪可以让我们了解问题的可能原因。
【讨论】:
以上是关于需要 Worklight 适配器身份验证的主要内容,如果未能解决你的问题,请参考以下文章
IBM Worklight 6.0 - 如果客户端注销/登录,具有基本身份验证的适配器不会更新身份验证标头
IBM Worklight:基于适配器的身份验证成功后未获得响应