我有一个浏览器用于我的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!");
}
答案 0 :(得分:0)
我知道这是前一段时间问的。
Siteminder保护的资源具有最大的空闲时间和最大的会话超时时间。
每次致电受Siteminder保护的网站时,您都会获得一个更新的SMSESSION cookie。您需要确保不断更新smsession。这将解决空闲超时问题。
对于最大会话超时,您将在查询字符串中获得带有某些特定值的重定向。您的代码可以检测到重定向(302)并评估URL。
说了这么多,您可以要求siteminder管理员通过cookie将超时值传递给您,然后您就可以在那里进行跟踪了。
希望有帮助。 帕夏