Как предоставить пользовательский SSLContext для сервера Netty при весенней загрузке - PullRequest
0 голосов
/ 11 сентября 2018

Как мы можем настроить собственный SSLContext для приложения с весенней загрузкой на сервере Netty?

В исходном коде я вижу «processor.ipc.netty.http.server.HttpServerOptions», в котором указаны некоторые параметры запуска сервера, но я не могу их настроить.

Есть ли какой-нибудь обработчик, через который мы можем внедрить наш собственный SSLContext?

Я ищу что-то похожее на это ( Spring 5 WebClient, использующий ssl ), где WebClient настроен с помощью настраиваемого SSLContext через 'реактор.ipc.netty.http.client.HttpClientOptions'.

1 Ответ

0 голосов
/ 06 октября 2018

Нетти можно настроить, как пример удара в Spring-boot 2.

  import org.springframework.boot.SpringApplication;
  import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
  import org.springframework.boot.web.embedded.netty.NettyReactiveWebServerFactory;
  import org.springframework.boot.web.server.ErrorPage;
  import org.springframework.boot.web.server.Ssl;
  import org.springframework.boot.web.server.WebServerFactoryCustomizer;
  import org.springframework.context.annotation.Bean;
  import org.springframework.context.annotation.Configuration;
  import org.springframework.context.annotation.ImportResource;

  /**
   * author : Mohammad Ghoreishi
   */
  @Configuration
  @ImportResource({"classpath:convert-iban-service.xml", "classpath:config-loader-context.xml", "classpath*:error-resolver.xml"})
  @EnableAutoConfiguration
  public class Application {

    public static void main(String[] args) throws Exception {
      SpringApplication.run(Application.class, args);
    }

    @Bean
    public WebServerFactoryCustomizer<NettyReactiveWebServerFactory> customizer(){
      return new WebServerFactoryCustomizer<NettyReactiveWebServerFactory>() {
        @Override
        public void customize(NettyReactiveWebServerFactory factory) {
          Ssl ssl = new Ssl();
          // Your SSL Cusomizations
          ssl.setEnabled(true);
          ssl.setKeyStore("/path/to/keystore/keystore.jks");
          ssl.setKeyAlias("alias");
          ssl.setKeyPassword("password");
          factory.setSsl(ssl);
          factory.addErrorPages(new ErrorPage("/errorPage"));
        }
      };
    }
  }
...