JHipster - 如何在 application.yml 中添加到外部微服务的路由

JHipster - How to add route to external microservices in application.yml

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

现在我需要在我的网关应用程序的 application.yml 属性文件上配置 zuul 路由,以通过外部休息客户端(客户)访问此服务并使用 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

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

提前感谢您的帮助。

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

我post我的解决方案,以防有人有同样的问题。为了解决我的问题,我在 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()
        .
        .
}