Cookieを引き継ぐ方法

【ご質問】
Cookieを引き継ぐ方法を教えてください。

 

【回答】
{request-browser-resident-http}プロシージャを使うことで実現可能です。

また、{request-browser-resident-http}プロシージャを利用できないケースでは、
(例.独立型アプレットの場合、{request-browser-resident-http}は使用出来ません)
起動用のCurlアプレットを サーバ側JSPなどで動的に生成し、その動的に生成するコード内で
“set-insecure-http-cookie”プロシージャ等を利用してブラウザに付与したCookie情報を
書き出し、アプレット内で設定する方法等があります。

JSPでのコードサンプル(下記サンプル内の curlcode-dynamic-generate.jsp)

<%@ page import=”java.net.*” contentType=”text/vnd.curl” %>
<%
// ログイン時に発行したJSESSIONIDがクライアントから送られてきています。
// その値を取得して変数に確保します。

Cookie[] cookies = request.getCookies();
Cookie cookie = new Cookie(“a”, “b”);
if (cookies != null){
    for (int i = 0; i < cookies.length; i++){
        cookie = cookies[i];
        if (cookie.getName().equals(“JSESSIONID”)){
            break;
        }
    }
}
%>

{curl 8.0 applet}
{curl-file-attributes character-encoding = “shift-jis”}

|| 以後のセッションで使用できるように
|| 取得したJSESSIONIDの値をCookieに設定するCurlコード
{def cookie = {HttpCookie “JSESSIONID”, “<%=cookie.getValue() %>“, path = “/mycook”}}
{set-insecure-http-cookie {url “http://localhost:8080/mycook“}, cookie}

||scurlファイルをインクルード (ここは通常の書き方)
{include “curlcode.scurl”}

 

サンプルとCookie引き継ぎ状況

上記コードを用いたサンプル(HTMLページからログインしてセッションを引き継ぐ)と、サンプルを使用してCookieの状況を
確認した結果(Cookie引き継ぎ状況の確認)をまとめましたので参考にして下さい。