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