什么会导致SmartCloud将REST调用重定向到登录页面?

时间:2013-10-08 15:15:07

标签: ibm-sbt

我没有使用SBT,而是使用Abdera直接与IBM SmartCloud上的Connections版本进行REST调用。有问题的REST网址:https://apps.na.collabserv.com/search/serviceconfigs

观察

从我的笔记本电脑(使用Firefox和REST客户端插件)进行测试时,这可以正常工作。我找回了ATOM饲料。

使用相同的方法(在Firefox + REST客户端上)从服务器(在不同的网络上)进行测试时,我会返回HTML,这是一个登录页面。

另外,当我从同一服务器上的Java程序调用URL时,我得到了相同的结果。

在所有情况下,我使用与基本身份验证相同的凭据。

更新:如果我首先登录SmartCloud,在服务器上的Firefox中单独的选项卡上,然后像以前一样调用URL,从另一个选项卡中,它可以正常工作。我根据需要获得了ATOM feed。当然,这不适合作为解决方案,但我将其作为可能导致实际解决方案的附加信息提供。

更新:进一步测试显示本地(笔记本电脑)登录表现出与服务器相同的行为。需要从同一浏览器进行基于表单的登录,然后进行后续REST调用。

更新:以下是相关的简化代码段:

private static Abdera ABDERA = new Abdera();
private static AbderaClient ABDERA_CLIENT = new AbderaClient(ABDERA);

...

String host = "https://apps.na.collabserv.com";
ABDERA_CLIENT.addCredentials(host, AuthScope.ANY_REALM, "basic", new UsernamePasswordCredentials("user", "password"));

...

ClientResponse response = ABDERA_CLIENT.get("https://apps.na.collabserv.com/search/serviceconfigs");

摘要

似乎有关原始服务器或呼叫的某些内容导致SmartCloud通过登录页面进行响应。然而,来自我的笔记本电脑的相同电话和凭证,按预期工作。

问题

我应该从哪里开始麻烦拍摄?如何构建客户端凭据以允许以编程方式登录?

响应标头

如果有帮助,以下是我在每种情况下都会得到的响应标题。

不成功

Status Code: 200 OK
Cache-Control: no-cache
Connection: keep-alive
Content-Encoding: gzip
Content-Length: 1850
Content-Type: text/html
Date: Tue, 08 Oct 2013 14:15:03 GMT
Pragma: no-cache
Server: WebSEAL/6.1.1.3 (Build 110428)
Set-Cookie: PD-H-SESSION-ID=4_0_IR4***masked***oRKlJI;secure; Path=/; HttpOnly BIGipServerE3A-WebSEAL-80-fe=2132806922.20480.0000;secure; path=/
Vary: Accept-Encoding
p3p: CP="NON CUR OTPi OUR NOR UNI"

成功

Status Code: 200 OK
Cache-Control: public, max-age=86400, s-maxage=86400, no-cache=set-cookie, private, must-revalidate
Content-Encoding: gzip
Content-Language: en-US
Content-Length: 1164
Content-Type: application/atom+xml; charset=UTF-8
Date: Mon, 07 Oct 2013 17:21:12 GMT
Expires: Tue, 08 Oct 2013 17:21:12 GMT
Server: WebSphere Application Server/8.0
Vary: Accept-Encoding
p3p: CP="NON CUR OTPi OUR NOR UNI"
x-lconn-auth: true
x-powered-by: Servlet/3.0

1 个答案:

答案 0 :(得分:0)

@Grant是您使用SAML登录的?我可以看到这种重定向发生了。也可能与TFIM有关...也许你应该在另一个页面上获取auth,存储cookie,然后尝试连接到上面的端点。