mirror of
https://gitee.com/chinabugotech/hutool.git
synced 2025-04-19 03:01:48 +08:00
fix code
This commit is contained in:
parent
191339d91a
commit
c328804fe5
@ -333,18 +333,7 @@ public class JWT implements RegisteredPayload<JWT> {
|
||||
* @return JWT字符串
|
||||
*/
|
||||
public String sign() {
|
||||
return sign(true);
|
||||
}
|
||||
|
||||
/**
|
||||
* 签名生成JWT字符串
|
||||
*
|
||||
* @param addTypeIfNot 如果'typ'头不存在,是否赋值默认值
|
||||
* @return JWT字符串
|
||||
* @since 5.8.24
|
||||
*/
|
||||
public String sign(final boolean addTypeIfNot) {
|
||||
return sign(this.signer, addTypeIfNot);
|
||||
return sign(this.signer);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -359,21 +348,12 @@ public class JWT implements RegisteredPayload<JWT> {
|
||||
* <li>当用户未定义"alg"时,根据传入的{@link JWTSigner}对象类型,赋值对应ID</li>
|
||||
* </ul>
|
||||
*
|
||||
* @param signer 自定义JWT签名器,非空
|
||||
* @param addTypeIfNot 如果'typ'头不存在,是否赋值默认值
|
||||
* @param signer 自定义JWT签名器,非空
|
||||
* @return JWT字符串
|
||||
*/
|
||||
public String sign(final JWTSigner signer, final boolean addTypeIfNot) {
|
||||
public String sign(final JWTSigner signer) {
|
||||
Assert.notNull(signer, () -> new JWTException("No Signer provided!"));
|
||||
|
||||
// 检查tye信息
|
||||
if (addTypeIfNot) {
|
||||
final String type = (String) this.header.getClaim(JWTHeader.TYPE);
|
||||
if (StrUtil.isBlank(type)) {
|
||||
this.header.setClaim(JWTHeader.TYPE, "JWT");
|
||||
}
|
||||
}
|
||||
|
||||
// 检查头信息中是否有算法信息
|
||||
final String algorithm = (String) this.header.getClaim(JWTHeader.ALGORITHM);
|
||||
if (StrUtil.isBlank(algorithm)) {
|
||||
|
@ -15,6 +15,9 @@
|
||||
*/
|
||||
|
||||
/**
|
||||
* JSON Web Token (JWT)封装
|
||||
* JSON Web Token (JWT)封装<br>
|
||||
* 规范见:https://datatracker.ietf.org/doc/html/rfc7519
|
||||
*
|
||||
* @author Looly
|
||||
*/
|
||||
package org.dromara.hutool.json.jwt;
|
||||
|
@ -13,12 +13,15 @@ public class Issue3732Test {
|
||||
@Test
|
||||
void hmacTest() {
|
||||
final JWTSigner SIGNER = JWTSignerUtil.hs256("6sf2f5j2a62a3s8f9032hsf".getBytes());
|
||||
final Map<String, Object> headers = new HashMap<>();
|
||||
headers.put("typ", "JWT");
|
||||
|
||||
final Map<String, Object> payload = new HashMap<>();
|
||||
payload.put("name", "test");
|
||||
payload.put("role", "admin");
|
||||
|
||||
// 创建 JWT token
|
||||
final String token = JWTUtil.createToken(payload, SIGNER);
|
||||
final String token = JWTUtil.createToken(headers, payload, SIGNER);
|
||||
assertEquals("eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJyb2xlIjoiYWRtaW4iLCJuYW1lIjoidGVzdCJ9.pD3Xz41rtXvU3G1c_yS7ir01FXmDvtjjAOU2HYd8MdA", token);
|
||||
}
|
||||
}
|
||||
|
@ -185,7 +185,7 @@ public class JWTTest {
|
||||
final Map<String, Object> map = new HashMap<>();
|
||||
map.put("test2", 22222222222222L);
|
||||
final JWTSigner jwtSigner = JWTSignerUtil.createSigner(AlgorithmUtil.getAlgorithm("HS256"), Base64.getDecoder().decode("abcdefghijklmn"));
|
||||
final String sign = JWT.of().addPayloads(map).sign(jwtSigner, true);
|
||||
final String sign = JWT.of().addPayloads(map).sign(jwtSigner);
|
||||
final Object test2 = JWT.of(sign).getPayload().getClaim("test2");
|
||||
Assertions.assertEquals(Long.class, test2.getClass());
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user