Контекст:
Несколько устройств могут использовать одинаковые учетные данные клиента, и в результате они совместно используют токены, что может привести к состязанию, когда два или более устройств пытаются обновить токен. Идентификацию устройства можно найти в заголовках, поэтому пользовательская реализация AuthenticationKeyGenerator
может использовать идентификатор устройства для генерации токена для каждого устройства. Идентификатор устройства можно сохранить в качестве дополнительного параметра в OAuth2Request.getExtensions()
.
Проблема: Как я уже говорил, идентификатор устройства не приходит из параметров GET / POST, поэтому он отсутствует в OAuth2Request.getRequestParameters()
, но может быть найден в заголовках. Но OAuth2Request
создается в DefaultOAuth2RequestFactory
(реализация OAuth2RequestFactory
), который не имеет доступа к исходному http-запросу для копирования информации из заголовков и добавления ее в OAuth2Request.getExtensions()
Каков наилучший способ перехватить заголовок и сохранить его внутри OAuth2Request.getExtensions()
, чтобы AuthenticationKeyGenerator
позже использовал его как часть ключа?