public class JWT extends Object implements RegisteredPayload<JWT>
结构:header.payload.signature
详细介绍见:https://www.jianshu.com/p/576dbf44b2ae
AUDIENCE, EXPIRES_AT, ISSUED_AT, ISSUER, JWT_ID, NOT_BEFORE, SUBJECT| Modifier and Type | Method and Description |
|---|---|
JWT |
addHeaders(Map<String,?> headers)
增加JWT头信息
|
JWT |
addPayloads(Map<String,?> payloads)
增加JWT载荷信息
|
static JWT |
create()
创建空的JWT对象
|
String |
getAlgorithm()
获取算法ID(alg)头信息
|
JWTHeader |
getHeader()
获取头
|
Object |
getHeader(String name)
获取头信息
|
JSONObject |
getHeaders()
获取所有头信息
|
JWTPayload |
getPayload()
获取载荷对象
|
Object |
getPayload(String name)
获取载荷信息
|
JSONObject |
getPayloads()
获取所有载荷信息
|
JWTSigner |
getSigner()
获取JWT算法签名器
|
static JWT |
of(String token)
创建并解析JWT对象
|
JWT |
parse(String token)
解析JWT内容
|
JWT |
setCharset(Charset charset)
设置编码
|
JWT |
setHeader(String name,
Object value)
设置JWT头信息
|
JWT |
setKey(byte[] key)
设置密钥,如果头部指定了算法,直接使用,否则默认算法是:HS256(HmacSHA256)
|
JWT |
setPayload(String name,
Object value)
设置JWT载荷信息
|
JWT |
setSigner(JWTSigner signer)
设置签名算法
|
JWT |
setSigner(String algorithmId,
byte[] key)
设置签名算法
|
JWT |
setSigner(String algorithmId,
Key key)
设置签名算法
|
JWT |
setSigner(String algorithmId,
KeyPair keyPair)
设置非对称签名算法
|
String |
sign()
签名生成JWT字符串
|
String |
sign(boolean addTypeIfNot)
签名生成JWT字符串
|
String |
sign(JWTSigner signer)
签名生成JWT字符串
|
String |
sign(JWTSigner signer,
boolean addTypeIfNot)
签名生成JWT字符串
|
boolean |
validate(long leeway)
验证JWT是否有效,验证包括:
Token是否正确
RegisteredPayload.NOT_BEFORE:生效时间不能晚于当前时间
RegisteredPayload.EXPIRES_AT:失效时间不能早于当前时间
RegisteredPayload.ISSUED_AT: 签发时间不能晚于当前时间
|
boolean |
verify()
验证JWT Token是否有效
|
boolean |
verify(JWTSigner signer)
验证JWT Token是否有效
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitsetAudience, setExpiresAt, setIssuedAt, setIssuer, setJWTId, setNotBefore, setSubjectpublic JWT()
public JWT(String token)
token - JWT Token字符串,格式为xxxx.yyyy.zzzzpublic static JWT create()
public static JWT of(String token)
token - JWT Token字符串,格式为xxxx.yyyy.zzzzpublic JWT parse(String token)
token - JWT Token字符串,格式为xxxx.yyyy.zzzzpublic JWT setKey(byte[] key)
key - 密钥public JWT setSigner(String algorithmId, byte[] key)
algorithmId - 签名算法ID,如HS256key - 密钥public JWT setSigner(String algorithmId, Key key)
algorithmId - 签名算法ID,如HS256key - 密钥public JWT setSigner(String algorithmId, KeyPair keyPair)
algorithmId - 签名算法ID,如HS256keyPair - 密钥对public JWTSigner getSigner()
public JSONObject getHeaders()
public JWTHeader getHeader()
public String getAlgorithm()
JWTHeader.ALGORITHMpublic JWT setHeader(String name, Object value)
name - 头名value - 头public JWT addHeaders(Map<String,?> headers)
headers - 头信息public JSONObject getPayloads()
public JWTPayload getPayload()
public JWT setPayload(String name, Object value)
setPayload in interface RegisteredPayload<JWT>name - 载荷名value - 头public JWT addPayloads(Map<String,?> payloads)
payloads - 载荷信息public String sign()
public String sign(boolean addTypeIfNot)
addTypeIfNot - 如果'typ'头不存在,是否赋值默认值public String sign(JWTSigner signer, boolean addTypeIfNot)
signer - JWT签名器addTypeIfNot - 如果'typ'头不存在,是否赋值默认值public boolean verify()
public boolean validate(long leeway)
RegisteredPayload.NOT_BEFORE:生效时间不能晚于当前时间RegisteredPayload.EXPIRES_AT:失效时间不能早于当前时间RegisteredPayload.ISSUED_AT: 签发时间不能晚于当前时间leeway - 容忍空间,单位:秒。当不能晚于当前时间时,向后容忍;不能早于向前容忍。JWTValidatorpublic boolean verify(JWTSigner signer)
signer - 签名器(签名算法)Copyright © 2025. All rights reserved.