mirror of
https://gitee.com/chinabugotech/hutool.git
synced 2025-12-06 17:18:54 +08:00
fix test
This commit is contained in:
parent
d4790d29e0
commit
49818978b2
@ -136,7 +136,7 @@ public class JWT implements RegisteredPayload<JWT> {
|
||||
* @return this
|
||||
*/
|
||||
public JWT setKey(final byte[] key) {
|
||||
return setSigner(getAlgorithm(), key);
|
||||
return setSigner(StrUtil.defaultIfNull(getAlgorithm(), "HS256"), key);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -182,6 +182,13 @@ public class JWT implements RegisteredPayload<JWT> {
|
||||
*/
|
||||
public JWT setSigner(final JWTSigner signer) {
|
||||
this.signer = signer;
|
||||
|
||||
// 检查头信息中是否有算法信息
|
||||
final String algorithm = (String) this.header.getClaim(JWTHeader.ALGORITHM);
|
||||
if (StrUtil.isBlank(algorithm)) {
|
||||
this.header.setAlgorithm(AlgorithmUtil.getId(signer.getAlgorithm()));
|
||||
}
|
||||
|
||||
return this;
|
||||
}
|
||||
|
||||
|
||||
@ -34,7 +34,7 @@ public class JWTUtil {
|
||||
* @return JWT Token
|
||||
*/
|
||||
public static String createToken(final Map<String, ?> payload, final byte[] key) {
|
||||
return createToken(MapUtil.of(JWTHeader.TYPE, "JWT"), payload, key);
|
||||
return createToken(MapUtil.ofKvs(false,JWTHeader.TYPE, "JWT", JWTHeader.ALGORITHM, "HS256"), payload, key);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@ -44,7 +44,7 @@ public class IssueI6IS5BTest {
|
||||
final JSONObject payloadsData = JSONUtil.parseObj(jwtToken, JSONConfig.of().setDateFormat(DateFormatManager.FORMAT_SECONDS));
|
||||
|
||||
final String token = JWTUtil.createToken(payloadsData, "123".getBytes(StandardCharsets.UTF_8));
|
||||
Assertions.assertEquals("eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpYXQiOjE2Nzc3NzI4MDB9.SXU_mm1wT5lNoK-Dq5Y8f3BItv_44zuAlyeWLqajpXg", token);
|
||||
Assertions.assertEquals("eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpYXQiOjE2Nzc3NzI4MDB9.W88PB2ovAqCXV4QdbeKbdFW-P057xOTXEosD8hbOa9U", token);
|
||||
final JSONObject payloads = JWTUtil.parseToken(token).getPayloads();
|
||||
Assertions.assertEquals("{\"iat\":1677772800}", payloads.toString());
|
||||
final JwtToken o = payloads.toBean(JwtToken.class);
|
||||
@ -65,7 +65,7 @@ public class IssueI6IS5BTest {
|
||||
final JSONObject payloadsData = JSONUtil.parseObj(jwtToken, JSONConfig.of().setDateFormat(DateFormatManager.FORMAT_SECONDS));
|
||||
|
||||
final String token = JWTUtil.createToken(payloadsData, "123".getBytes(StandardCharsets.UTF_8));
|
||||
Assertions.assertEquals("eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpYXQiOjE2Nzc3NzI4MDB9.SXU_mm1wT5lNoK-Dq5Y8f3BItv_44zuAlyeWLqajpXg", token);
|
||||
Assertions.assertEquals("eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpYXQiOjE2Nzc3NzI4MDB9.W88PB2ovAqCXV4QdbeKbdFW-P057xOTXEosD8hbOa9U", token);
|
||||
final JSONObject payloads = JWTUtil.parseToken(token).getPayloads();
|
||||
Assertions.assertEquals("{\"iat\":1677772800}", payloads.toString());
|
||||
final JwtToken2 o = payloads.toBean(JwtToken2.class);
|
||||
|
||||
@ -27,16 +27,16 @@ import java.util.Date;
|
||||
public class JWTValidatorTest {
|
||||
|
||||
@Test
|
||||
public void expiredAtTest(){
|
||||
Assertions.assertThrows(ValidateException.class, ()->{
|
||||
public void expiredAtTest() {
|
||||
Assertions.assertThrows(ValidateException.class, () -> {
|
||||
final String token = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE0Nzc1OTJ9.isvT0Pqx0yjnZk53mUFSeYFJLDs-Ls9IsNAm86gIdZo";
|
||||
JWTValidator.of(token).validateDate(DateUtil.now());
|
||||
});
|
||||
}
|
||||
|
||||
@Test
|
||||
public void issueAtTest(){
|
||||
Assertions.assertThrows(ValidateException.class, ()->{
|
||||
public void issueAtTest() {
|
||||
Assertions.assertThrows(ValidateException.class, () -> {
|
||||
final String token = JWT.of()
|
||||
.setIssuedAt(DateUtil.now())
|
||||
.setKey("123456".getBytes())
|
||||
@ -48,19 +48,19 @@ public class JWTValidatorTest {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void issueAtPassTest(){
|
||||
public void issueAtPassTest() {
|
||||
final String token = JWT.of()
|
||||
.setIssuedAt(DateUtil.now())
|
||||
.setKey("123456".getBytes())
|
||||
.sign();
|
||||
.setIssuedAt(DateUtil.now())
|
||||
.setKey("123456".getBytes())
|
||||
.sign();
|
||||
|
||||
// 签发时间早于被检查的时间
|
||||
JWTValidator.of(token).validateDate(DateUtil.now());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void notBeforeTest(){
|
||||
Assertions.assertThrows(ValidateException.class, ()->{
|
||||
public void notBeforeTest() {
|
||||
Assertions.assertThrows(ValidateException.class, () -> {
|
||||
final JWT jwt = JWT.of()
|
||||
.setNotBefore(DateUtil.now());
|
||||
|
||||
@ -69,25 +69,25 @@ public class JWTValidatorTest {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void notBeforePassTest(){
|
||||
public void notBeforePassTest() {
|
||||
final JWT jwt = JWT.of()
|
||||
.setNotBefore(DateUtil.now());
|
||||
.setNotBefore(DateUtil.now());
|
||||
JWTValidator.of(jwt).validateDate(DateUtil.now());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void validateAlgorithmTest(){
|
||||
public void validateAlgorithmTest() {
|
||||
final String token = JWT.of()
|
||||
.setNotBefore(DateUtil.now())
|
||||
.setKey("123456".getBytes())
|
||||
.sign();
|
||||
.setNotBefore(DateUtil.now())
|
||||
.setKey("123456".getBytes())
|
||||
.sign();
|
||||
|
||||
// 验证算法
|
||||
JWTValidator.of(token).validateAlgorithm(JWTSignerUtil.hs256("123456".getBytes()));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void validateTest(){
|
||||
public void validateTest() {
|
||||
final String token = "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJNb0xpIiwiZXhwIjoxNjI0OTU4MDk0NTI4LCJpYXQiOjE2MjQ5NTgwMzQ1MjAsInVzZXIiOiJ1c2VyIn0.L0uB38p9sZrivbmP0VlDe--j_11YUXTu3TfHhfQhRKc";
|
||||
final byte[] key = "1234567890".getBytes();
|
||||
final boolean validate = JWT.of(token).setKey(key).validate(0);
|
||||
@ -95,8 +95,8 @@ public class JWTValidatorTest {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void validateDateTest(){
|
||||
Assertions.assertThrows(ValidateException.class, ()->{
|
||||
public void validateDateTest() {
|
||||
Assertions.assertThrows(ValidateException.class, () -> {
|
||||
final JWT jwt = JWT.of()
|
||||
.setPayload("id", 123)
|
||||
.setPayload("username", "hutool")
|
||||
@ -107,7 +107,7 @@ public class JWTValidatorTest {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void issue2329Test(){
|
||||
public void issue2329Test() {
|
||||
final long now = System.currentTimeMillis();
|
||||
final Date nowTime = new Date(now);
|
||||
final long expired = 3 * 1000L;
|
||||
@ -115,7 +115,7 @@ public class JWTValidatorTest {
|
||||
|
||||
// 使用这种方式生成token
|
||||
final String token = JWT.of().setPayload("sub", "blue-light").setIssuedAt(nowTime).setNotBefore(expiredTime)
|
||||
.setExpiresAt(expiredTime).setKey("123456".getBytes()).sign();
|
||||
.setExpiresAt(expiredTime).setKey("123456".getBytes()).sign();
|
||||
|
||||
// 使用这种方式验证token
|
||||
JWTValidator.of(JWT.of(token)).validateDate(DateUtil.date(now - 4000), 10);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user