单元测试由Junit4变更为Junit5

This commit is contained in:
Looly
2024-08-09 14:32:30 +08:00
parent 155c43a6a3
commit c7e0bc5d9f
568 changed files with 7794 additions and 7671 deletions

View File

@@ -6,8 +6,8 @@ import cn.hutool.jwt.signers.AlgorithmUtil;
import cn.hutool.jwt.signers.JWTSigner;
import cn.hutool.jwt.signers.JWTSignerUtil;
import io.jsonwebtoken.Jwts;
import org.junit.Assert;
import org.junit.Test;
import static org.junit.jupiter.api.Assertions.*;
import org.junit.jupiter.api.Test;
import java.security.KeyPair;
@@ -32,6 +32,6 @@ public class Issue3205Test {
final boolean signed = Jwts.parser().verifyWith(keyPair.getPublic()).build().isSigned(token);
Assert.assertTrue(signed);
assertTrue(signed);
}
}

View File

@@ -1,7 +1,7 @@
package cn.hutool.jwt;
import org.junit.Assert;
import org.junit.Test;
import static org.junit.jupiter.api.Assertions.*;
import org.junit.jupiter.api.Test;
import java.util.LinkedHashMap;
import java.util.Map;
@@ -29,11 +29,11 @@ public class IssueI5QRUOTest {
};
final String token = JWTUtil.createToken(header, payload, "123456".getBytes());
Assert.assertEquals("eyJhbGciOiJIUzM4NCIsInR5cCI6IkpXVCJ9." +
assertEquals("eyJhbGciOiJIUzM4NCIsInR5cCI6IkpXVCJ9." +
"eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ." +
"3Ywq9NlR3cBST4nfcdbR-fcZ8374RHzU50X6flKvG-tnWFMalMaHRm3cMpXs1NrZ", token);
final boolean verify = JWT.of(token).setKey("123456".getBytes()).verify();
Assert.assertTrue(verify);
assertTrue(verify);
}
}

View File

@@ -5,8 +5,8 @@ import cn.hutool.core.date.LocalDateTimeUtil;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import lombok.Data;
import org.junit.Assert;
import org.junit.Test;
import static org.junit.jupiter.api.Assertions.*;
import org.junit.jupiter.api.Test;
import java.nio.charset.StandardCharsets;
import java.time.LocalDateTime;
@@ -19,11 +19,11 @@ public class IssueI6IS5BTest {
final JwtToken jwtToken = new JwtToken();
jwtToken.setIat(iat);
final String token = JWTUtil.createToken(JSONUtil.parseObj(jwtToken), "123".getBytes(StandardCharsets.UTF_8));
Assert.assertEquals("eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpYXQiOjE2Nzc3NzI4MDB9.SXU_mm1wT5lNoK-Dq5Y8f3BItv_44zuAlyeWLqajpXg", token);
assertEquals("eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpYXQiOjE2Nzc3NzI4MDB9.SXU_mm1wT5lNoK-Dq5Y8f3BItv_44zuAlyeWLqajpXg", token);
final JSONObject payloads = JWTUtil.parseToken(token).getPayloads();
Assert.assertEquals("{\"iat\":1677772800}", payloads.toString());
assertEquals("{\"iat\":1677772800}", payloads.toString());
final JwtToken o = payloads.toBean(JwtToken.class);
Assert.assertEquals(iat, o.getIat());
assertEquals(iat, o.getIat());
}
@Data
@@ -37,11 +37,11 @@ public class IssueI6IS5BTest {
final JwtToken2 jwtToken = new JwtToken2();
jwtToken.setIat(iat);
final String token = JWTUtil.createToken(JSONUtil.parseObj(jwtToken), "123".getBytes(StandardCharsets.UTF_8));
Assert.assertEquals("eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpYXQiOjE2Nzc3NzI4MDB9.SXU_mm1wT5lNoK-Dq5Y8f3BItv_44zuAlyeWLqajpXg", token);
assertEquals("eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpYXQiOjE2Nzc3NzI4MDB9.SXU_mm1wT5lNoK-Dq5Y8f3BItv_44zuAlyeWLqajpXg", token);
final JSONObject payloads = JWTUtil.parseToken(token).getPayloads();
Assert.assertEquals("{\"iat\":1677772800}", payloads.toString());
assertEquals("{\"iat\":1677772800}", payloads.toString());
final JwtToken2 o = payloads.toBean(JwtToken2.class);
Assert.assertEquals(iat, o.getIat());
assertEquals(iat, o.getIat());
}
@Data

