JHipster - Как добавить маршрут к внешним микросервисам в application.yml - PullRequest
0 голосов
/ 22 октября 2018

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

Теперь мне нужно настроить маршрут zuul в файле свойств application.yml моего приложения-шлюза, чтобы получить доступ к этой службе внешним клиентом отдыха (клиентами) и использовать zuul для фильтрации запросов и блокировки ключей в качестве поставщика токенов 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 / добавить».Как правильно настроить application.yml приложения-шлюза?

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

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

1 Ответ

0 голосов
/ 24 октября 2018

Я публикую свое решение на тот случай, если у кого-то возникнет тот же вопрос.Чтобы решить мою проблему, я добавил в 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()
        .
        .
}
...