如何在 DefaultOAuth2AuthorizationRequestResolver 上设置 AuthorizationRequestCustomizer?

How to set an AuthorizationRequestCustomizer on a DefaultOAuth2AuthorizationRequestResolver?

在尝试让 Spring Security OAuth2 5.4.2 与自定义范围和 Auth0 一起工作时 授权码流。我偶然发现了一个我没有简单解决方案的小细节。

要请求自定义范围,Auth0 要求用户提供 audience parameter。重定向 URI 在 org.springframework.security.oauth2.client.web.DefaultOAuth2AuthorizationRequestResolver#resolve(javax.servlet.http.HttpServletRequest, java.lang.String, java.lang.String).

中创建

这个过程可以通过使用 AuthorizationRequestCustomizer 来修改,但是我没有看到任何注入自定义程序的方法,并且 DefaultOAuth2AuthorizationRequestResolver 没有注册为 bean 或者至少我不明白如何访问它。

您可以实施自定义 OAuth2AuthorizationRequestResolver,然后将其添加到您的 spring 安全配置中

.oauth2Login(req->
          req.authorizationEndpoint()
         .authorizationRequestResolver(new YourCustomAuthorizationRequestResolver)
 )