springboot oauth2位置标题

gg58donl  于 2021-07-24  发布在  Java
关注(0)|答案(1)|浏览(350)

我有三个微型服务
网关(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?

xmjla07d

xmjla07d1#

在身份验证服务器上添加以下属性:

server.forward-headers-strategy=framework

关于这方面的一些附加信息可以在spring文档中找到。

相关问题