Spec-Zone .ru
спецификации, руководства, описания, API
Содержание документации

<Содержание

Соображения Разработки приложений


Эта глава включает следующие темы:

Введение

Разрабатывая приложения для развертывания с Java веб-Запуск является обычно тем же самым как разрабатыванием автономных приложений для Java (ТМ) Платформа Standard Edition. Например, точкой входа для приложения является стандартный public static void main(String[] argv).

Однако, чтобы поддерживать веб-развертывание — автоматическую загрузку и запуск приложения — и гарантировать, что приложение может работать в безопасной песочнице, есть некоторые дополнительные соображения:

Получение Ресурсов от файлов JAR

Java веб-Запуск только передает файлы JAR с веб-сервера на клиентскую машину. Это определяет, где хранить файлы JAR на локальной машине. Таким образом приложение не может использовать дисковые относительные ссылки на ресурсы, такие как изображения и конфигурационные файлы.

Все ресурсы приложения должны быть получены от файлов JAR, определенных в разделе resources файла JNLP, или получали явно использование запроса HTTP к веб-серверу. Хранение ресурсов в файлах JAR рекомендуется, так как они будут кэшироваться на локальной машине Java веб-Запуск.

Следующий пример кода показывает, как получить изображения от файла JAR:

// Get current classloader
ClassLoader cl = this.getClass().getClassLoader();
// Create icons
Icon saveIcon  = new ImageIcon(cl.getResource("images/save.gif"));
Icon cutIcon   = new ImageIcon(cl.getResource("images/cut.gif"));
...

Пример предполагает, что следующие записи существуют в одном из файлов JAR для приложения:

images/save.gif
images/cut.gif

Доступ к Клиенту Используя API JNLP

API JNLP может использоваться, чтобы получить доступ к файловой системе клиента и другим ресурсам. См. следующие темы для получения дополнительной информации об использовании API JNLPI, чтобы получить доступ к клиенту:

Безопасность и Подписывание кода

Веб-Начальные адреса Java вопросы безопасности:

Приложения, запущенные с Java, веб-Запуск, по умолчанию, выполняется в ограниченной среде, где у них есть ограниченный доступ к локальным вычислительным ресурсам, таким как устройства хранения данных и локальная сеть. В этой среде песочницы Java веб-Запуск может гарантировать, что загруженное и потенциально недоверяемое приложение не может поставить под угрозу безопасность локальных файлов или сети.

Дополнительное средство защиты, поддерживаемое Java веб-Запуск, является цифровым подписыванием кода. Если вызываемое приложение поставляется в одном или файлах JAR более со знаком, Java, веб-Запуск проверит, что содержание файла JAR не было изменено, так как они были подписаны. Если проверка цифровой подписи перестала работать, Java, веб-Запуск не будет запускать приложение, так как это, возможно, поставилось под угрозу сторонним.

Поддержка подписывания кода важна для обоих пользователей и для провайдеров прикладных служб. Эта служба позволяет пользователям проверить, что приложение прибывает из доверяемого источника. Поскольку провайдер прикладных служб подписывает код, оба могут быть обеспечены, та никакая другая сторона не может явиться олицетворением приложения в сети. Приложение со знаком, которому доверяет пользователь, может также запросить дополнительные системные полномочия, такие как доступ к локальному диску.

Java веб-Запуск представляет диалоговое окно, выводящее на экран источник приложения, основанный на сертификате подписывающего лица, перед приложением, запускается. Это позволяет пользователю делать обоснованное решение о том, предоставить ли дополнительные полномочия загруженному коду.

Включением следующих настроек в файле JNLP приложение может запросить полный доступ к клиентской системе, если все ее файлы JAR подписываются:

<security>
   <all-permissions/>
</security>

Реализация подписывания кода в Java веб-Запуск основана на API безопасности в базовом Java (ТМ) Платформа Standard Edition. Java 2 SE JRE 1.4.2 поддерживает подписывание кода с SHA1withDSA и алгоритмами MD5withRSA.

Разработчики подписывают код для использования с Java веб-Запуск таким же образом что касается Апплетов Java — при использовании стандартного инструмента jarsigner от Java (ТМ) Платформа Standard Edition. Документация инструмента jarsigner обеспечивает примеры того, как подписать код и создать свидетельства об испытании, и это обсуждает другие проблемы, связанные с подписанием.

