2016-10-06 11 views

答えて

1
Date expiration = getExpirationDate(); // implement me 

Jwts.builder().setSubject("Joe") 
    .setExpiration(expiration) 
    .signWith(SignatureAlgorithm.HS512, key) 
    .compact(); 

、日付は、エポックから(ないミリ秒単位)の数に変換しexp JWTクレームとして格納されます。パーサーは、その請求を調べ、JWTが期限切れでないことを確認します。

有効期限のチェックは、解析時のシステムクロック時間に基づいています。トークンを生成したマシンのクロックが、トークンを解析するマシンと比較して妥当に漂っている場合、満了チェックが失敗する可能性があります。この場合、あなたはクロックの違いについていくつかの余地を可能にするために(JwtParser /ビルダー上)JJWTのsetAllowedClockSkewSecondsメソッドを使用することができ、たとえば、(1〜2分で十分以上にする必要があります):

Jwts.parser().setAllowedClockSkewSeconds(120)...etc... 

(これはテストケースには通常、最も便利です)Clockしかしほとんどの場合、必要ではないはず設定

Jwts.parser().setClock(new MyClock())...etc... 

:十分ではないかもしれない何らかの理由であれば、あなたは経由して、実際の解析クロックを制御することができます。

+1

本当にありがとうございました。あなたは今朝私に数時間のグーグルを救った! – robm

関連する問題