小编Jan*_*sen的帖子

使用Spring Vault写入对象返回状态400:未提供数据

我正在研究如何使用Vault 0.11.1和Spring Vault 2.0.2.RELEASE。我已经建立了一个开发保管箱:

vault server -dev
Run Code Online (Sandbox Code Playgroud)

并添加了一些数据

vault kv put secret/certs/jan cert=ABCD
Run Code Online (Sandbox Code Playgroud)

我可以在Spring Vault中阅读

      @Autowired
      private VaultOperations operations;

            String path = "secret/data/certs/jan";
            System.out.println(operations.read(path).getData());
Run Code Online (Sandbox Code Playgroud)

注意,奇怪的是,我必须在路径中插入“ data /”才能再次找到它。

删除数据也可以:

            operations.delete(path);
Run Code Online (Sandbox Code Playgroud)

但是用写数据

            Secret secret = new Secret("ABCD");
            operations.write(path, secret);
Run Code Online (Sandbox Code Playgroud)

失败于

org.springframework.vault.VaultException: Status 400 secret/data/certs/jan: no data provided
Run Code Online (Sandbox Code Playgroud)

秘密是一个简单的bean:

@AllArgsConstructor
@NoArgsConstructor
@Data
public class Secret {
    String cert;
}
Run Code Online (Sandbox Code Playgroud)

和杰森转换似乎很好:

DEBUG org.springframework.web.client.RestTemplate - Writing [Secret(cert=ABCD)] using [org.springframework.http.converter.json.MappingJackson2HttpMessageConverter@add0edd]
Run Code Online (Sandbox Code Playgroud)

只是想写一个字符串

            operations.write(path, "foo=bar");
Run Code Online (Sandbox Code Playgroud)

也失败:

Status 400 secret/data/certs/jan: failed to parse JSON input: invalid character 'o' in …
Run Code Online (Sandbox Code Playgroud)

java spring-vault

3
推荐指数
1
解决办法
890
查看次数

标签 统计

java ×1

spring-vault ×1