gpt4 book ai didi

spring - 如何将 header 添加到 `AuthenticationKeyGenerator` 中?

转载 作者:行者123 更新时间:2023-12-04 13:44:01 26 4
gpt4 key购买 nike

上下文:
多个设备可以使用相同的客户端凭据,因此它们共享 token ,当 2 个或更多设备尝试刷新 token 时,这可能导致竞争条件。设备标识可以在标题中找到,所以自定义 AuthenticationKeyGenerator实现可以使用设备 ID 为每个设备生成一个 token 。设备 ID 可以作为附加参数存储在 OAuth2Request.getExtensions() 中.

问题:正如我提到的,设备 ID 不是来自 GET/POST 参数,所以它不存在于 OAuth2Request.getRequestParameters() 中。 ,但可以在标题中找到。但是OAuth2Request创建于 DefaultOAuth2RequestFactory ( OAuth2RequestFactory 的实现),它无权访问原始 http 请求以从 header 中复制信息并将其添加到 OAuth2Request.getExtensions()
捕获标题并将其存储在内部的最佳方法是什么 OAuth2Request.getExtensions()AuthenticationKeyGenerator以后将其用作 key 的一部分?

最佳答案

我有一个类似的 AuthenticationKeyGenerator 实现,其中 设备/用户代理 用于为 生成 key auth_to_access 使用 Redis 作为 token 存储。

下面是我如何在自定义 AuthenticationKeyGenerator 实现中捕获用户代理的代码片段

HttpServletRequest request = ((ServletRequestAttributes)RequestContextHolder.currentRequestAttributes()).getRequest();

String userAgent = request.getHeader("User-Agent");

关于spring - 如何将 header 添加到 `AuthenticationKeyGenerator` 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52284253/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com