Jhipster-在docker主机上部署除网关本身、混合docker和本地部署之外的所有内容时,无法使用网关应用程序

Jhipster-在docker主机上部署除网关本身、混合docker和本地部署之外的所有内容时,无法使用网关应用程序,docker,microservices,jhipster,keycloak,gateway,Docker,Microservices,Jhipster,Keycloak,Gateway,我有一些JHipster Spring微服务和网关项目。我使用docker在主机上部署了除网关之外的所有组件。我在另一台主机上启动了网关 我使用keydove进行OAuth身份验证 当我使用docker compose将所有微服务、数据库和网关作为docker容器部署到docker网络上时,一切都很好 但当我只在docker上部署除网关之外的所有东西时,它就不起作用了。我的意思是如果网关位于docker创建的网络之外。这样做的动机是,我只希望我的UI程序员在自己的PC上启动并运行网关,并使用部署

我有一些JHipster Spring微服务和网关项目。我使用docker在主机上部署了除网关之外的所有组件。我在另一台主机上启动了网关

我使用keydove进行OAuth身份验证

当我使用docker compose将所有微服务、数据库和网关作为docker容器部署到docker网络上时,一切都很好

但当我只在docker上部署除网关之外的所有东西时,它就不起作用了。我的意思是如果网关位于docker创建的网络之外。这样做的动机是,我只希望我的UI程序员在自己的PC上启动并运行网关,并使用部署在服务器主机上的微服务。为了便于用户界面开发,需要使用
gradle bootRun-Pprod
启动并运行这个唯一的网关

我使用一种技术为docker网络上的每个容器分配一个单独的IP。这种技术称为Docker MacVLan网络。这样,主机中的每个容器在物理网络中都有一个单独的IP地址,并且这些容器中的每个容器在网络中的其他主机上都是可见的

问题在于,在正常的docker部署中(当网关部署在同一主机的docker网络中时),一切正常。但在我的场景中,成功登录后,每个微服务都返回
错误401

在microservice中,它显示以下错误:

o.s.s.oauth2.client.OAuth2RestTemplate   : Setting request Accept header to [application/json, application/x-jackson-smile, application/cbor, application/*+json]
o.s.s.oauth2.client.OAuth2RestTemplate   : GET request for "http://keycloak:9080/auth/realms/jhipster/protocol/openid-connect/userinfo" resulted in 401 (Unauthorized); invoking error handler
n.m.b.s.o.CachedUserInfoTokenServices    : Could not fetch user details: class org.springframework.security.oauth2.client.resource.OAuth2AccessDeniedException, Unable to obtain a new access token for resource 'null'. The provider manager is not configured to support it.
p.a.OAuth2AuthenticationProcessingFilter : Authentication request failed: error="invalid_token", error_description="token string here"

上面说你的令牌无效。当一切都部署在docker中的同一个主机上时,同样的机制才起作用。是为了防止令牌验证外部主机吗?我个人对此表示怀疑,因为这并没有阻止我成功登录网关。我刚刚检查了钥匙斗篷。通过命令
-b0.0.0.0

请帮助我在
gradle bootRun-Pprod
旁边运行网关


总之,我可以将我的问题改为:我只希望UI开发人员能够在自己的PC上测试angular/spring gateway项目,同时使用docker将其他服务部署在强大的服务器上(使用KeyClope进行身份验证)。用户界面开发人员无法在自己的电脑上部署这些其他服务。如何在JHipster中执行此操作?

添加服务器。使用网关时,在配置中使用forward headers=true