使用Cookies检查会话是否仍然有效[JSession,SMSession]

时间:2018-01-22 07:15:53

标签: java swing cookies httpurlconnection

我有一个浏览器用于我的Swing应用程序,我浏览到单个登录页面。登录后,我保存了JSession和SMSession Cookie,以便通过httpurlconnection与该服务器进行进一步的通信。在一些空闲时间之后,服务器将删除此会话,我必须进行新的登录并生成新的cookie。如何检查会话是否仍然有效?

这是我的方法:

URL url = new URL("www.exampleurl.com");

HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestProperty("Cookie", "JSESSIONID="+session+"; SMSession="+smsession);
System.out.println(conn.getRequestProperties());

conn.connect();

if(conn.getResponseCode() != 200) {
    System.out.println("connection failed");
    session = null;
    smsession = null;
} else {
    System.out.println("connection fine!");
}

1 个答案:

答案 0 :(得分:0)

我知道这是前一段时间问的。

Siteminder保护的资源具有最大的空闲时间和最大的会话超时时间。

每次致电受Siteminder保护的网站时,您都会获得一个更新的SMSESSION cookie。您需要确保不断更新smsession。这将解决空闲超时问题。

对于最大会话超时,您将在查询字符串中获得带有某些特定值的重定向。您的代码可以检测到重定向(302)并评估URL。

说了这么多,您可以要求siteminder管理员通过cookie将超时值传递给您,然后您就可以在那里进行跟踪了。

希望有帮助。 帕夏