Spring Vault Kubernetes Auth不接受自定义安装路径

问题描述 投票:0回答:1

使用Spring Vault 2.1.2,我无法升级。我正在将AbstractReactiveVaultConfiguration配置为使用KubernetesAuthentication。

@Configuration
public class VaultConfiguration extends AbstractReactiveVaultConfiguration {

    @Value("${my.vault.endpoint.url}")
    private URI vaultEndpointURL;

    @Override
    public VaultEndpoint vaultEndpoint() {
        return VaultEndpoint.from(vaultEndpointURL);
    }

    @Override
    public ClientAuthentication clientAuthentication() {
        KubernetesAuthenticationOptions options = KubernetesAuthenticationOptions.builder()
                .role("myRole").path("foo/bar").build();

        return new KubernetesAuthentication(options, restOperations());
    }

}

正在产生:

org.springframework.vault.authentication.VaultLoginException: Cannot retrieve VaultToken from authentication chain; nested exception is org.springframework.web.reactive.function.client.WebClientResponseException$BadRequest: 400 Bad Request

有了足够的日志记录,我发现它正尝试发布到:

POST /v1/auth/foo%2Fbar/login

什么是转义“ foo / bar”的配置路径,如何避免这种情况?

spring hashicorp-vault spring-webclient spring-vault
1个回答
0
投票

这是最新版本2.2.1.RELEASE的问题。跳马。

现在已修复。尚未发布新版本。

请参考错误并修复here

导致错误的原因:

以前,我们发送两个参数登录方法。 .login("auth/{mount}/login", options.getPath());。在登录方法内部,此参数将提供给HttpRequestBuilder.post(uriTemplate,uriVariables),它将/转换为%2F

当前,我们正在发送一个自变量AuthenticationUtil.getLoginPath(options.getPath()),此将不会/转换为%2F

我们可以将此问题提交给Spring-Vault,并请他们发布下一个版本。

© www.soinside.com 2019 - 2024. All rights reserved.