我有三个微型服务
网关(Spring Cloud网关)
安全
保险
所有请求都发送到端口8080上的网关服务,该端口将它们重定向到特定的服务
@Bean
public RouteLocator myRoutes (
RouteLocatorBuilder builder
) {
return builder.routes()
.route(p -> p.path("/auth/**")
.filters(f -> f.rewritePath("^/auth", ""))
.uri(authServiceUri))
.route(p -> p
.path("/payments/**")
.filters(f -> f.rewritePath("^/payments", ""))
.uri(paymentServiceUri)
)
.route(p -> p
.path("/insurance/**")
.filters(f -> f.rewritePath("^/insurance", ""))
.uri(insuranceServiceUri)
)
.build();
}
如果导航到/insurance oauth将我重定向到登录页(api.domain.com/auth/login),然后登录表单使用用户凭据(api.domain.com/auth/login)发出post请求,则此请求(如果成功)包含一个位置头,该头将用户重定向到/oauth/authorize端点。
问题是此标头不包含网关服务url(api.domain)。com:8080/auth)但它包含直接服务url(http://localhost:9999)如何修复此问题?如何告诉springoauth将重定向发送回网关服务器而不是服务url?
1条答案
按热度按时间xmjla07d1#
在身份验证服务器上添加以下属性:
关于这方面的一些附加信息可以在spring文档中找到。