Переопределить X509TrustManager по умолчанию в SpringBoot

Я пытаюсь использовать свой DummyX509TrustManager с Springboot.

Для этого я пишу следующий класс:

@Configuration
public class DummyComponent {

@PostConstruct
public void sslContextConfiguration() {
    try {
        SSLContext sslContext = SSLContext.getInstance("TLS");
        sslContext.init(null, new TrustManager[] { new DummyTrustManager() }, null);
        SSLContext.setDefault(sslContext);
    } catch (Exception e) {
        e.printStackTrace();
    }
}

Похоже, это не повлияло на мой код, потому что он использовал X509TrustManagerImpl по умолчанию. Может надо по-другому перекрыть?

РЕШЕНИЕ:

@Configuration
public class MyConfig {

    @Bean
    public TomcatServletWebServerFactory containerFactory() {
        TomcatServletWebServerFactory  tomcat = new TomcatServletWebServerFactory ();
        tomcat.addAdditionalTomcatConnectors(createSslConnector());
        return tomcat;
    }

    private Connector createSslConnector() {
        Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
        Http11NioProtocol protocol = (Http11NioProtocol) connector.getProtocolHandler();
        try {
            File keystore = new ClassPathResource(keystorepath).getFile();
            File truststore = new ClassPathResource(truststorepath).getFile();
            connector.setScheme("https");
            connector.setSecure(true);
            connector.setPort(port);

            protocol.setKeystoreFile(keystore.getAbsolutePath());
            protocol.setKeystorePass(keystorepassw);
            protocol.setKeyAlias(keystorealias);
            protocol.setSSLEnabled(true);

            protocol.setTruststoreFile(truststore.getAbsolutePath());
            protocol.setTruststorePass(truststorepassw);
            protocol.setClientAuth(Boolean.TRUE.toString());

            protocol.setTrustManagerClassName("pakage.DummyTrustManager");

            return connector;
        } catch (IOException ex) {
            throw new IllegalStateException("can't access keystore: [" + "keystore"
                + "] or truststore: [" + "keystore" + "]", ex);
        }
    }
}

ты нашел на это ответ? ум поделиться?

CodeAssasin 15.10.2018 11:06

Добавляю решение в основной пост

rocky 16.10.2018 12:18
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
2
793
0

Другие вопросы по теме