Текущая ситуация:
Я пытаюсь использовать соединитель Spring Data MongoDB с помощью приложения Spring Boot для подключения к моему локальному экземпляру MongoDB, как указано в этом примере. Это прекрасно работает на моем местном. https://www.onlinetutorialspoint.com/spring-boot/spring-boot-mongodb-spring-data-example.html
В приведенном выше примере я изменил строку подключения для извлечения из URI данных Spring в app.yml, как показано ниже: -
spring.data.mongodb.uri: mongdb://localhost:27014/test-db
Все хорошо с локальным экземпляром.
![MONGO CONFIG FROM LOCAL UI COMPASS](https://i.stack.imgur.com/sKwDy.png)
Проблема: - 1. Теперь я хотел бы использовать экземпляр "mongodb", предоставленный в IBM Cloud, который Ниже приведены рекомендации по подключению через компас. Это было успешно.
Как я могу использовать Spring Data App для подключения к экземпляру IBM Cloud MongoDB с помощью указанных ниже параметров?
Я пытался добавить имя пользователя и пароль, например,
spring.data.mongodb.uri: mongdb://username:password@ibmcloudhostbame:cloudport#/test-db?ssl=true
ошибка ниже: -
Caused by: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
at sun.security.ssl.Alerts.getSSLException(Alerts.java:192) ~[na:1.8.0_181]
at sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1964) ~[na:1.8.0_181]
at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:328) ~[na:1.8.0_181]
at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:322) ~[na:1.8.0_181]
at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1614) ~[na:1.8.0_181]
at sun.security.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:216) ~[na:1.8.0_181]
at sun.security.ssl.Handshaker.processLoop(Handshaker.java:1052) ~[na:1.8.0_181]
at sun.security.ssl.Handshaker.process_record(Handshaker.java:987) ~[na:1.8.0_181]
at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1072) ~[na:1.8.0_181]
at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1385) ~[na:1.8.0_181]
at sun.security.ssl.SSLSocketImpl.writeRecord(SSLSocketImpl.java:757) ~[na:1.8.0_181]
at sun.security.ssl.AppOutputStream.write(AppOutputStream.java:123) ~[na:1.8.0_181]
at com.mongodb.connection.SocketStream.write(SocketStream.java:74) ~[mongodb-driver-core-3.6.3.jar:na]
at com.mongodb.connection.InternalStreamConnection.sendMessage(InternalStreamConnection.java:403) ~[mongodb-driver-core-3.6.3.jar:na]
ask1) Как я могу добавить SSL в этом контексте ask2) И как мне добавить его в этом приложении? Я пролистал другие страницы, чтобы найти решения, но это не проблема поставщика облачных вычислений, просто нужно выяснить механизм аутентификации SSL в этом сценарии. Пример кода был бы очень полезен. Спасибо.