Spring Security 是否有办法在OAuth2令牌端点中接收其他参数?

eanckbw9  于 2022-12-23  发布在  Spring
关注(0)|答案(1)|浏览(109)

我使用Spring Authorization Server来实现OAuth2授权服务器。在切换到这个库之前,我使用的是带有spring-security-oauth2-autoconfigure的Spring Security授权服务器。通过这个,我可以定制令牌端点,以便在令牌端点中接收额外的参数(在Spring OAuth2 Generate Access Token per request to the Token Endpoint的支持下)。
我通过实现AuthenticationKeyGenerator接口实现了这一点,在这个实现中,我设计了授权服务器,使其基于用户凭证(用户名和密码)和一个附加参数来发布令牌。
是否有一种方式来定制该新的Spring授权服务器,以便在使用client_credentialsgrant_type时接收附加参数,即,在令牌端点中接收grant_type、client_id、client_secret和附加参数,并发出与这三个元素相关联的访问令牌?
到目前为止,我已经创建了一个实现AuthenticationConverterCustomAuthenticationConverter和一个实现OAuth2TokenGenerator<OAuth2AccessToken>CustomOAuth2AccessTokenGenerator
这是实现这一目标的正确道路吗?

eqfvzcg8

eqfvzcg81#

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

相关问题