Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Jetty HTTPS. Как загрузить keystore из ресурсов? sslContextFactory.setKeyStorePath(...) 
V
    Опции темы
ZVano
  Дата 2.6.2016, 18:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 258
Регистрация: 11.12.2006
Где: Украина, Кривой Р ог

Репутация: нет
Всего: 4



Доброго времени суток всем.
Есть программа , которая является Web-сервисом. 
Построена на пакете Jetty 9.3.0.M1 (это встраиваемый Web-сервер).

Потребовалось прикрутить к ней HTTPS.
Для этого сгенерировал самоподписной сертификат и положил его в каталог с ресурсами проекта "...WebApiService/src/main/resources/jetty-ssl.keystore"
Указал серверу Jetty путь к "jetty-ssl.keystore".  
Собрал, запустил - все ОК. По HTTPS  работает. 

Теперь ломаю голову Как уговорить Jetty использовать ресурс из JARа?
keystore дежит в "/resources/jetty-ssl.keystore" файла "WebApiService-1.0-SNAPSHOT.jar"
Код

         server = new Server(portHttps);
        HttpConfiguration http_config = new HttpConfiguration();
        http_config.addCustomizer(new SecureRequestCustomizer());
        http_config.setSecureScheme("https");
        http_config.setSecurePort(portHttps);
        HttpConfiguration https_config = new HttpConfiguration(http_config);
        https_config.addCustomizer(new SecureRequestCustomizer());
        SslContextFactory sslContextFactory = new SslContextFactory();
        sslContextFactory.setKeyStorePath("/media/src/java/WebApiService/src/main/resources/jetty-ssl.keystore"); // !! Тут нужно вместо загрузки с диска сделать загрузку ресурса из JARа
        sslContextFactory.setKeyStorePassword("myStorePass");
        sslContextFactory.setKeyManagerPassword("myKeyPass");


Вариант 1: при запуске извлечь "jetty-ssl.keystore" и сохранить в каталог Temp. 
Потом указать Jetty путь к файлу.
Он мне не нравится, но все равно вопрос - как это делается?

Вариант 2: использовать какой то другой инструмент Java (или Jetty), о котором я ничего не знаю.


--------------------
НЕ ФЛУДИМ. Пользуемся кнопками "+" или "-" для выражения своего отношения к теме или сообщению.
Гуглим "Как правильно задавать вопросы"
PM MAIL Skype   Вверх
TiKKi
Дата 2.6.2016, 22:54 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 63
Регистрация: 13.5.2006

Репутация: 1
Всего: 2



Здравствуйте, у фабрики SslContextFactory есть метод setKeyStoreResource, для которого с помощью статичного метода Resource.newResource можно указать ресурс.
PM   Вверх
ZVano
Дата 3.6.2016, 09:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 258
Регистрация: 11.12.2006
Где: Украина, Кривой Р ог

Репутация: нет
Всего: 4



Цитата(TiKKi @  2.6.2016,  21:54 Найти цитируемый пост)
Здравствуйте, у фабрики SslContextFactory есть метод setKeyStoreResource, для которого с помощью статичного метода Resource.newResource можно указать ресурс. 

Спасибо за ответ. Теперь работает загрузка из ресурсов.
Код

// Работает. Загрузка указанного места файловой системы.
sslContextFactory.setKeyStorePath("/media/src/java/WebApiService/src/main/resources/jetty-ssl.keystore");
// Работает. Загрузка из ресурсов, вариант 1.
sslContextFactory.setKeyStoreResource(Resource.newResource(System.class.getResource("/resources/jetty-ssl.keystore")));
// Работает. Загрузка из ресурсов, вариант 2.
sslContextFactory.setKeyStorePath(System.class.getResource("/resources/jetty-ssl.keystore").toExternalForm());



Это сообщение отредактировал(а) ZVano - 3.6.2016, 09:40


--------------------
НЕ ФЛУДИМ. Пользуемся кнопками "+" или "-" для выражения своего отношения к теме или сообщению.
Гуглим "Как правильно задавать вопросы"
PM MAIL Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Работа с сетью | Следующая тема »


 




[ Время генерации скрипта: 0.1159 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.