Доступ к файлу хранилища ключей Java, хранящемуся в контейнере докеров внутри зависимого jar-файла.JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Доступ к файлу хранилища ключей Java, хранящемуся в контейнере докеров внутри зависимого jar-файла.

Сообщение Anonymous »

У меня есть 1 основное и 1 дополнительное приложение Java Springboot. Вторичное приложение действует как библиотечный проект. Основное приложение зависит от вторичного приложения, которое четко указано в pom.xml основного приложения.
У меня есть файл docker-compose.yml в основном приложении, который отвечает за запуск необходимых контейнеров. . Я храню файл jks, используя тома в docker-compose.yml внутри пути /certs/xyz.jks контейнера docker и устанавливаю 2 переменные среды в том же файле docker-compose.yml для установки пути к файлу jks + пароль хранилища ключей.
В docker-compose.yml

Код: Выделить всё

environment:
- JAVAX_NET_SSL_TRUSTSTORE=/certs/truststore.jks
- JAVAX_NET_SSL_TRUSTSTOREPASSWORD=abcdef
volumes:
- ./src/main/resources/truststore.jks:/certs/truststore.jks
Чтобы подключиться к Amazon DocumentDB, вторичному приложению необходимо установить системные свойства — javax.net.ssl.trustStore и javax.net.ssl.trustStorePassword. Если я запускаю основное приложение локально, не используя docker-compose и помещая значения в файл application.yml, оно сможет успешно подключиться к documentDB (конечно, через приложение Seconday, поскольку приложение Seconday - это то, которое устанавливает свойства системы, как уже упоминалось). выше).
В application.yml

Код: Выделить всё

javax:
net:
ssl:
trustStore: src/main/resources/truststore.jks
trustStorePassword: abcde
А во вторичном приложении я получаю данные с помощью

Код: Выделить всё

@Value("${javax.net.ssl.trustStore}")
String trustStore;
@Value("${javax.net.ssl.trustStorePassword}")
String trustStorePassword;
В рамках выполнения описанного выше сценария с использованием docker-compose я успешно могу получить доступ к свойствам (путь к хранилищу ключей и пароль) из переменных среды, установленных в файле docker-compose основного файла. app внутри вторичного приложения. По сути, я могу получить относительный путь к файлу хранилища ключей (т. е. /certs/truststore.jks) и пароль во вторичном приложении в виде двух строк.
Однако, используя их, Я не могу подключиться к documentDB из-за сбоя

Код: Выделить всё

org.mongodb.driver.cluster               : Cluster description not yet available. Waiting for 30000 ms before timing out
[127.0.0.1:27019] org.mongodb.driver.cluster               : Exception in monitor thread while connecting to server 127.0.0.1:27019
Следовательно, не могли бы вы сообщить мне, если вы считаете, что может возникнуть проблема с правильной передачей файла jks из основного приложения во вторичное в случае docker-compose? Если локально во вторичном приложении все работает нормально, нужно ли мне настраивать что-нибудь еще на стороне docker-compose основного приложения, чтобы оно работало во вторичном приложении?
Примечание. Я рекомендовал эти сообщения для реализации и обеспечения их работы локально (без докера)
сообщение 1 aws docuemntDB
сообщение 2 aws docDBПо сути, файл jks находится внутри пути /certs/truststore.jks контейнера, и я также могу видеть то же самое на рабочем столе Docker.

Подробнее здесь: https://stackoverflow.com/questions/790 ... endent-jar
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»