、JJWTトークン。タイムアウトを設定するにはどうすればよいですか?
String compactJws = Jwts.builder().setSubject("Joe").signWith(SignatureAlgorithm.HS512, key).compact();
しかし、このトークンが永続的で、どのように私はこの上のタイムアウトのいくつかの種類を設定するには? JWT仕様に従って
、JJWTトークン。タイムアウトを設定するにはどうすればよいですか?
String compactJws = Jwts.builder().setSubject("Joe").signWith(SignatureAlgorithm.HS512, key).compact();
しかし、このトークンが永続的で、どのように私はこの上のタイムアウトのいくつかの種類を設定するには? JWT仕様に従って
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...
:十分ではないかもしれない何らかの理由であれば、あなたは経由して、実際の解析クロックを制御することができます。
本当にありがとうございました。あなたは今朝私に数時間のグーグルを救った! – robm