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

时间:2019-03-08 20:46:17

标签: docker oauth docker-compose token jhipster

我正在运行一个包含注册表,网关(8080),uaa(9999)和2个微服务(8081和8082)的docker组成的体系结构,并且可以通过下拉选择在网关应用程序中看到Swagger API。我可以使用admin和user登录到网关。我还修改了代码以接受所有者,代理和监视者角色。我可以正常登录。

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

[~]$ 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,在Docker容器日志中,uaa服务器是localhost(主机)和9999(端口)。

有人可以帮我弄清楚为什么Curl对我不起作用吗?

谢谢

大卫

1 个答案:

答案 0 :(得分:1)

几乎可以肯定,此问题与您要部署的堆栈的网络属性有关。

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

您的UAA服务在docker-compose.yml中有此服务吗?

    ports:
      - "9999:9999"

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

默认情况下,docker-compose将为您的堆栈创建一个桥接网络,您的容器可在其中相互通信并在容器名称上相互解析。但是除非您明确从主机将其公开端口映射到主机上的端口,否则您将无法从主机访问这些容器。