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, wait
setAudience, setExpiresAt, setIssuedAt, setIssuer, setJWTId, setNotBefore, setSubject
public 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.ALGORITHM
public 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
- 容忍空间,单位:秒。当不能晚于当前时间时,向后容忍;不能早于向前容忍。JWTValidator
public boolean verify(JWTSigner signer)
signer
- 签名器(签名算法)Copyright © 2024. All rights reserved.