Spring Gateway OAuth - 重定向的完整 URL

Posted

技术标签:

【中文标题】Spring Gateway OAuth - 重定向的完整 URL【英文标题】:Spring Gateway OAuth - Full URL on redirect 【发布时间】:2020-11-24 03:30:53 【问题描述】:

我们正在使用 Spring Gateway Service for Security (OAuth2)。登录重定向响应为相对路径 例如:位置:/oauth2/authorization/client1。

我们如何强制在重定向时响应完整的 url(总是,不仅仅是登录)

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

请帮忙。

【问题讨论】:

可以分享配置吗? 【参考方案1】:

这是我的工作方式 - 至少对于身份验证条目和身份验证成功 url。

    通过扩展 DefaultServerRedirectStrategy 创建一个类,并通过将 baseUrl(模式、主机和端口)添加到 uri 参数来实现 sendRedirect 方法。

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

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

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

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

【讨论】:

任何其他解决方案,请发布。

以上是关于Spring Gateway OAuth - 重定向的完整 URL的主要内容,如果未能解决你的问题,请参考以下文章

spring cloud gateway oauth 整合

Spring Gateway OAuth - 重定向的完整 URL

Spring Cloud Gateway OAuth2 with Spring Security OAuth2 Authorization Server = loop

Spring gateway + Oauth2实现单点登录

使用 spring gateway 和 Oauth2 配置 Client Credentials Flow

在 Spring Cloud Gateway 的 oauth2 客户端流中禁用重定向到 oauth2/authorization/registrationId