我正在使用部署在WebSphere Liberty 8.5.5.0上的Worklight 6.0.0.1,而我的应用程序使用了2个HTTP适配器。
在第一个适配器中,我推出了我的登录和注销功能(基于表单身份验证)。 在第二个适配器中,我推出了其他一些程序。
所以我的问题如下:
当我在WebSphere上部署Worklight(.war)和在其他服务器(Tomcat)上包含Webservices的其他WAR文件时,事情进展顺利。
但是当我在同一台服务器(WebSphere Liberty)上部署了worklight的WAR和包含我的Webservices的WAR时,第二个适配器(不包含登录功能的那个)出现问题。在第二个适配器的每个调用过程中,我得到“需要身份验证”作为响应。
但是当我在第一个适配器中调用一个过程时,它会返回正确的响应。
任何想法?我无法弄清楚问题
我补充一点,我在两个适配器中调用相同的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}}
答案 0 :(得分:0)
当您在第一个适配器中调用过程时,它是否会调用Web服务? 如果没有,我假设只有第二个适配器试图访问Web服务。
考虑到这一点,我猜你的Tomcat服务器没有保护Web服务。这意味着您无需任何身份验证即可访问您的Web服务。
另一方面,WAS或Liberty可以启用应用程序安全性。这意味着如果您尝试访问部署在WAS或Liberty上的Web服务,系统将提示您进行身份验证。答案 1 :(得分:0)
由于它适用于WAS和Tomcat,因此问题似乎只发生在Liberty Profile下。在这种情况下,只有Worklight跟踪和Liberty Profile安全跟踪可以让您了解问题的可能原因。