java-апплеты (без подписи) могут создавать / читать файлы cookie? - PullRequest
6 голосов
/ 26 декабря 2009

Мне было интересно, можно ли писать файлы cookie клиентам из неподписанных апплетов.

1 Ответ

12 голосов
/ 26 декабря 2009

Да, они могут, вы можете использовать JSObject для этого. Небольшое примечание: вам нужно добавить plugin.jar из каталога jre / lib в ваш путь, чтобы получить этот компилированный файл.

Чтение:

import netscape.javascript.JSObject;

String data = "";
String cookiename = "fooCookie";
JSObject myBrowser = JSObject.getWindow(this);
JSObject myDocument = (JSObject) myBrowser.getMember("document");

String myCookie = (String) myDocument.getMember("cookie");
if (myCookie.length() > 0) {
    String[] cookies = myCookie.split(";");
    for (String cookie : cookies) {
        int pos = cookie.indexOf("=");
        if (cookie.substring(0, pos).trim().equals(cookiename)) {
            data = cookie.substring(pos + 1);
            break;
        }
    }
}

Запись:

String data = "test";
String cookiename = "fooCookie";
JSObject win = JSObject.getWindow(this);
JSObject doc = (JSObject) win.getMember("document");
String data = cookiename + "=" + data + "; path=/; expires=Thu, 31-Dec-2019 12:00:00 GMT";
doc.setMember("cookie", data);

Не забудьте закодировать ваши данные в Base64.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...