Spring 网关 OAuth - 完全 URL 重定向

Spring Gateway OAuth - Full URL on redirect

我们正在使用 Spring 安全网关服务 (OAuth2)。登录重定向响应为相对路径 例如:位置:/oauth2/authorization/client1.

我们如何强制响应完全 url 重定向(总是,不仅仅是为了登录)

例如:位置:https://example.com/oauth2/authorization/google

请帮忙。

这是我如何让它工作的 - 至少对于 auth entry 和 auth success urls。

  1. 通过扩展 DefaultServerRedirectStrategy 创建一个 class 并通过将 baseUrl(架构、主机和端口)添加到 uri 参数来实现 sendRedirect 方法。

  2. 创建 RedirectServerAuthenicationSuccessHandler 实例并设置在步骤 1 中创建的 redirectStrategy。

  3. 在 ServerHttpSecurity.oauth2Login() 中设置在步骤 2 中创建的 authentionSuccessHandler

  4. 像步骤 2 和步骤 3 一样,创建一个 RedirectServerAuthenticationEntryPoint 实例,设置 redirectStragey 并将其添加到 ServerHttpSecurity.exceptionHandling()

希望这对寻求解决方案的任何人有所帮助。