Вызов веб-службы Java с помощью апплета


У меня есть апплет, загруженный браузером.
Этот апплет выполняет вызовы веб-службы на сервер.
Если я подпишу апплет и загружу его через https сервером, а затем вызову веб-службу, можно ли повторно использовать существующий сеанс ssl или нужно будет восстановить https?
Я думаю, что https (то есть рукопожатие ssl) необходимо будет восстановить, поскольку первоначальное соединение было установлено браузером. Так ли это?
Если да, то есть ли способ избежать повторной аутентификации, когда пользователь начинает использовать апплет? т.е. повторно использовать предыдущее ssl-соединение или это невозможно? Кстати, стек веб-сервиса — axis2.

Спасибо


person Cratylus    schedule 17.01.2011    source источник


Ответы (1)


https и аутентификация разные вещи. Конечно, они работают вместе, когда вы аутентифицируетесь с помощью пользователя/пароля через https.

https можно использовать для аутентификации, когда включена аутентификация клиента. Таким образом, клиент должен отправить на сервер действительный (подписанный) сертификат. Но я полагаю, у вас есть метод аутентификации пользователя/пароля через https.

Как только браузер вошел в систему, обычно сервер создает и поддерживает сеанс, а браузер получает файл cookie сеанса. Этот файл cookie будет отправляться по последовательным запросам после входа в систему (все еще зашифрованным с помощью https).

Если вы передаете файл cookie сеанса аплету, апплет может повторно использовать сеанс.

Обновить

Невозможно объяснить вам это подробно. Вы должны найти и прочитать связь Java-апплета.

  • Вы можете вызывать методы апплета из javascript и получать доступ к состоянию веб-страницы/браузера из апплета (Applet.getAppletContext()).

  • Вы можете вызвать апплет с параметром, содержащим идентификатор сеанса.

Имя файла cookie сеанса может быть JSESSIONID, если веб-сервер является контейнером сервлета.

Если ваш веб-сервер является контейнером сервлета, вы можете передать идентификатор сеанса разными способами: как файл cookie в заголовке запроса или закодировать в URL-адресе (перезапись URL-адреса).

person PeterMmm    schedule 19.01.2011
comment
Интересно. Как я могу получить этот файл cookie сеанса из браузера? Также как я могу передать его в стек веб-сервиса, который я использую, чтобы отправить файл cookie в соединениях обратно на сервер? Я не знаю! Не могли бы вы уточнить как это сделать? - person Cratylus; 19.01.2011
comment
Хорошо, я думаю, что понимаю, что вы имеете в виду. Но действительно ли JSESSIONID используется сервером для SSL? - person Cratylus; 22.01.2011
comment
Имя файла cookie сеанса JSESSIONID исходит из спецификации сервлета Java (когда вы создаете сеанс в своем сервлете, ответ сервера будет включать файл cookie сеанса с именем JSESSIONID). Это вообще не имеет ничего общего с SSL. stackoverflow.com/questions/595872 / - person PeterMmm; 22.01.2011
comment
То, что вы говорите, имеет смысл. Я приму это как ответ, но я не могу быть уверен, пока не попробую. - person Cratylus; 22.01.2011