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, 2012, Oracle и/или его филиалы. Все права защищены.
Свяжитесь с Нами