mirror of
https://gitee.com/dromara/hutool.git
synced 2025-05-04 20:58:00 +08:00
JWT#sign增加重载,可选是否增加默认的typ参数
This commit is contained in:
parent
5cf19ea460
commit
9c0f791ac5
@ -2,10 +2,11 @@
|
|||||||
# 🚀Changelog
|
# 🚀Changelog
|
||||||
|
|
||||||
-------------------------------------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------------------------------------
|
||||||
# 5.8.24(2023-11-14)
|
# 5.8.24(2023-11-15)
|
||||||
|
|
||||||
### 🐣新特性
|
### 🐣新特性
|
||||||
* 【cache 】 Cache增加get重载,可自定义超时时间(issue#I8G0DL@Gitee)
|
* 【cache 】 Cache增加get重载,可自定义超时时间(issue#I8G0DL@Gitee)
|
||||||
|
* 【cache 】 JWT#sign增加重载,可选是否增加默认的typ参数(issue#3386@Github)
|
||||||
|
|
||||||
### 🐞Bug修复
|
### 🐞Bug修复
|
||||||
* 【core 】 修复LocalDateTime#parseDate未判断空问题问题(issue#I8FN7F@Gitee)
|
* 【core 】 修复LocalDateTime#parseDate未判断空问题问题(issue#I8FN7F@Gitee)
|
||||||
|
@ -302,7 +302,18 @@ public class JWT implements RegisteredPayload<JWT> {
|
|||||||
* @return JWT字符串
|
* @return JWT字符串
|
||||||
*/
|
*/
|
||||||
public String sign() {
|
public String sign() {
|
||||||
return sign(this.signer);
|
return sign(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 签名生成JWT字符串
|
||||||
|
*
|
||||||
|
* @param addTypeIfNot 如果'typ'头不存在,是否赋值默认值
|
||||||
|
* @return JWT字符串
|
||||||
|
* @since 5.8.24
|
||||||
|
*/
|
||||||
|
public String sign(boolean addTypeIfNot) {
|
||||||
|
return sign(this.signer, addTypeIfNot);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -312,19 +323,33 @@ public class JWT implements RegisteredPayload<JWT> {
|
|||||||
* @return JWT字符串
|
* @return JWT字符串
|
||||||
*/
|
*/
|
||||||
public String sign(JWTSigner signer) {
|
public String sign(JWTSigner signer) {
|
||||||
|
return sign(signer, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 签名生成JWT字符串
|
||||||
|
*
|
||||||
|
* @param signer JWT签名器
|
||||||
|
* @param addTypeIfNot 如果'typ'头不存在,是否赋值默认值
|
||||||
|
* @return JWT字符串
|
||||||
|
* @since 5.8.24
|
||||||
|
*/
|
||||||
|
public String sign(JWTSigner signer, boolean addTypeIfNot) {
|
||||||
Assert.notNull(signer, () -> new JWTException("No Signer provided!"));
|
Assert.notNull(signer, () -> new JWTException("No Signer provided!"));
|
||||||
|
|
||||||
// 检查tye信息
|
// 检查tye信息
|
||||||
final String type = (String) this.header.getClaim(JWTHeader.TYPE);
|
if (addTypeIfNot) {
|
||||||
if (StrUtil.isBlank(type)) {
|
final String type = (String) this.header.getClaim(JWTHeader.TYPE);
|
||||||
this.header.setClaim(JWTHeader.TYPE, "JWT");
|
if (StrUtil.isBlank(type)) {
|
||||||
|
this.header.setClaim(JWTHeader.TYPE, "JWT");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 检查头信息中是否有算法信息
|
// 检查头信息中是否有算法信息
|
||||||
final String algorithm = (String) this.header.getClaim(JWTHeader.ALGORITHM);
|
final String algorithm = (String) this.header.getClaim(JWTHeader.ALGORITHM);
|
||||||
if (StrUtil.isBlank(algorithm)) {
|
if (StrUtil.isBlank(algorithm)) {
|
||||||
this.header.setClaim(JWTHeader.ALGORITHM,
|
this.header.setClaim(JWTHeader.ALGORITHM,
|
||||||
AlgorithmUtil.getId(signer.getAlgorithm()));
|
AlgorithmUtil.getId(signer.getAlgorithm()));
|
||||||
}
|
}
|
||||||
|
|
||||||
final String headerBase64 = Base64.encodeUrlSafe(this.header.toString(), charset);
|
final String headerBase64 = Base64.encodeUrlSafe(this.header.toString(), charset);
|
||||||
|
Loading…
Reference in New Issue
Block a user