保险柜弹簧无法识别的SSL消息,纯文本连接/

问题描述

我正在尝试在Bean中运行保管箱容器,并将其用于创建VaultTemplate Bean以便在测试中进一步使用

@TestConfiguration
@TestPropertySource("classpath:application.yml")
public class TestsConfiguration {

    @Container
    public static VaultContainer vaultContainer = new VaultContainer();


    @Bean
    @Order(1)
    public VaultEndpoint vaultEndpoint() {
        vaultContainer
                .withVaultToken("00000000-0000-0000-0000-000000000000")
                .withExposedPorts(8200);
        vaultContainer.start();
        return VaultEndpoint.create(vaultContainer.getContainerIpAddress(),vaultContainer.getMappedPort(8200));
    }

    @Bean
    @Order(2)
    public VaultTemplate vaultTemplate(VaultEndpoint vaultEndpoint) {
        return new VaultTemplate(vaultEndpoint,new TokenAuthentication("00000000-0000-0000-0000-000000000000"));
    }


}

但是,当我尝试通过VaultOperations写一些kv时,我得到了:

GET请求的“ https:// localhost:32998 / v1 / my / secret”上的I / O错误:无法识别的SSL消息,纯文本连接?嵌套异常是javax.net.ssl.SSLException:无法识别的SSL消息,纯文本连接?

我该如何解决这个问题?

解决方法

@TestConfiguration
@TestPropertySource("classpath:application.yml")
public class TestsConfiguration {

    @Container
    public static VaultContainer vaultContainer = new VaultContainer();


    @Bean
    public VaultEndpoint vaultEndpoint() {
        vaultContainer
                .withVaultToken("00000000-0000-0000-0000-000000000000")
                .withExposedPorts(8200);
        vaultContainer.start();
        return VaultEndpoint.create(vaultContainer.getContainerIpAddress(),vaultContainer.getMappedPort(8200));
    }

    @Bean
    public VaultTemplate vaultTemplate(VaultEndpoint vaultEndpoint) {
    vaultEndpoint.setScheme("http"); ////////////// this
    return new VaultTemplate(vaultEndpoint,new TokenAuthentication("00000000-0000-0000-0000-000000000000"));
    }


}

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...