Spring security 在spring security OAuth2中自定义令牌端点

Spring security 在spring security OAuth2中自定义令牌端点,spring-security,spring-security-oauth2,Spring Security,Spring Security Oauth2,我想自定义TokenEndpoint的工作方式,以便可以向传入的/oauth/token rest调用添加额外的参数,我将捕获并处理该调用 好的,为了帮助解释我想做什么,这里有一些额外的方面 比方说,在oauth/token请求中,我想添加另一个请求参数条目。因此,我不想发送带有grant\u type=client\u凭据的oauth/令牌(例如),而是想添加grant\u type=client\u凭据&extraInfo=xxxx 因此,我在请求映射/oauth/token而不是内置的(T

我想自定义TokenEndpoint的工作方式,以便可以向传入的/oauth/token rest调用添加额外的参数,我将捕获并处理该调用

好的,为了帮助解释我想做什么,这里有一些额外的方面

比方说,在oauth/token请求中,我想添加另一个请求参数条目。因此,我不想发送带有grant\u type=client\u凭据的oauth/令牌(例如),而是想添加grant\u type=client\u凭据&extraInfo=xxxx

因此,我在请求映射/oauth/token而不是内置的(TokenEndpoint)上运行的令牌端点,我做了原始端点所做的一切,另外,我解析extraInfo=xxx,并在令牌的附加信息部分将其设置为键/值

稍后在我的后端,我提取这个额外的信息,并使用它来提供一些我需要的功能。各种客户端将使用此extraInfo参数发送一些我需要知道的特定类型的信息


所以,基本上,我如何替换我自己的令牌端点来代替常规端点?这是在令牌服务中吗?如果是的话,具体是哪个部分?

我找到了一个替代方案,来完成我想做的事情,而不必尝试在我的自定义令牌端点中创建和挂接任何混乱

我在TokenEndpoint周围(@around…)放置了一个方面,并捕获了传入的参数和结果令牌等。然后,我使用spring会话框架放入了一个我可以访问的结构(从传入的内容创建),现在我可以在结果代码中获得它


这就是我想要的,而不需要做更复杂的事情。

您是否尝试过使用请求映射(/oauth/token)添加您自己的控制器bean来处理此问题?是的,但随后将其绑定到所有oauth2基础设施、token granter等中,这是非常重要的。我确实是这样做的,因为我看到了与你所说的基本相同的端点。大多数情况下,我正在寻找一种使用SPI将我自己的端点绑定到现有端点的方法,而无需重写spring security ouath2代码。当我创建我自己的令牌端点时,整个CRSF缺少令牌的混乱就会发生,并在它使用403到达之前取消对我自己令牌端点的调用。我确信,设置原始spring security TokenEndpoint的过程为他们的POST调用设置了一个余量