是否有办法在OAuth2令牌端点中接收额外的参数?



我使用Spring授权服务器来实现OAuth2授权服务器。在切换到这个库之前,我正在使用spring-security-oauth2-autoconfigure的Spring安全授权服务器。有了这个,我可以自定义令牌端点,以便在令牌端点中接收一个额外的参数(使用这个Spring OAuth2对令牌端点的每个请求生成访问令牌的支持)。

我通过实现AuthenticationKeyGenerator接口实现了这一点。在这个实现中,我将授权服务器设计为根据用户凭据(用户名和密码)和一个附加参数发出令牌。

是否有办法定制这个新的spring授权服务器,以便在使用client_credentials时接收一个额外的参数?Grant_type,即在令牌端点接收Grant_type, client_id, client_secret和一个额外的参数,并发出一个与这三个元素相关的访问令牌?

到目前为止,我已经创建了一个CustomAuthenticationConverter实现AuthenticationConverter,一个CustomOAuth2AccessTokenGenerator实现OAuth2TokenGenerator<OAuth2AccessToken>

这是实现这一目标的正确途径吗?

我找到了一种方法,通过配置accessTokenRequestConverter来传播令牌端点请求中接收到的附加参数。这样,我就从HTTP请求(POST到令牌端点)获得了附加参数,并将其传播,直到将其包含在令牌本身中。除了accessTokenRequestConverter,我还配置了authenticationProvider,最后配置了CustomTokenGenerator。我通过前两个传递附加参数,然后在CustomTokenGenerator中生成时将其包含在令牌中。

最新更新