Я использую Vertx с Kotlin и хочу аутентифицировать токен JWT.
У меня есть открытый ключ в файле веб-ключа Json от One Login.
{ "keys": [
{
"kty": "RSA",
"kid": "JRcO4nxs5jgc8YdN7I2hLO4V_ql1bdoiMXmcYgHm4Hs",
"n": "z8fZsz...Something..GHSTAoQw",
"e": "AQAB"
} ] }
Как я могу использовать вышеупомянутый открытый ключ в файле Json Web Key для аутентификации, если токен JWT действителен?
Класс / метод, который я использую, это JWTAuth.create (vertx, config)
var config = JWTAuthOptions(
pubSecKeys = listOf(PubSecKeyOptions(
algorithm = "RS256",
publicKey = "<Value Copied from above json's 'n' field>")))
var provider = JWTAuth.create(myvertx, config)
Над строкой выдается исключение, говорящее
RuntimeException: java.security.spec.InvalidKeySpecException: java.security.InvalidKeyException: IOException: DerInputStream.getLength (): lengthTag = 71, слишком большой.