在 spring 安全 OAuth2 中自定义 TokenEndpoint

Customizing the TokenEndpoint in spring security OAuth2

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

好的,也许为了帮助解释我想做的事情,这里有一些额外的方面。

比方说,在 oauth/token 请求中我想添加另一个请求参数条目。因此,我不想用 grant_type=client_credentials 发送 oauth/token (例如),而是想添加 grant_type=client_credentials&extraInfo=xxxx.

所以我的令牌端点 运行 在请求映射 /oauth/token 而不是内置端点 (TokenEndpoint) 时,我做了原件所做的一切加上,我解析了 extraInfo=xxx并在令牌的附加信息部分将其设置为 key/value。

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

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

我想出了一个替代方法来替代我想做的事情,而没有尝试创建和挂钩我的自定义令牌端点的任何混乱。

我围绕 (@Around ...) TokenEndpoint 放置了一个方面,并捕获传入参数和生成的令牌等。然后我使用 spring 会话框架放入一个我可以访问的结构(根据进来的东西创建)现在我可以在我的结果代码中得到它。

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