2017-06-20 17 views
0

を投げトークン解析:のOAuth2 - いつも私はトークンをこのように解析しようとしています例外

 Claims claims1 = Jwts.parser() 
        .setSigningKey(publicKey) 
        .parseClaimsJws(token); 

しかし、私は常にこの例外を取得:それでも

java.lang.IllegalArgumentException: Key bytes cannot be specified for RSA signatures. Please specify a PublicKey or PrivateKey instance. 

、私は同じトークンをしようとすると、私の公開と秘密鍵https://jwt.io/で、それが検証されます。 2つの質問:

  1. 秘密鍵を指定する必要がありますか?もしそうなら、どのように私のコードでそうすることができますか?

  2. 実際、今私は署名検証については気にしません。トークンを検証することなくそのトークンを解析する方法については、私は幸いです。

答えて

0

publicKeyはBase64でエンコードされた文字列であると仮定します。 その場合、デコードしてsun.security.rsa.RSAPublicKeyImplのインスタンスを作成する必要があります。

byte[] decode = TextCodec.BASE64.decode(publicKey); 
Key key = new RSAPublicKeyImpl(decode); 
Claims claims1 = Jwts.parser() 
       .setSigningKey(key) 
       .parseClaimsJws(token); 
関連する問題