Вам нужно будет кэшировать содержимое конечной точки JWKS где-то в службе, которую вы пытаетесь проверить, запрашивающей JWT.Хороший способ кэширования этих ключей - использовать библиотеку кэширования, которая будет кэшировать ключи на уровне обслуживания в течение определенного периода времени.Библиотека, которую я использую в своих сервисах, называется Бен Мэймсом caffeine
и может быть найдена здесь .Вот краткий пример того, как вы можете кэшировать JWK в течение 30 минут:
cache = Caffeine.newBuilder()
.maximumSize(5)
.expireAfterWrite(30, TimeUnit.MINUTES)
.build(k -> jwksMap.get(k));
Ваша служба может затем каждые 30 минут обновлять ключи из конечной точки для обновления кэша.