Как JWE закодировать мой токен ответа jwt на новом сервере авторизации Spring
У меня есть требование обновить наш предыдущий сервер авторизации на основе Spring 2.6 до Spring Security 6 и Spring 3+, и я решил использовать новый сервер авторизации Spring. Настроили конфигурации в соответствии с нашими потребностями, используя собственный конвертер аутентификации, настраиваемый обработчик ответов токена доступа и настройщик токенов. Однако ранее у нас была реализация JwtAccessTokenConverter и TokenStore, с помощью которой мы подписывали и шифровали наш токен jwt с помощью пары ключей rsa и jwe (алгоритм RSA_OAEP_256), и поскольку эти интерфейсы теперь устарели, я могу использовать только NimbusJwtEncoder теперь класс, который имеет только кодировку на основе JWS. Я также использую nimbusds.jose.jwk.JWKSet для генерации случайной пары ключей RSA в моем jwkSource(@Bean public JWKSource jwkSource() {---}) и tokenCustomizer для добавления дополнительных утверждений к токену. Мне было интересно, есть ли у кого-нибудь подсказка о том, как я могу добиться шифрования JWE на моем JwtEncoder/JwtGenerator без использования дополнительных зависимостей. К вашему сведению: я вижу, что библиотека Nimbus по-прежнему предоставляет JWEObject/JWEEncrypter и т. д., но я не могу найти способ получить контекст окончательного объекта JWT, зашифровать его и ввести обратно в AuthorizationServerEndpointsConfigurer.tokenStore(). как раньше.
Я попробовал использовать ту же реализацию, что и NimbusJwtEncoder, в своем пользовательском кодировщике и изменить конфигурации шифрования JWS на конфигурации JWE, но это оказалось слишком сложным, и мне нужно было знать, есть ли какое-либо прямое решение.