refactor(simple-jwt): Optimised the code performance.

This commit is contained in:
Zihlu Wang
2023-09-20 10:28:23 +08:00
parent a670d9718b
commit eacd4f077c
@@ -40,6 +40,7 @@ import java.time.LocalDateTime;
import java.time.ZoneId; import java.time.ZoneId;
import java.util.Date; import java.util.Date;
import java.util.Map; import java.util.Map;
import java.util.Objects;
import java.util.UUID; import java.util.UUID;
/** /**
@@ -108,7 +109,7 @@ public class JjwtTokenResolver implements TokenResolver<Jws<Claims>> {
private final JjwtTokenResolverConfig config = JjwtTokenResolverConfig.getInstance(); private final JjwtTokenResolverConfig config = JjwtTokenResolverConfig.getInstance();
public JjwtTokenResolver(GuidCreator<?> jtiCreator, TokenAlgorithm algorithm, String issuer, String secret) { public JjwtTokenResolver(GuidCreator<?> jtiCreator, TokenAlgorithm algorithm, String issuer, String secret) {
if (secret == null || secret.isBlank()) { if (Objects.isNull(secret) || secret.isBlank()) {
throw new IllegalArgumentException("A secret is required to build a JSON Web Token."); throw new IllegalArgumentException("A secret is required to build a JSON Web Token.");
} }
@@ -204,8 +205,7 @@ public class JjwtTokenResolver implements TokenResolver<Jws<Claims>> {
*/ */
@Override @Override
public String createToken(Duration expireAfter, String audience, String subject) { public String createToken(Duration expireAfter, String audience, String subject) {
var now = LocalDateTime.now(); return buildToken(expireAfter, audience, subject, LocalDateTime.now(), null);
return buildToken(expireAfter, audience, subject, now, null);
} }
/** /**
@@ -220,8 +220,7 @@ public class JjwtTokenResolver implements TokenResolver<Jws<Claims>> {
*/ */
@Override @Override
public String createToken(Duration expireAfter, String audience, String subject, Map<String, Object> payload) { public String createToken(Duration expireAfter, String audience, String subject, Map<String, Object> payload) {
var now = LocalDateTime.now(); return buildToken(expireAfter, audience, subject, LocalDateTime.now(), payload);
return buildToken(expireAfter, audience, subject, now, payload);
} }
/** /**
@@ -239,10 +238,9 @@ public class JjwtTokenResolver implements TokenResolver<Jws<Claims>> {
*/ */
@Override @Override
public <T extends TokenPayload> String createToken(Duration expireAfter, String audience, String subject, T payload) { public <T extends TokenPayload> String createToken(Duration expireAfter, String audience, String subject, T payload) {
var now = LocalDateTime.now();
try { try {
var claims = MapUtil.objectToMap(payload); var claims = MapUtil.objectToMap(payload);
return buildToken(expireAfter, audience, subject, now, claims); return buildToken(expireAfter, audience, subject, LocalDateTime.now(), claims);
} catch (IllegalAccessException e) { } catch (IllegalAccessException e) {
log.error("An error occurs while accessing the fields of the object"); log.error("An error occurs while accessing the fields of the object");
} }