我正在尝试通过 WebClient 调用升级到 spring security 5.5.1。我发现 oauth2 clientId和机密现在是 URL 编码的AbstractWebClientReactiveOAuth2AccessTokenResponseClient,但我的令牌提供程序不支持这一点(例如,如果机密包含字符,则+仅当它作为+not as发送时才有效%2B)。我知道这被视为spring-security 方面的错误修复),但我无法让令牌提供者轻松更改其行为。
所以我试图找到一种方法来解决这个问题。
关于如何自定义访问令牌请求的[文档](https://docs.spring.io/spring-security/site/docs/current/reference/html5/#customizing-the-access-token-request )没有当您使用 WebClient 配置时似乎适用(这是我的情况)。
为了删除 clientid/secret 编码,我必须扩展和复制大部分现有代码以AbstractWebClientReactiveOAuth2AccessTokenResponseClient进行自定义,WebClientReactiveClientCredentialsTokenResponseClient因为其中大部分具有私有/默认可见性。我在 spring-security 项目的一个增强问题中追踪到了这一点。
是否有更简单的方法来自定义令牌请求的授权标头,以跳过 url 编码?
spring-security spring-security-oauth2 spring-webflux spring-webclient