2017-02-07 3 views
1

Мне нужно извлечь заявки от JWT.Как я могу получить претензии от JWT?

Кажется, что это должно быть без проблем.

Он был подписан, из заголовка я получаю:

{ 
    "alg": "RS256", 
    "typ": "JWT" 
} 

JWT:

eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX25hbWUiOiJtYXJrLnN0YW5nQGRoaWdyb3VwaW5jLmNvbSIsInNjb3BlIjpbIm9wZW5pZCJdLCJyb2xlcyI6WyJKT0JTRUVLRVIiXSwiam9ic2Vla2VySWQiOiJ3TDFkTWdQckZWOUl5dEZZIiwiZXhwIjoxNDg4Mzk1ODE5LCJhdXRob3JpdGllcyI6WyJKT0JTRUVLRVIiXSwianRpIjoiNWRiYjNkYzQtNGI3NC00MDYyLTgzMmQtYjE1MTgwYWZhZjllIiwiY2xpZW50X2lkIjoiZWZjIn0.NxiF4x39na3KdDUFz2zxqy1zSfJkj4FdKHflpgJUxzMgBq8bbJIFVkmwAUYA6_YXm6kGFcyTMgdiRIJpqc5buDPdV1vkzh4QKFTxMz9MF4i3 vtIQ21Vm5W12KikWdWGGUXMD4udJwu7rmuIBtNIa-ciZOPADNrrXfuw7iML1xxAA-C0f4OTbiKqiXr3QEUZwcqZB17qfh_dVRRxgO-_uHUg84JDcpXEDQPzPWX68u1EHH4J6IcpMKn1VY9k3RcZU6pq-ndzQgBlKdVm2owA6i-UM9p1zSz7ZX_2wx0czEEcNF1rMdeIv5yxP9YEpWb14-GUG4qgpn_rAIQBJ7eu7xw

декодирует на сайте jwt.io просто отлично, но так как я не имею «секретный» ключ, он появляется как «недействительные подписи ». Это нормально, я не пытаюсь его проверить.

Все, что я хочу, это претензии, но когда я использую библиотеку Java для ее декодирования, я получаю только ошибки.

Если я декодирую его вручную (например, split/base64 decode), это нормально.

Итак, что я делаю неправильно с библиотеками Java?

+1

Как мы можем ответить на ваш вопрос, не видя ваш код? –

+0

Сообщите мне, если мой ответ будет работать для вас. –

+0

Мой код был тем, что я нашел на SO. Я ищу, как получить один из библиотек для извлечения претензий без моего написания кода для этого. –

ответ

2

Как только вопрос помечен , я понимаю, что вы используете jose4j для разбора токенов JWT.

В этой ситуации вы можете вызывать setSkipSignatureVerification() от JwtConsumerBuilder. Он позволяет разобрать претензии без подтверждения подписи:

JwtConsumer jwtConsumer = new JwtConsumerBuilder() 
            .setSkipSignatureVerification() 
            .build(); 

JwtClaims jwtClaims = jwtConsumer.processToClaims(jwt); 
+0

'alg'' 'RS256', поэтому я думаю, что там будет какой-то открытый ключ, чтобы проверить подпись – pedrofb

+0

@pedrofb Хорошее место! Но по какой-то причине ОП беспокоится только о разборе претензий без проверки подписи. –

+0

Я верю, может быть, неправильно, что добавление зависимости от внешней части данных (т. Е. Открытого ключа) может сделать мой код «хрупким». Любые изменения в ключе требуют меня изменить мой код или хотя бы отреагировать на изменение. И когда это произойдет, мой код сломан. –

Смежные вопросы