我正在使用Jhipster 5.5.0构建一个zuul网关,该网关能够将剩余请求路由到不同的微服务。 其中一些微服务是用不同的语言开发的,并在不同的服务器上部署和运行。每个微服务都通过OIDC在不同领域使用相同的密钥库服务器进行保护。
现在,我需要在网关应用程序的application.yml属性文件上配置zuul路由,以通过外部rest客户端(客户)访问此服务,并使用zuul作为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令牌的soap-ui客户端测试呼叫时(由keycloak服务器使用jhipster领域(和client_id“ web_app”)提供),我总是收到响应错误代码{{1 }}的路径 “ / my-api / mypackage / v2 / add”。 什么是配置网关应用程序的application.yml的正确方法?
提前感谢您的帮助。
我没有使用注册表服务(例如Spring Cloud Eureka或Jhipster Registry)。
答案 0 :(得分:0)
如果有人有相同的问题,我会发布解决方案。为了解决我的问题,我在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()
.
.
}