Spring Vault Kubernetes Auth 不接受自定义安装路径
Spring Vault Kubernetes Auth not accepting custom mount path
使用 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 到:
POST /v1/auth/foo%2Fbar/login
什么在逃避配置的 "foo/bar" 路径,如何避免?
这是最新版本 2.2.1.RELEASE 的问题。 spring-保险库。
现已修复。尚未发布新版本。
参考错误并修复 here
错误原因:
之前,我们向登录方法发送两个参数。 .login("auth/{mount}/login", options.getPath());
。在登录方法内部,此参数将提供给 HttpRequestBuilder.post(uriTemplate, uriVariables),它正在将 /
转换为 %2F
目前,我们正在发送一个参数AuthenticationUtil.getLoginPath(options.getPath())
,这个不会将/
转换为%2F
。
我们可以将此问题提交给 spring-vault 并要求他们发布下一个版本。
使用 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 到:
POST /v1/auth/foo%2Fbar/login
什么在逃避配置的 "foo/bar" 路径,如何避免?
这是最新版本 2.2.1.RELEASE 的问题。 spring-保险库。
现已修复。尚未发布新版本。
参考错误并修复 here
错误原因:
之前,我们向登录方法发送两个参数。 .login("auth/{mount}/login", options.getPath());
。在登录方法内部,此参数将提供给 HttpRequestBuilder.post(uriTemplate, uriVariables),它正在将 /
转换为 %2F
目前,我们正在发送一个参数AuthenticationUtil.getLoginPath(options.getPath())
,这个不会将/
转换为%2F
。
我们可以将此问题提交给 spring-vault 并要求他们发布下一个版本。