JHipster - Как добавить маршрут к внешним микросервисам в application.yml

Я использую Jhipster 5.5.0 для создания шлюза zuul, способного маршрутизировать запрос на отдых в разные микросервисы. Некоторые из этих микросервисов разработаны на разных языках, развернуты и запущены на разных серверах. Все микросервисы защищены через OIDC с использованием одного и того же сервера keycloak в разных сферах.

Теперь мне нужно настроить маршрут zuul в файле свойств application.yml моего приложения-шлюза, чтобы получить доступ к этой службе с помощью внешнего клиента отдыха (клиентов) и использовать zuul для фильтрации запроса и keycloak в качестве поставщика токенов oidc. Затем я изменяю gateway 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 с токеном Auth Bearer в заголовке, предоставленным сервером keycloak с использованием области jhipster (и client_id "web_app"), я всегда получаю код ошибки ответа 403 - Forbidden для пути «/ my-api / mypackage / v2 / add». Как правильно настроить application.yml приложения шлюза?

Заранее благодарим за любую помощь.

Я не использую службу реестра (например, Spring Cloud Eureka или Jhipster Registry).

Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Создание микрофронтендов с Angular и федерацией модулей в монорепо: Пошаговое руководство
Создание микрофронтендов с Angular и федерацией модулей в монорепо: Пошаговое руководство
Микрофронтенды стали популярным архитектурным паттерном для веб-разработки. С появлением федерации модулей в Webpack 5 реализация микрофронтендов...
0
0
794
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я публикую свое решение на случай, если у кого-то возникнет такой же вопрос. Чтобы решить свою проблему, я добавил в OAuth2SsoConfiguration.java эту строку кода в методе настроить (WebSecurity в Интернете):

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

и следующее в настроить (HttpSecurity http):

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

Другие вопросы по теме