Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/403.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java HTTP 503错误:以编程方式尝试从Hashicorp';获取数据;s拱顶(v1.5.5)_Java_Spring_Spring Cloud_Spring Webflux_Hashicorp Vault - Fatal编程技术网

Java HTTP 503错误:以编程方式尝试从Hashicorp';获取数据;s拱顶(v1.5.5)

Java HTTP 503错误:以编程方式尝试从Hashicorp';获取数据;s拱顶(v1.5.5),java,spring,spring-cloud,spring-webflux,hashicorp-vault,Java,Spring,Spring Cloud,Spring Webflux,Hashicorp Vault,我试图以编程方式从Hashi Vault(v1.5.5)获取数据,但无论我如何尝试发送Vault API请求(通过spring boot webclient,通过spring.Vault模板),都会不断收到HTTP 503错误。当我检查vault的状态时,它处于初始化和未密封状态。在Vault UI中,我可以查看要访问的数据。当我使用curl(见下文)时,我可以获取数据。当我将cli用于vault时,我可以获取数据 从我所看到的所有示例来看,这很简单,但我想知道我是否在编程方面遗漏了一些东西。。

我试图以编程方式从Hashi Vault(v1.5.5)获取数据,但无论我如何尝试发送Vault API请求(通过spring boot webclient,通过spring.Vault模板),都会不断收到HTTP 503错误。当我检查vault的状态时,它处于初始化和未密封状态。在Vault UI中,我可以查看要访问的数据。当我使用curl(见下文)时,我可以获取数据。当我将cli用于vault时,我可以获取数据

从我所看到的所有示例来看,这很简单,但我想知道我是否在编程方面遗漏了一些东西。。。假设。。。比如,我的代码必须发出自己的请求才能打开保险库???为了消除身份验证/权限问题,我使用根令牌。我真的很感激任何建议或想法,因为我已经用完了! 感谢您花时间关注我的问题

vault status
Key             Value
---             -----
Seal Type       shamir
Initialized     true
Sealed          false
Total Shares    1
Threshold       1
Version         1.5.5
Cluster Name    vault-cluster-435e5f26
Cluster ID      c1b269b8-4a9a-5e9c-e468-85e2e55eb261
HA Enabled      true
HA Cluster      https://192.168.0.3:8201
HA Mode         active

http://localhost:8200
VAULT\u ADDR
相同吗?是的,奇怪的是,在使用VAULT cli和curl时,相同的uri可以工作。。。我知道v2键值引擎需要插入“数据”,但我不知道这是否是问题所在……我使用com.bettercloud.vault.vault重复了我的实验,当使用v2 kv引擎时,它会自动解释“数据”,并得到相同的结果。我不会切换到另一台计算机,看看会发生什么…你的日志和异常在哪里?
vault kv list csc/tenants
Keys
----
dev:111122223333444422221111
abc:111111111159999999999999
def:1234asdf1234asdf1324asdf
curl --location \
-H "X-Vault-Request:true" \
-H "X-Vault-Token:${VAULT_TOKEN}" \
--request GET "${VAULT_ADDR}/v1/csc/metadata/tenants?list=true" | jq
{
  "request_id": "ba228321-5b99-40f1-69f2-5b8122bc47df",
  "lease_id": "",
  "renewable": false,
  "lease_duration": 0,
  "data": {
    "keys": [
      "dev:111122223333444422221111",
      "abc:111111111159999999999999",
      "def:1234asdf1234asdf1324asdf"
    ]
  },
  "wrap_info": null,
  "warnings": null,
  "auth": null
}
// Here is the webflux.fn code that returns 503...
val wc = WebClient
  .builder()
  .baseUrl("http://localhost:8200")
  .defaultHeaders { httpHeaders: HttpHeaders ->
      httpHeaders.set("X-Vault-Request", "true")
      httpHeaders.set("X-Vault-Token", "s.888888888855111111111111")
      HttpHeaders.CONTENT_TYPE
      MediaType.APPLICATION_JSON_VALUE
  }.build()

val res = wc
  .get()
  .uri("/v1/csc/metadata/tenants?list=true")
  .retrieve()
  .bodyToFlux(VaultKvSecretResponse::class.java)
  .map {
      println(it.data.keys.first())
  }
  .subscribe()
// Here is the Spring Vault code that returns 503...
@Configuration
class AppConfig2 : AbstractVaultConfiguration() {
  override fun vaultEndpoint(): VaultEndpoint = VaultEndpoint.from(URI(environment.getRequiredProperty("VAULT_ADDR"))
  override fun clientAuthentication(): ClientAuthentication = TokenAuthentication(environment.getRequiredProperty("VAULT_TOKEN"))
}

@SpringBootApplication
class SbcloudApplication(
  private val environment: Environment,
  private val vaultTemplate: VaultTemplate
) : CommandLineRunner {
    val result = vaultTemplate.list("http://localhost:8200/v1/csc/metadata/data/tenants")
}