【问题标题】:JHipster - How to add route to external microservices in application.ymlJHipster - 如何在 application.yml 中添加到外部微服务的路由
【发布时间】:2018-10-25 23:42:27
【问题描述】:

我正在使用 Jhipster 5.5.0 构建一个能够将休息请求路由到不同微服务的 zuul 网关。 其中一些微服务是用不同的语言开发的,在不同的服务器上部署和运行。每个微服务都通过 OIDC 使用相同的 keycloak 服务器在不同的领域进行保护。

现在我需要在我的网关应用程序的 application.yml 属性文件上配置 zuul 路由,以通过外部 rest 客户端(客户)访问此服务,并使用 zuul 过滤请求和 keycloak 作为 oidc 令牌提供程序。 然后我修改网关 application.yml,将以下 zuul 路由添加到示例外部服务(这种类型的配置适用于为另一个项目开发的另一个 zuul 网关,无需使用 jhipster):

    # zuul routing:
    zuul:
      ignored-services: "*"
      routes:
        # external endpoints
        myapi-v2-test:
          path: /my-api/mypackage/v2/add
          sensitiveHeaders: Cookie, Set-Cookie
          url: http://192.168.3.148:8080/server/rest/api/mypackage_2.0.0/add

当我尝试使用带有 Auth Bearer 令牌(由 keycloak 服务器使用 jhipster 领域(和 client_id “web_app”)提供)的soap-ui客户端测试调用时,我总是收到响应错误代码403 - Forbidden对于路径 “/my-api/mypackage/v2/add”。 配置网关应用程序的 application.yml 的正确方法是什么?

提前感谢您的帮助。

我没有使用注册表服务(例如 Spring Cloud Eureka 或 Jhipster Registry)

【问题讨论】:

    标签: microservices jhipster netflix-zuul


    【解决方案1】:

    如果有人有同样的问题,我会发布我的解决方案。为了解决我的问题,我在OAuth2SsoConfiguration.java configure(WebSecurity web) 方法中添加了这行代码:

        @Override
        public void configure(WebSecurity web) throws Exception {
            web.ignoring()
                .
                .antMatchers("/my-api/**")
                .
        }
    

    以及configure(HttpSecurity http)中的以下内容:

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http
            .
            .
        .and()
            .
            .antMatchers("/my-api/**").permitAll()
            .
            .
    }
    

    【讨论】:

      猜你喜欢
      • 2019-03-02
      • 2020-04-20
      • 1970-01-01
      • 2017-12-31
      • 2018-08-06
      • 2018-04-24
      • 2021-08-26
      • 1970-01-01
      • 2019-07-18
      相关资源
      最近更新 更多