以下は、Androidアプリケーションで認証後のCookieを取得するためのコードです。私はhost
の代わりurl
を使用する場合CookieManager.getCookie()が異なる値を返します
String url = "https://host:port/sso/SSOServlet";
BasicCookieStore cookieJar = new BasicCookieStore();
CookieManager cookieMgr = CookieManager.getInstance();
String host = null;
URL urlObj = Util.getUrl(url);
host = urlObj.getHost();
String cookiesHost = cookieMgr.getCookie(host); // value for cookiesHost is JSESSIONID
String cookiesURL = cookieMgr.getCookie(url); // value for cookiesURL is JSESSIONID and a custom Session id for application.
のでcookieMgr.getCookie()
は、特定のサーバーに別の値を返します。何故ですか?一部のサーバーでは、host
またはurl
のいずれかを使用すると、同じ値が返されます。なぜこれが起こっているのでしょうか?
以前はホストOR URLに対して同じ値を返していましたが、この1つのサーバーは私がコードのコメントで述べた値を返しています。
getUrlはURLオブジェクトを返します。しかし、いくつかのサーバーでは違う入力ですが、そうではありません。ほとんどのサーバーでホストを使用している場合は、すべてのCookieを取得します。突然私はホストのすべてのクッキーを返さなかったサーバーを見つけましたが、ホストをURLに変更し、getCookieがすべてのクッキーを返さないようにしました。 – yogsma