Java Spring和自定义默认HostnameVerifier未被调用

Java Spring和自定义默认HostnameVerifier未被调用,java,spring-boot,ssl,Java,Spring Boot,Ssl,我正在设置一个Spring Boot管理应用程序——尽管这个应用程序的具体功能在本文中并不重要。重要的是,此应用程序使用HTTPS连接到另一个服务 我的问题是证书-这两个服务都在多个环境的docker容器中运行。这一点,加上服务发现使用IP地址解决服务的事实,在验证证书时会导致问题。我的计划是——至少出于开发目的——只要IP地址是本地的,就允许连接主机。为此,我编写了一个MyHostnameVerifier类,它实现了HostnameVerifier。然后创建了一个带有bean的配置类,该bea

我正在设置一个Spring Boot管理应用程序——尽管这个应用程序的具体功能在本文中并不重要。重要的是,此应用程序使用HTTPS连接到另一个服务

我的问题是证书-这两个服务都在多个环境的docker容器中运行。这一点,加上服务发现使用IP地址解决服务的事实,在验证证书时会导致问题。我的计划是——至少出于开发目的——只要IP地址是本地的,就允许连接主机。为此,我编写了一个
MyHostnameVerifier
类,它实现了
HostnameVerifier
。然后创建了一个带有bean的配置类,该bean会将这个新的HostnameVerifier设置为默认值,如下所示:

@Configuration
public class SecurityConfiguration {

    private class MyHostnameVerifier implements HostnameVerifier {
        @Override
        public boolean verify(String hostname, SSLSession session) {
            // checks if IP address is local..
            return true;
        }
    }

    @PostConstruct
    public void configureSSL() {
        HttpsURLConnection.setDefaultHostnameVerifier(new MyHostnameVerifier());
    }
}
我的一个问题是,自定义类中实现的
MyHostnameVerifier.verify
方法从未被调用。这是什么原因


configureSSL
方法确实被调用。

configureSSL()方法可能永远不会被调用。@sergvasyslchak不是这样的。我确实将
@Bean
更改为
@PostConstruct
注释,但行为没有更改-
MyHostnameVerifier.verify
仍然没有调用,而
configureSSL()
确实被调用(以前也是这样)。我怀疑的是Spring以某种方式覆盖了默认的HostnameVerified。@JacekŚlimok您找到解决方案了吗?
configureSSL()
方法可能永远不会被调用。@sergvasyslchak不是这样的。我确实将
@Bean
更改为
@PostConstruct
注释,但行为没有更改-
MyHostnameVerifier.verify
仍然没有调用,而
configureSSL()
确实被调用(以前也是这样)。我怀疑的是Spring以某种方式覆盖了默认的HostnameVerified。@JacekŚlimok您找到解决方案了吗?