Использование HTTPS с Citrus Simulator - PullRequest
0 голосов
/ 13 сентября 2018

Я сейчас оцениваю Citrus Simulator для написания Mocks for Rest Services. Это выглядит многообещающе, но я не мог выяснить, как использовать HTTPS вместо HTTP при попытке настроить службу REST. Ничего не найдено в руководстве пользователя. Кто-нибудь уже попробовал это успешно?

1 Ответ

0 голосов
/ 19 сентября 2018

Рассматривая базовый продукт, цитрусовая конструкция дала половину ответа, спасибо Корашену за подсказку.

Соответствующее изменение - установить правильный адаптер конечной точки.Для тех, кто ищет решение:

@Autowired
private SimulatorEndpointAdapter simulatorEndpointAdapter;

@Bean
public HttpServer buildSslServer() throws Exception {
    return CitrusEndpoints.http()
            .server()
            .port(8080)
            .endpointAdapter(simulatorEndpointAdapter)
            .connector(sslConnector())
            .autoStart(true)
            .build();
}

@Bean
public ServerConnector sslConnector() {
    ServerConnector connector = new ServerConnector(new Server(),
            new SslConnectionFactory(sslContextFactory(), "http/1.1"),
            new HttpConnectionFactory(httpConfiguration()));
    connector.setPort(securePort);
    return connector;
}

private HttpConfiguration httpConfiguration() {
    HttpConfiguration parent = new HttpConfiguration();
    parent.setSecureScheme("https");
    parent.setSecurePort(securePort);
    HttpConfiguration configuration = new HttpConfiguration(parent);
    configuration.setCustomizers(Collections.singletonList(new SecureRequestCustomizer()));
    return configuration;
}

private SslContextFactory sslContextFactory() {
    SslContextFactory contextFactory = new SslContextFactory();
    contextFactory.setKeyStorePath(sslKeyStorePath);
    contextFactory.setKeyStorePassword("secret");
    return contextFactory;
}
...