Spring Boot SSL работает только на RestController Contstructor - PullRequest
0 голосов
/ 09 ноября 2018

Поскольку я перевожу старую архитектуру на новое решение Spring Boot, я выполняю вызовы через @ RestController.

Теперь FE должен передать данные моему @RestController, который его обрабатывает, и сделать старый RPC-вызов старому SoapWs.

Rpc Ws-Endpoint использует Https и нуждается в сертификате. Поэтому я положил все в хранилище ключей и соответственно установил свойства System.Properties. Теперь интересная часть. Если я определю свойства системы в основной весенней загрузке, класс запуска приложения:

    @Component
    public class ApplicationStartup 
    implements ApplicationListener<ApplicationReadyEvent> {


      @Override
      public void onApplicationEvent(final ApplicationReadyEvent event) {

            System.setProperty("javax.net.ssl.keyStore","/cert/clientkeystore.jks");
            System.setProperty("javax.net.ssl.trustStore","/cert/clientkeystore.jks");
            System.setProperty("javax.net.debug","ssl");
            System.setProperty("javax.net.ssl.keyStorePassword","changeit");
            System.setProperty("javax.net.ssl.trustStorePassword","changeit");

      }

Я вижу их в @RestController. Я проверил их через метод System.getProperties (...), и они находятся там, где они должны быть. Но вызов remote-rpc ws дает сбой Handshake.

Если установить переменные в конструкторе @RestController .... это работает! Это единственное изменение. Я удивлен, никаких подсказок.

...