Изменения В Безопасности Манифеста Java 7


С последними изменениями в Java 7s проверки безопасности, Я обновляю наше приложение webstart, чтобы позволить ему работать без предупреждений.

Наше приложение webstart состоит из нескольких jar-файлов, только некоторые из которых разработаны нами, мы используем ряд сторонних jar-файлов (log4j, swingx, ...)

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

Шаги, которые я предпринял так далеко находятся:

  • распакуйте файлы jar
  • удалите старые сертификаты (remove *.АССОЦИАЦИЯ ПРЯМЫХ ПРОДАЖ *.НАУЧНАЯ ФАНТАСТИКА *.RSA и хэши из манифеста) из всех файлов jar
  • повторно упаковать файлы jar
  • добавьте атрибуты Permission, Codebase, Application-Name в файл jar, содержащий наш основной класс.
  • подпишите файлы jar новым ключом

Запуск этого в webstart на машине с Java 7 u45 не дает диалогового окна предупреждения, что замечательно.

Однако, глядя в консоли java я вижу, что это предупреждение о пропущенных разрешениях, кодовой базе, атрибутах имени приложения для всех jar других файлов jar. Должен ли я также добавлять эти атрибуты в каждый файл jar?

Я уже беспокоюсь о переупаковке сторонних файлов jar, но теперь, когда мне приходится добавлять атрибуты манифеста, я чувствую, что что-то упустил.

Итак, изменения проявляются или что-то еще? Спасибо, и счастливого Рождества

Править: Спасибо за полезные ответы, я просто... хотел бы обновить это с некоторыми деталями решения, которое я реализовал.

Я выполняю следующие шаги для переупаковки каждого файла jar, требуемого приложением. - Распаковать файл jar во временный каталог
- Удалить *.АССОЦИАЦИЯ ПРЯМЫХ ПРОДАЖ *.ЮАР *.SF от META-INF
- Удалить строки из META-INF / MANIFEST.МФ, которые начинаются с
- SHA-256-Digest
- SHA1-Digest
- Разрешения
- Кода
- Имя Приложения
- Вставить строки в МЕТА-ИНФ / МАНИФЕСТ.МФ
- Разрешения: все-разрешения
- Код: *
- Имя приложения: MY APP NAME
- Убедитесь, что все окончания строк в манифесте.MF подходят для моей системы (dos2unix)
- Воссоздать файл jar с новым манифестом, указанным
- Подпишите файл jar текущим сертификатом подписи кода

Надеюсь, что это поможет

1 4

1 ответ:

Да, вам нужно добавить Permission, Codebase, и Application-Name явные атрибуты для каждого .jar используется вашим приложением. Это основное приложение .jar плюс вся библиотека 3-й партии .и банки тоже.

Смотрите этот ответ https://stackoverflow.com/a/19659135/963076 к другому такому же вопросу.

Это хорошо, что вы чувствуете себя неловко. Как я понимаю, добавление вещей в манифесты сторонних библиотек является нарушением лицензионных соглашений GNU, прилагаемых почти ко всем библиотекам. Я был я почесал в затылке, когда Oracle выпускала эти обновления о том, что они думали. Зачем 3-й партии библиотека нужна для обозначения кода по jnlp? Знают ли они, что заставляют нас нарушать лицензионные соглашения этих сторонних библиотек?

Но, увы, если вы хотите, чтобы эти предупреждения исчезли и, более того, чтобы ваше приложение работало в будущих обновлениях Java, вы должны. Правда в том, что если вы используете IDE, как Netbeans, то он уже переупаковывает и увольняет вашу третью сторону библиотека.банки в любом случае. Таким образом, вы не будете нарушать никаких правил, которые ваша IDE уже не нарушает.