无法使用 Curl 连接到 JHipster UAA 服务器

Can't connect to JHipster UAA server using Curl

我是 运行 一个 docker-compose'd 架构,带有注册表、网关 (8080)、uaa (9999) 和 2 个微服务(8081 和 8082),我可以看到通过下拉选择在网关应用程序中大摇大摆 API。我可以使用管理员和用户登录网关。我还修改了代码以接受所有者、代理和监控角色。我可以正常登录。

在终端中,我尝试了 Baeldung 的 curl 命令(博客发布)直接从 uaa 服务器获取令牌用于测试 APIs。

[~]$ curl -X POST --data  "username=user&password=user&grant_type=password&scope=openid"  http://localhost:9999/oauth/token
    curl: (7) Failed to connect to localhost port 9999: Connection refused

我打开了Kitematic,uaa服务器在docker容器日志中是localhost(主机)和9999(端口)。

谁能帮我弄清楚为什么 Curl 对我不起作用?

谢谢,

大卫

这个问题几乎可以肯定与您正在部署的堆栈的网络属性有关。

如果您从主机向 http://localhost:9999 发出 curl 命令,则需要确保 UAA 服务器将其端口映射到主机。

你们的 UAA 服务在 docker-compose.yml 中有这个吗?

    ports:
      - "9999:9999"

如果没有,您需要添加它以便从主机对其进行测试。

默认情况下,docker-compose 将为您的堆栈创建一个桥接网络,您的容器可以在其中相互通信并根据容器名称相互解析。但是从主机上,您将无法寻址容器,除非您明确地将它们的暴露端口映射到主机上的端口。