Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Estou tentando pegar uma JWT de uma API externa, e decodificar na minha API

Boa Noite, estou com um problema na decodificação de um JWT que estou pegando em uma API externa. Na resposta da API eles me enviam um JWT e o Secret, o JWT ta sendo informado lá em baixo, e o Secret é algo parecido com isso aqui: 8bb2f539-5484-42ce[...]

Ou seja o valor de Current.getInstance().getTokenApi(), é exatamente o valor do secret passado pela API externa. Sendo que quando eu executo o código de decodificação, o console apresenta a seguinte mensagem: CONSOLE >>>> JWT signature does not match locally computed signature. JWT validity cannot be asserted and should not be trusted.

public static void getDataApi(String token) {

        String apiSecret = Current.getInstance().getTokenApi();

        try {
            Claims body = Jwts.parser().setSigningKey(apiSecret).parseClaimsJws(token).getBody();
        } catch (Exception e) {
            System.out.println(e.getMessage());
        }

    }

    public static void main(String[] args) {
        getDataApiLogusPay("eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0cmFuc2FjdGlvbl9pZCI6Ijg2MjVkOTQwLTBhOGMtNDFkMy1iZDU2LTVmMDk2YzRmMzgzYSIsIm9yZGVyX2lkIjoiMTEyNiIsInR5cGUiOiJEZWJpdCBjYXJkIiwidmFsdWUiOiIxMDAuMDAiLCJjb252ZXJ0ZWRfdmFsdWUiOiIzNzkuMDciLCJjdXJyZW5jeSI6IlVTRCIsInN0YXR1cyI6MiwiZW1haWwiOiJvcmxhbmRvbmV0dG8xMUBnbWFpbC5jb20iLCJtb3RpdmUiOiJPcGVyYXRpb24gU3VjY2Vzc2Z1bCIsInNhbmRib3giOnRydWUsImNhcmRIb2xkZXIiOiJvcmxhbmRvIiwiZXhwRGF0ZSI6IjA2LzIwMjYiLCJjYXJkTnVtYmVyIjoiMDAwMDAwKioqKioqKioqMDAwMSIsInBhcmFtczEiOiItIiwicGFyYW1zMiI6Ii0iLCJpYXQiOjE1NjQ0MjUxODgsImV4cCI6MTU2NDQyODc4OH0.6V5kux5xSaraBawvhJrIVaAiosgyMWY6OcEXmb13tWQ");
    }
1 resposta
solução!

Oi José,

A princípio o único motivo de dar esse erro é se o secret utilizado no seu código for diferente do secret utilizado ao gerar o token.

Dá uma debugada para verificar se os 2 secrets são identicos.