默认重定向 URL 如何在 spring 安全 5 中工作

how default redirect URL work in spring security 5

我已经完成了以下 posts。我仍然无法理解重定向 uri 概念。

https://www.baeldung.com/spring-webclient-oauth2

https://docs.spring.io/spring-security/site/docs/5.0.7.RELEASE/reference/html/oauth2login-advanced.html#oauth2login-advanced-redirection-endpoint

https://docs.spring.io/spring-security/site/docs/5.2.x/reference/html/oauth2.html#oauth2login-sample-redirect-uri

在身份服务器中,我们注册了客户端应用程序,对于代码授权类型,我们告诉这将是我们的重定向 url 即 https://someserver:port/

然而,spring 和其他 post 建议将重定向 uri 设置为 {baseUrl}/login/oauth2/code/{registrationId}。

如果我在身份服务器中将重定向 uri 设置为 https://someserver:port/,我会感到困惑,{baseUrl}/login/oauth2/code/{registrationId} 即 https://someserver:port/login/oauth2/code/{registrationId} 将起作用。它不应该提供无效的重定向 uri 吗?

请指正我的理解。

“redirectUrl”参数用于保护授权代码与访问令牌的交换,以便它由在批准重定向的 URL 之一可用的服务执行。

如果您使用 https://someserver:port/*,那么它将匹配该服务器上的所有端点。当依赖于默认 Spring 安全端点 {baseUrl}/login/oauth2/code/{registrationId} 时,最好在重定向 URL 配置中具体说明并使用 https://someserver:port/login/oauth2/code/{registrationId} 作为值。这两个选项都可以正常工作,但后者更安全。