Подписание Файлов JAR Со Свидетельством об испытании

Вот шаги, должен был подписать файл JAR со свидетельством об испытании:

1. Удостоверьтесь, что у Вас есть SDK 1.4.2 keytool и jarsigner в Вашем пути. Эти инструменты располагаются в каталоге bin SDK.

2. Создайте новый ключ в новом keystore следующим образом:

keytool -genkey -keystore myKeystore -alias myself

Вы будете запрошены информацию о новом ключе, таком как пароль, имя, и т.д. Это создаст myKeystore файл на диске.

3. Затем создайте самоподписанное свидетельство об испытании следующим образом:

keytool -selfcert -alias myself -keystore myKeystore

Это запросит пароль. Генерирование сертификата может занять несколько минут.

4. Проверьте, чтобы удостовериться, что все хорошо. Чтобы перечислить содержание keystore, используйте эту команду:

keytool -list -keystore myKeystore

Это должно перечислить что-то как:

Keystore type: jks
Keystore provider: SUN

Your keystore contains 1 entry:

myself, Tue Jan 23 19:29:32 PST 2001, keyEntry,
Certificate fingerprint (MD5):
C2:E9:BF:F9:D3:DF:4C:8F:3C:5F:22:9E:AF:0B:42:9D

5. Наконец, подпишите файл JAR со свидетельством об испытании следующим образом:

jarsigner -keystore myKeystore test.jar myself

Повторите этот шаг со всеми Вашими файлами JAR.


Отметьте, что самоподписанное свидетельство об испытании должно только использоваться для внутреннего тестирования, так как это не гарантирует идентификационных данных пользователя и поэтому не может доверяться. Защищенный сертификат может быть получен из центра сертификации, такого как VeriSign или Thawte, и должен использоваться, когда приложение помещается в производство.

Как Закодировать Файлы JNLP

Начинаясь с Java веб-версия 1.2 Запуска, файлы JNLP могут быть закодированы в любой кодировке символов, поддерживаемой Java (ТМ) Платформа Standard Edition. (См. Java (ТМ) Платформа Standard Edition документация для списка поддерживаемых кодировок.)

Чтобы закодировать файл JNLP, определите кодирование в Прологе XML того файла. Например, следующая строка указывает, что файл JNLP будет закодирован в UTF-16.

<?xml version="1.0" encoding="utf-16"?>

Пролог самого XML должен быть UTF-8-encoded.

Динамическая Загрузка Сертификатов HTTPS

Начинаясь 1.4.2, Java, веб-Запуск динамически импортирует сертификаты почти таким же способом как браузеры, делает. Чтобы сделать эту работу, Java, веб-Запуск теперь устанавливает свой собственный https обработчик, используя java.protocol.handler.pkgs системные свойства, чтобы инициализировать значения по умолчанию для SSLSocketFactory и HostnameVerifier. Это устанавливает значения по умолчанию с HttpsURLConnection.setDefaultSSLSocketFactory и HttpsURLConnection.setDefaultHostnameVerifier.

Если Ваше приложение использует те два метод, удостоверьтесь, что их вызывают после Java веб-Запуск https обработчик инициализируется, иначе Ваш пользовательский обработчик будет заменен Java веб-обработчик значения по умолчанию Запуска. Можно гарантировать, что Ваше собственное настроило SSLSocketFactory и HostnameVerifiter используются, делая любое из следующего:

  1. Устанавливая Ваш собственный https обработчик, который полностью заменит Java веб-Запуск https обработчик (для получения дополнительной информации, см. Новую Эру для Обработчиков Протокола Java);
  2. Вызов HttpsURLConnection.setDefaultSSLSocketFactory или HttpsURLConnection.setDefaultHostnameVerifier только после того, как первый https объект url создается, который выполнит Java веб-Запуск https код инициализации обработчика сначала.

Для получения информации о создании сервлета загрузки см. следующую главу, Руководство JnlpDownloadServlet.


Oracle и/или его филиалы Авторское право © 1993, 2011, Oracle и/или его филиалы. Все права защищены.
Свяжитесь с Нами