View File

@@ -5,8 +5,8 @@ import cn.hutool.crypto.KeyUtil;
import cn.hutool.jwt.signers.AlgorithmUtil;
import cn.hutool.jwt.signers.JWTSigner;
import cn.hutool.jwt.signers.JWTSignerUtil;
import org.junit.Assert;
import org.junit.Test;
import static org.junit.jupiter.api.Assertions.*;
import org.junit.jupiter.api.Test;
public class JWTSignerTest {
@@ -14,7 +14,7 @@ public class JWTSignerTest {
public void hs256Test(){
String id = "hs256";
final JWTSigner signer = JWTSignerUtil.createSigner(id, KeyUtil.generateKey(AlgorithmUtil.getAlgorithm(id)));
Assert.assertEquals(AlgorithmUtil.getAlgorithm(id), signer.getAlgorithm());
assertEquals(AlgorithmUtil.getAlgorithm(id), signer.getAlgorithm());
signAndVerify(signer);
}
@@ -30,7 +30,7 @@ public class JWTSignerTest {
public void hs384Test(){
String id = "hs384";
final JWTSigner signer = JWTSignerUtil.createSigner(id, KeyUtil.generateKey(AlgorithmUtil.getAlgorithm(id)));
Assert.assertEquals(AlgorithmUtil.getAlgorithm(id), signer.getAlgorithm());
assertEquals(AlgorithmUtil.getAlgorithm(id), signer.getAlgorithm());
signAndVerify(signer);
}
@@ -39,7 +39,7 @@ public class JWTSignerTest {
public void hs512Test(){
String id = "hs512";
final JWTSigner signer = JWTSignerUtil.createSigner(id, KeyUtil.generateKey(AlgorithmUtil.getAlgorithm(id)));
Assert.assertEquals(AlgorithmUtil.getAlgorithm(id), signer.getAlgorithm());
assertEquals(AlgorithmUtil.getAlgorithm(id), signer.getAlgorithm());
signAndVerify(signer);
}
@@ -48,7 +48,7 @@ public class JWTSignerTest {
public void rs256Test(){
String id = "rs256";
final JWTSigner signer = JWTSignerUtil.createSigner(id, KeyUtil.generateKeyPair(AlgorithmUtil.getAlgorithm(id)));
Assert.assertEquals(AlgorithmUtil.getAlgorithm(id), signer.getAlgorithm());
assertEquals(AlgorithmUtil.getAlgorithm(id), signer.getAlgorithm());
signAndVerify(signer);
}
@@ -57,7 +57,7 @@ public class JWTSignerTest {
public void rs384Test(){
String id = "rs384";
final JWTSigner signer = JWTSignerUtil.createSigner(id, KeyUtil.generateKeyPair(AlgorithmUtil.getAlgorithm(id)));
Assert.assertEquals(AlgorithmUtil.getAlgorithm(id), signer.getAlgorithm());
assertEquals(AlgorithmUtil.getAlgorithm(id), signer.getAlgorithm());
signAndVerify(signer);
}
@@ -66,7 +66,7 @@ public class JWTSignerTest {
public void rs512Test(){
String id = "rs512";
final JWTSigner signer = JWTSignerUtil.createSigner(id, KeyUtil.generateKeyPair(AlgorithmUtil.getAlgorithm(id)));
Assert.assertEquals(AlgorithmUtil.getAlgorithm(id), signer.getAlgorithm());
assertEquals(AlgorithmUtil.getAlgorithm(id), signer.getAlgorithm());
signAndVerify(signer);
}
@@ -75,7 +75,7 @@ public class JWTSignerTest {
public void es256Test(){
String id = "es256";
final JWTSigner signer = JWTSignerUtil.createSigner(id, KeyUtil.generateKeyPair(AlgorithmUtil.getAlgorithm(id)));
Assert.assertEquals(AlgorithmUtil.getAlgorithm(id), signer.getAlgorithm());
assertEquals(AlgorithmUtil.getAlgorithm(id), signer.getAlgorithm());
signAndVerify(signer);
}
@@ -84,7 +84,7 @@ public class JWTSignerTest {
public void es384Test(){
String id = "es384";
final JWTSigner signer = JWTSignerUtil.createSigner(id, KeyUtil.generateKeyPair(AlgorithmUtil.getAlgorithm(id)));
Assert.assertEquals(AlgorithmUtil.getAlgorithm(id), signer.getAlgorithm());
assertEquals(AlgorithmUtil.getAlgorithm(id), signer.getAlgorithm());
signAndVerify(signer);
}
@@ -93,7 +93,7 @@ public class JWTSignerTest {
public void es512Test(){
String id = "es512";
final JWTSigner signer = JWTSignerUtil.createSigner(id, KeyUtil.generateKeyPair(AlgorithmUtil.getAlgorithm(id)));
Assert.assertEquals(AlgorithmUtil.getAlgorithm(id), signer.getAlgorithm());
assertEquals(AlgorithmUtil.getAlgorithm(id), signer.getAlgorithm());
signAndVerify(signer);
}
@@ -102,7 +102,7 @@ public class JWTSignerTest {
public void ps256Test(){
String id = "ps256";
final JWTSigner signer = JWTSignerUtil.createSigner(id, KeyUtil.generateKeyPair(AlgorithmUtil.getAlgorithm(id)));
Assert.assertEquals(AlgorithmUtil.getAlgorithm(id), signer.getAlgorithm());
assertEquals(AlgorithmUtil.getAlgorithm(id), signer.getAlgorithm());
signAndVerify(signer);
}
@@ -111,7 +111,7 @@ public class JWTSignerTest {
public void ps384Test(){
String id = "ps384";
final JWTSigner signer = JWTSignerUtil.createSigner(id, KeyUtil.generateKeyPair(AlgorithmUtil.getAlgorithm(id)));
Assert.assertEquals(AlgorithmUtil.getAlgorithm(id), signer.getAlgorithm());
assertEquals(AlgorithmUtil.getAlgorithm(id), signer.getAlgorithm());
signAndVerify(signer);
}
@@ -120,7 +120,7 @@ public class JWTSignerTest {
public void hmd5Test(){
String id = "hmd5";
final JWTSigner signer = JWTSignerUtil.createSigner(id, KeyUtil.generateKey(AlgorithmUtil.getAlgorithm(id)));
Assert.assertEquals(AlgorithmUtil.getAlgorithm(id), signer.getAlgorithm());
assertEquals(AlgorithmUtil.getAlgorithm(id), signer.getAlgorithm());
signAndVerify(signer);
}
@@ -129,7 +129,7 @@ public class JWTSignerTest {
public void hsha1Test(){
String id = "hsha1";
final JWTSigner signer = JWTSignerUtil.createSigner(id, KeyUtil.generateKey(AlgorithmUtil.getAlgorithm(id)));
Assert.assertEquals(AlgorithmUtil.getAlgorithm(id), signer.getAlgorithm());
assertEquals(AlgorithmUtil.getAlgorithm(id), signer.getAlgorithm());
signAndVerify(signer);
}
@@ -138,7 +138,7 @@ public class JWTSignerTest {
public void sm4cmacTest(){
String id = "sm4cmac";
final JWTSigner signer = JWTSignerUtil.createSigner(id, KeyUtil.generateKey(AlgorithmUtil.getAlgorithm(id)));
Assert.assertEquals(AlgorithmUtil.getAlgorithm(id), signer.getAlgorithm());
assertEquals(AlgorithmUtil.getAlgorithm(id), signer.getAlgorithm());
signAndVerify(signer);
}
@@ -147,7 +147,7 @@ public class JWTSignerTest {
public void rmd2Test(){
String id = "rmd2";
final JWTSigner signer = JWTSignerUtil.createSigner(id, KeyUtil.generateKeyPair(AlgorithmUtil.getAlgorithm(id)));
Assert.assertEquals(AlgorithmUtil.getAlgorithm(id), signer.getAlgorithm());
assertEquals(AlgorithmUtil.getAlgorithm(id), signer.getAlgorithm());
signAndVerify(signer);
}
@@ -156,7 +156,7 @@ public class JWTSignerTest {
public void rmd5Test(){
String id = "rmd5";
final JWTSigner signer = JWTSignerUtil.createSigner(id, KeyUtil.generateKeyPair(AlgorithmUtil.getAlgorithm(id)));
Assert.assertEquals(AlgorithmUtil.getAlgorithm(id), signer.getAlgorithm());
assertEquals(AlgorithmUtil.getAlgorithm(id), signer.getAlgorithm());
signAndVerify(signer);
}
@@ -165,7 +165,7 @@ public class JWTSignerTest {
public void rsha1Test(){
String id = "rsha1";
final JWTSigner signer = JWTSignerUtil.createSigner(id, KeyUtil.generateKeyPair(AlgorithmUtil.getAlgorithm(id)));
Assert.assertEquals(AlgorithmUtil.getAlgorithm(id), signer.getAlgorithm());
assertEquals(AlgorithmUtil.getAlgorithm(id), signer.getAlgorithm());
signAndVerify(signer);
}
@@ -174,7 +174,7 @@ public class JWTSignerTest {
public void dnoneTest(){
String id = "dnone";
final JWTSigner signer = JWTSignerUtil.createSigner(id, KeyUtil.generateKeyPair(AlgorithmUtil.getAlgorithm(id)));
Assert.assertEquals(AlgorithmUtil.getAlgorithm(id), signer.getAlgorithm());
assertEquals(AlgorithmUtil.getAlgorithm(id), signer.getAlgorithm());
signAndVerify(signer);
}
@@ -183,7 +183,7 @@ public class JWTSignerTest {
public void dsha1Test(){
String id = "dsha1";
final JWTSigner signer = JWTSignerUtil.createSigner(id, KeyUtil.generateKeyPair(AlgorithmUtil.getAlgorithm(id)));
Assert.assertEquals(AlgorithmUtil.getAlgorithm(id), signer.getAlgorithm());
assertEquals(AlgorithmUtil.getAlgorithm(id), signer.getAlgorithm());
signAndVerify(signer);
}
@@ -192,7 +192,7 @@ public class JWTSignerTest {
public void enoneTest(){
String id = "enone";
final JWTSigner signer = JWTSignerUtil.createSigner(id, KeyUtil.generateKeyPair(AlgorithmUtil.getAlgorithm(id)));
Assert.assertEquals(AlgorithmUtil.getAlgorithm(id), signer.getAlgorithm());
assertEquals(AlgorithmUtil.getAlgorithm(id), signer.getAlgorithm());
signAndVerify(signer);
}
@@ -201,7 +201,7 @@ public class JWTSignerTest {
public void esha1Test(){
String id = "esha1";
final JWTSigner signer = JWTSignerUtil.createSigner(id, KeyUtil.generateKeyPair(AlgorithmUtil.getAlgorithm(id)));
Assert.assertEquals(AlgorithmUtil.getAlgorithm(id), signer.getAlgorithm());
assertEquals(AlgorithmUtil.getAlgorithm(id), signer.getAlgorithm());
signAndVerify(signer);
}
@@ -217,6 +217,6 @@ public class JWTSignerTest {
.setSigner(signer);
String token = jwt.sign();
Assert.assertTrue(JWT.of(token).verify(signer));
assertTrue(JWT.of(token).verify(signer));
}
}

View File

@@ -3,105 +3,107 @@ package cn.hutool.jwt;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.jwt.signers.JWTSignerUtil;
import org.junit.Assert;
import org.junit.Test;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;
public class JWTTest {
@Test
public void createHs256Test(){
public void createHs256Test() {
final byte[] key = "1234567890".getBytes();
final JWT jwt = JWT.create()
.setPayload("sub", "1234567890")
.setPayload("name", "looly")
.setPayload("admin", true)
.setExpiresAt(DateUtil.parse("2022-01-01"))
.setKey(key);
.setPayload("sub", "1234567890")
.setPayload("name", "looly")
.setPayload("admin", true)
.setExpiresAt(DateUtil.parse("2022-01-01"))
.setKey(key);
final String rightToken = "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9." +
"eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6Imxvb2x5IiwiYWRtaW4iOnRydWUsImV4cCI6MTY0MDk2NjQwMH0." +
"bXlSnqVeJXWqUIt7HyEhgKNVlIPjkumHlAwFY-5YCtk";
"eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6Imxvb2x5IiwiYWRtaW4iOnRydWUsImV4cCI6MTY0MDk2NjQwMH0." +
"bXlSnqVeJXWqUIt7HyEhgKNVlIPjkumHlAwFY-5YCtk";
final String token = jwt.sign();
Assert.assertEquals(rightToken, token);
assertEquals(rightToken, token);
Assert.assertTrue(JWT.of(rightToken).setKey(key).verify());
assertTrue(JWT.of(rightToken).setKey(key).verify());
}
@Test
public void parseTest(){
public void parseTest() {
final String rightToken = "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9." +
"eyJzdWIiOiIxMjM0NTY3ODkwIiwiYWRtaW4iOnRydWUsIm5hbWUiOiJsb29seSJ9." +
"U2aQkC2THYV9L0fTN-yBBI7gmo5xhmvMhATtu8v0zEA";
"eyJzdWIiOiIxMjM0NTY3ODkwIiwiYWRtaW4iOnRydWUsIm5hbWUiOiJsb29seSJ9." +
"U2aQkC2THYV9L0fTN-yBBI7gmo5xhmvMhATtu8v0zEA";
final JWT jwt = JWT.of(rightToken);
Assert.assertTrue(jwt.setKey("1234567890".getBytes()).verify());
assertTrue(jwt.setKey("1234567890".getBytes()).verify());
//header
Assert.assertEquals("JWT", jwt.getHeader(JWTHeader.TYPE));
Assert.assertEquals("HS256", jwt.getHeader(JWTHeader.ALGORITHM));
Assert.assertNull(jwt.getHeader(JWTHeader.CONTENT_TYPE));
assertEquals("JWT", jwt.getHeader(JWTHeader.TYPE));
assertEquals("HS256", jwt.getHeader(JWTHeader.ALGORITHM));
assertNull(jwt.getHeader(JWTHeader.CONTENT_TYPE));
//payload
Assert.assertEquals("1234567890", jwt.getPayload("sub"));
Assert.assertEquals("looly", jwt.getPayload("name"));
Assert.assertEquals(true, jwt.getPayload("admin"));
assertEquals("1234567890", jwt.getPayload("sub"));
assertEquals("looly", jwt.getPayload("name"));
assertEquals(true, jwt.getPayload("admin"));
}
@Test
public void createNoneTest(){
public void createNoneTest() {
final JWT jwt = JWT.create()
.setPayload("sub", "1234567890")
.setPayload("name", "looly")
.setPayload("admin", true)
.setSigner(JWTSignerUtil.none());
.setPayload("sub", "1234567890")
.setPayload("name", "looly")
.setPayload("admin", true)
.setSigner(JWTSignerUtil.none());
final String rightToken = "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9." +
"eyJzdWIiOiIxMjM0NTY3ODkwIiwiYWRtaW4iOnRydWUsIm5hbWUiOiJsb29seSJ9.";
"eyJzdWIiOiIxMjM0NTY3ODkwIiwiYWRtaW4iOnRydWUsIm5hbWUiOiJsb29seSJ9.";
final String token = jwt.sign();
Assert.assertEquals(token, token);
assertEquals(rightToken, token);
Assert.assertTrue(JWT.of(rightToken).setSigner(JWTSignerUtil.none()).verify());
assertTrue(JWT.of(rightToken).setSigner(JWTSignerUtil.none()).verify());
}
/**
* 必须定义签名器
*/
@Test(expected = JWTException.class)
public void needSignerTest(){
final JWT jwt = JWT.create()
@Test
public void needSignerTest() {
assertThrows(JWTException.class, () -> {
final JWT jwt = JWT.create()
.setPayload("sub", "1234567890")
.setPayload("name", "looly")
.setPayload("admin", true);
jwt.sign();
jwt.sign();
});
}
@Test
public void verifyTest(){
public void verifyTest() {
final String token = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9." +
"eyJ1c2VyX25hbWUiOiJhZG1pbiIsInNjb3BlIjpbImFsbCJdLCJleHAiOjE2MjQwMDQ4MjIsInVzZXJJZCI6MSwiYXV0aG9yaXRpZXMiOlsiUk9MRV_op5LoibLkuozlj7ciLCJzeXNfbWVudV8xIiwiUk9MRV_op5LoibLkuIDlj7ciLCJzeXNfbWVudV8yIl0sImp0aSI6ImQ0YzVlYjgwLTA5ZTctNGU0ZC1hZTg3LTVkNGI5M2FhNmFiNiIsImNsaWVudF9pZCI6ImhhbmR5LXNob3AifQ." +
"aixF1eKlAKS_k3ynFnStE7-IRGiD5YaqznvK2xEjBew";
"eyJ1c2VyX25hbWUiOiJhZG1pbiIsInNjb3BlIjpbImFsbCJdLCJleHAiOjE2MjQwMDQ4MjIsInVzZXJJZCI6MSwiYXV0aG9yaXRpZXMiOlsiUk9MRV_op5LoibLkuozlj7ciLCJzeXNfbWVudV8xIiwiUk9MRV_op5LoibLkuIDlj7ciLCJzeXNfbWVudV8yIl0sImp0aSI6ImQ0YzVlYjgwLTA5ZTctNGU0ZC1hZTg3LTVkNGI5M2FhNmFiNiIsImNsaWVudF9pZCI6ImhhbmR5LXNob3AifQ." +
"aixF1eKlAKS_k3ynFnStE7-IRGiD5YaqznvK2xEjBew";
final boolean verify = JWT.of(token).setKey(StrUtil.utf8Bytes("123456")).verify();
Assert.assertTrue(verify);
assertTrue(verify);
}
@Test
public void getLongTest(){
public void getLongTest() {
final String rightToken = "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9"
+ ".eyJsb2dpblR5cGUiOiJsb2dpbiIsImxvZ2luSWQiOiJhZG1pbiIsImRldmljZSI6ImRlZmF1bHQtZGV2aWNlIiwiZWZmIjoxNjc4Mjg1NzEzOTM1LCJyblN0ciI6IkVuMTczWFhvWUNaaVZUWFNGOTNsN1pabGtOalNTd0pmIn0"
+ ".wRe2soTaWYPhwcjxdzesDi1BgEm9D61K-mMT3fPc4YM"
+ "";
+ ".eyJsb2dpblR5cGUiOiJsb2dpbiIsImxvZ2luSWQiOiJhZG1pbiIsImRldmljZSI6ImRlZmF1bHQtZGV2aWNlIiwiZWZmIjoxNjc4Mjg1NzEzOTM1LCJyblN0ciI6IkVuMTczWFhvWUNaaVZUWFNGOTNsN1pabGtOalNTd0pmIn0"
+ ".wRe2soTaWYPhwcjxdzesDi1BgEm9D61K-mMT3fPc4YM";
final JWT jwt = JWTUtil.parseToken(rightToken);
Assert.assertEquals(
"{\"loginType\":\"login\",\"loginId\":\"admin\",\"device\":\"default-device\"," +
"\"eff\":1678285713935,\"rnStr\":\"En173XXoYCZiVTXSF93l7ZZlkNjSSwJf\"}",
jwt.getPayloads().toString());
Assert.assertEquals(Long.valueOf(1678285713935L), jwt.getPayloads().getLong("eff"));
assertEquals(
"{\"loginType\":\"login\",\"loginId\":\"admin\",\"device\":\"default-device\"," +
"\"eff\":1678285713935,\"rnStr\":\"En173XXoYCZiVTXSF93l7ZZlkNjSSwJf\"}",
jwt.getPayloads().toString());
assertEquals(Long.valueOf(1678285713935L), jwt.getPayloads().getLong("eff"));
}
}

View File

@@ -1,7 +1,7 @@
package cn.hutool.jwt;
import org.junit.Assert;
import org.junit.Test;
import static org.junit.jupiter.api.Assertions.*;
import org.junit.jupiter.api.Test;
import java.util.HashMap;
import java.util.Map;
@@ -30,17 +30,17 @@ public class JWTUtilTest {
"U2aQkC2THYV9L0fTN-yBBI7gmo5xhmvMhATtu8v0zEA";
final JWT jwt = JWTUtil.parseToken(rightToken);
Assert.assertTrue(jwt.setKey("1234567890".getBytes()).verify());
assertTrue(jwt.setKey("1234567890".getBytes()).verify());
//header
Assert.assertEquals("JWT", jwt.getHeader(JWTHeader.TYPE));
Assert.assertEquals("HS256", jwt.getHeader(JWTHeader.ALGORITHM));
Assert.assertNull(jwt.getHeader(JWTHeader.CONTENT_TYPE));
assertEquals("JWT", jwt.getHeader(JWTHeader.TYPE));
assertEquals("HS256", jwt.getHeader(JWTHeader.ALGORITHM));
assertNull(jwt.getHeader(JWTHeader.CONTENT_TYPE));
//payload
Assert.assertEquals("1234567890", jwt.getPayload("sub"));
Assert.assertEquals("looly", jwt.getPayload("name"));
Assert.assertEquals(true, jwt.getPayload("admin"));
assertEquals("1234567890", jwt.getPayload("sub"));
assertEquals("looly", jwt.getPayload("name"));
assertEquals(true, jwt.getPayload("admin"));
}
@Test(expected = IllegalArgumentException.class)
@@ -56,6 +56,6 @@ public class JWTUtilTest {
"aixF1eKlAKS_k3ynFnStE7-IRGiD5YaqznvK2xEjBew";
final boolean verify = JWTUtil.verify(token, "123456".getBytes());
Assert.assertTrue(verify);
assertTrue(verify);
}
}

View File

@@ -3,87 +3,96 @@ package cn.hutool.jwt;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.exceptions.ValidateException;
import cn.hutool.jwt.signers.JWTSignerUtil;
import org.junit.Assert;
import org.junit.Test;
import org.junit.jupiter.api.Test;
import java.util.Date;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertThrows;
public class JWTValidatorTest {
@Test(expected = ValidateException.class)
public void expiredAtTest(){
String token = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE0Nzc1OTJ9.isvT0Pqx0yjnZk53mUFSeYFJLDs-Ls9IsNAm86gIdZo";
JWTValidator.of(token).validateDate(DateUtil.date());
}
@Test(expected = ValidateException.class)
public void issueAtTest(){
final String token = JWT.create()
.setIssuedAt(DateUtil.date())
.setKey("123456".getBytes())
.sign();
// 签发时间早于被检查的时间
JWTValidator.of(token).validateDate(DateUtil.yesterday());
@Test
public void expiredAtTest() {
assertThrows(ValidateException.class, () -> {
String token = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE0Nzc1OTJ9.isvT0Pqx0yjnZk53mUFSeYFJLDs-Ls9IsNAm86gIdZo";
JWTValidator.of(token).validateDate(DateUtil.date());
});
}
@Test
public void issueAtPassTest(){
final String token = JWT.create()
public void issueAtTest() {
assertThrows(ValidateException.class, () -> {
final String token = JWT.create()
.setIssuedAt(DateUtil.date())
.setKey("123456".getBytes())
.sign();
// 签发时间早于被检查的时间
JWTValidator.of(token).validateDate(DateUtil.yesterday());
});
}
@Test
public void issueAtPassTest() {
final String token = JWT.create()
.setIssuedAt(DateUtil.date())
.setKey("123456".getBytes())
.sign();
// 签发时间早于被检查的时间
JWTValidator.of(token).validateDate(DateUtil.date());
}
@Test(expected = ValidateException.class)
public void notBeforeTest(){
final JWT jwt = JWT.create()
@Test
public void notBeforeTest() {
assertThrows(ValidateException.class, () -> {
final JWT jwt = JWT.create()
.setNotBefore(DateUtil.date());
JWTValidator.of(jwt).validateDate(DateUtil.yesterday());
JWTValidator.of(jwt).validateDate(DateUtil.yesterday());
});
}
@Test
public void notBeforePassTest(){
public void notBeforePassTest() {
final JWT jwt = JWT.create()
.setNotBefore(DateUtil.date());
.setNotBefore(DateUtil.date());
JWTValidator.of(jwt).validateDate(DateUtil.date());
}
@Test
public void validateAlgorithmTest(){
public void validateAlgorithmTest() {
final String token = JWT.create()
.setNotBefore(DateUtil.date())
.setKey("123456".getBytes())
.sign();
.setNotBefore(DateUtil.date())
.setKey("123456".getBytes())
.sign();
// 验证算法
JWTValidator.of(token).validateAlgorithm(JWTSignerUtil.hs256("123456".getBytes()));
}
@Test
public void validateTest(){
public void validateTest() {
String token = "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJNb0xpIiwiZXhwIjoxNjI0OTU4MDk0NTI4LCJpYXQiOjE2MjQ5NTgwMzQ1MjAsInVzZXIiOiJ1c2VyIn0.L0uB38p9sZrivbmP0VlDe--j_11YUXTu3TfHhfQhRKc";
byte[] key = "1234567890".getBytes();
boolean validate = JWT.of(token).setKey(key).validate(0);
Assert.assertFalse(validate);
assertFalse(validate);
}
@Test(expected = ValidateException.class)
public void validateDateTest(){
final JWT jwt = JWT.create()
@Test
public void validateDateTest() {
assertThrows(ValidateException.class, () -> {
final JWT jwt = JWT.create()
.setPayload("id", 123)
.setPayload("username", "hutool")
.setExpiresAt(DateUtil.parse("2021-10-13 09:59:00"));
JWTValidator.of(jwt).validateDate(DateUtil.date());
JWTValidator.of(jwt).validateDate(DateUtil.date());
});
}
@Test
public void issue2329Test(){
public void issue2329Test() {
final long NOW = System.currentTimeMillis();
final Date NOW_TIME = new Date(NOW);
final long EXPIRED = 3 * 1000L;
@@ -91,7 +100,7 @@ public class JWTValidatorTest {
// 使用这种方式生成token
final String token = JWT.create().setPayload("sub", "blue-light").setIssuedAt(NOW_TIME).setNotBefore(EXPIRED_TIME)
.setExpiresAt(EXPIRED_TIME).setKey("123456".getBytes()).sign();
.setExpiresAt(EXPIRED_TIME).setKey("123456".getBytes()).sign();
// 使用这种方式验证token
JWTValidator.of(JWT.of(token)).validateDate(DateUtil.date(NOW - 4000), 10);