优化JWT自动识别header中的算法,并可自定义header中key的顺序

This commit is contained in:
Looly
2022-09-13 19:17:57 +08:00
parent d14483a698
commit 65c91c5aef
4 changed files with 55 additions and 6 deletions

View File

@@ -0,0 +1,39 @@
package cn.hutool.jwt;
import org.junit.Assert;
import org.junit.Test;
import java.util.LinkedHashMap;
import java.util.Map;
public class IssueI5QRUOTest {
@Test
public void createTokenTest(){
// https://jwt.io/
// 自定义header顺序
final Map<String, Object> header = new LinkedHashMap<String, Object>(){
{
put(JWTHeader.ALGORITHM, "HS384");
put(JWTHeader.TYPE, "JWT");
}
};
final Map<String, Object> payload = new LinkedHashMap<String, Object>(){
{
put("sub", "1234567890");
put("name", "John Doe");
put("iat", 1516239022);
}
};
final String token = JWTUtil.createToken(header, payload, "123456".getBytes());
Assert.assertEquals("eyJhbGciOiJIUzM4NCIsInR5cCI6IkpXVCJ9." +
"eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ." +
"3Ywq9NlR3cBST4nfcdbR-fcZ8374RHzU50X6flKvG-tnWFMalMaHRm3cMpXs1NrZ", token);
final boolean verify = JWT.of(token).setKey("123456".getBytes()).verify();
Assert.assertTrue(verify);
}
}