From d593c83cc8a50a0a170bf2cf8ef51d426246e96d Mon Sep 17 00:00:00 2001 From: Zihlu Wang Date: Sun, 31 Mar 2024 17:09:31 +0800 Subject: [PATCH 1/5] refactor: Optimised logging pattern. --- devkit-core/src/main/resources/logback.xml | 20 +++++------ devkit-utils/src/main/resources/logback.xml | 20 +++++------ guid/src/main/resources/logback.xml | 20 +++++------ .../src/main/resources/logback.xml | 34 +++++++++++++++++++ .../src/main/resources/logback.xml | 20 +++++------ .../src/main/resources/logback.xml | 20 +++++------ .../src/main/resources/logback.xml | 34 +++++++++++++++++++ .../src/main/resources/logback.xml | 20 +++++------ webcal/src/main/resources/logback.xml | 20 +++++------ 9 files changed, 124 insertions(+), 84 deletions(-) create mode 100644 property-guard-spring-boot-starter/src/main/resources/logback.xml create mode 100644 simple-jwt-jjwt/src/main/resources/logback.xml diff --git a/devkit-core/src/main/resources/logback.xml b/devkit-core/src/main/resources/logback.xml index af1c7a3..46697b9 100644 --- a/devkit-core/src/main/resources/logback.xml +++ b/devkit-core/src/main/resources/logback.xml @@ -17,22 +17,18 @@ --> + + - - + - - %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} : %msg%n + + ${COLOURFUL_OUTPUT} - - - - %date{yyyy-MM-dd HH:mm:ss} [%thread] %highlight(%-5level) %cyan(%logger{50}) : %msg%n - - - - + \ No newline at end of file diff --git a/devkit-utils/src/main/resources/logback.xml b/devkit-utils/src/main/resources/logback.xml index af1c7a3..46697b9 100644 --- a/devkit-utils/src/main/resources/logback.xml +++ b/devkit-utils/src/main/resources/logback.xml @@ -17,22 +17,18 @@ --> + + - - + - - %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} : %msg%n + + ${COLOURFUL_OUTPUT} - - - - %date{yyyy-MM-dd HH:mm:ss} [%thread] %highlight(%-5level) %cyan(%logger{50}) : %msg%n - - - - + \ No newline at end of file diff --git a/guid/src/main/resources/logback.xml b/guid/src/main/resources/logback.xml index af1c7a3..46697b9 100644 --- a/guid/src/main/resources/logback.xml +++ b/guid/src/main/resources/logback.xml @@ -17,22 +17,18 @@ --> + + - - + - - %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} : %msg%n + + ${COLOURFUL_OUTPUT} - - - - %date{yyyy-MM-dd HH:mm:ss} [%thread] %highlight(%-5level) %cyan(%logger{50}) : %msg%n - - - - + \ No newline at end of file diff --git a/property-guard-spring-boot-starter/src/main/resources/logback.xml b/property-guard-spring-boot-starter/src/main/resources/logback.xml new file mode 100644 index 0000000..46697b9 --- /dev/null +++ b/property-guard-spring-boot-starter/src/main/resources/logback.xml @@ -0,0 +1,34 @@ + + + + + + + + + + + ${COLOURFUL_OUTPUT} + + + + + + \ No newline at end of file diff --git a/simple-jwt-authzero/src/main/resources/logback.xml b/simple-jwt-authzero/src/main/resources/logback.xml index af1c7a3..46697b9 100644 --- a/simple-jwt-authzero/src/main/resources/logback.xml +++ b/simple-jwt-authzero/src/main/resources/logback.xml @@ -17,22 +17,18 @@ --> + + - - + - - %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} : %msg%n + + ${COLOURFUL_OUTPUT} - - - - %date{yyyy-MM-dd HH:mm:ss} [%thread] %highlight(%-5level) %cyan(%logger{50}) : %msg%n - - - - + \ No newline at end of file diff --git a/simple-jwt-facade/src/main/resources/logback.xml b/simple-jwt-facade/src/main/resources/logback.xml index af1c7a3..46697b9 100644 --- a/simple-jwt-facade/src/main/resources/logback.xml +++ b/simple-jwt-facade/src/main/resources/logback.xml @@ -17,22 +17,18 @@ --> + + - - + - - %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} : %msg%n + + ${COLOURFUL_OUTPUT} - - - - %date{yyyy-MM-dd HH:mm:ss} [%thread] %highlight(%-5level) %cyan(%logger{50}) : %msg%n - - - - + \ No newline at end of file diff --git a/simple-jwt-jjwt/src/main/resources/logback.xml b/simple-jwt-jjwt/src/main/resources/logback.xml new file mode 100644 index 0000000..46697b9 --- /dev/null +++ b/simple-jwt-jjwt/src/main/resources/logback.xml @@ -0,0 +1,34 @@ + + + + + + + + + + + ${COLOURFUL_OUTPUT} + + + + + + \ No newline at end of file diff --git a/simple-jwt-spring-boot-starter/src/main/resources/logback.xml b/simple-jwt-spring-boot-starter/src/main/resources/logback.xml index af1c7a3..46697b9 100644 --- a/simple-jwt-spring-boot-starter/src/main/resources/logback.xml +++ b/simple-jwt-spring-boot-starter/src/main/resources/logback.xml @@ -17,22 +17,18 @@ --> + + - - + - - %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} : %msg%n + + ${COLOURFUL_OUTPUT} - - - - %date{yyyy-MM-dd HH:mm:ss} [%thread] %highlight(%-5level) %cyan(%logger{50}) : %msg%n - - - - + \ No newline at end of file diff --git a/webcal/src/main/resources/logback.xml b/webcal/src/main/resources/logback.xml index af1c7a3..46697b9 100644 --- a/webcal/src/main/resources/logback.xml +++ b/webcal/src/main/resources/logback.xml @@ -17,22 +17,18 @@ --> + + - - + - - %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} : %msg%n + + ${COLOURFUL_OUTPUT} - - - - %date{yyyy-MM-dd HH:mm:ss} [%thread] %highlight(%-5level) %cyan(%logger{50}) : %msg%n - - - - + \ No newline at end of file From bb79c126faf1c7455838fce92a1f9c38bd6aa490 Mon Sep 17 00:00:00 2001 From: Zihlu Wang Date: Sun, 31 Mar 2024 17:47:42 +0800 Subject: [PATCH 2/5] refactor: Optimised codes. Move all private or protected to the last of files. --- .../codecrafters/devkit/utils/AesUtil.java | 23 +- .../codecrafters/devkit/utils/Base64Util.java | 16 +- .../codecrafters/devkit/utils/BranchUtil.java | 10 +- .../devkit/utils/ChainedCalcUtil.java | 12 +- .../codecrafters/devkit/utils/HashUtil.java | 84 +++--- .../codecrafters/devkit/utils/MapUtil.java | 12 +- .../guid/{ => impl}/SnowflakeGuidCreator.java | 89 +++--- .../autoconfiguration/PropertyGuard.java | 4 +- .../authzero/AuthzeroTokenResolver.java | 257 +++++++++--------- .../config/AuthzeroTokenResolverConfig.java | 72 ++--- 10 files changed, 296 insertions(+), 283 deletions(-) rename guid/src/main/java/cn/org/codecrafters/guid/{ => impl}/SnowflakeGuidCreator.java (98%) diff --git a/devkit-utils/src/main/java/cn/org/codecrafters/devkit/utils/AesUtil.java b/devkit-utils/src/main/java/cn/org/codecrafters/devkit/utils/AesUtil.java index 6ccc4ce..93dcd3c 100644 --- a/devkit-utils/src/main/java/cn/org/codecrafters/devkit/utils/AesUtil.java +++ b/devkit-utils/src/main/java/cn/org/codecrafters/devkit/utils/AesUtil.java @@ -44,13 +44,6 @@ import java.util.UUID; @Slf4j public final class AesUtil { - private AesUtil() { - } - - private static final String AES = "AES"; - - private static final String AES_CBC_CIPHER = "AES/CBC/PKCS5Padding"; - /** * Encrypts the data using the AES algorithm with the given secret. * @@ -133,4 +126,20 @@ public final class AesUtil { return UUID.randomUUID().toString().replaceAll("-", "").substring(0, 16); } + /** + * Private constructor will protect this class from being instantiated. + */ + private AesUtil() { + } + + /** + * The algorithm AES. + */ + private static final String AES = "AES"; + + /** + * The algorithm AES/CBC/PKCS5Padding. + */ + private static final String AES_CBC_CIPHER = "AES/CBC/PKCS5Padding"; + } diff --git a/devkit-utils/src/main/java/cn/org/codecrafters/devkit/utils/Base64Util.java b/devkit-utils/src/main/java/cn/org/codecrafters/devkit/utils/Base64Util.java index fb0a80c..db20548 100644 --- a/devkit-utils/src/main/java/cn/org/codecrafters/devkit/utils/Base64Util.java +++ b/devkit-utils/src/main/java/cn/org/codecrafters/devkit/utils/Base64Util.java @@ -56,14 +56,6 @@ import java.util.Objects; */ public final class Base64Util { - private static Base64.Encoder encoder; - - private static Base64.Decoder decoder; - - private static Base64.Encoder urlEncoder; - - private static Base64.Decoder urlDecoder; - /** * Ensure that there is only one Base64 Encoder. * @@ -210,4 +202,12 @@ public final class Base64Util { return decodeUrlComponents(value, StandardCharsets.UTF_8); } + private static Base64.Encoder encoder; + + private static Base64.Decoder decoder; + + private static Base64.Encoder urlEncoder; + + private static Base64.Decoder urlDecoder; + } \ No newline at end of file diff --git a/devkit-utils/src/main/java/cn/org/codecrafters/devkit/utils/BranchUtil.java b/devkit-utils/src/main/java/cn/org/codecrafters/devkit/utils/BranchUtil.java index 6b9b760..cae5159 100644 --- a/devkit-utils/src/main/java/cn/org/codecrafters/devkit/utils/BranchUtil.java +++ b/devkit-utils/src/main/java/cn/org/codecrafters/devkit/utils/BranchUtil.java @@ -77,11 +77,6 @@ import java.util.function.Supplier; */ public final class BranchUtil { - /** - * The final result of the boolean expression. - */ - private final boolean result; - /** * Create a {@code BranchUtil} instance. * @@ -239,4 +234,9 @@ public final class BranchUtil { handle(ifHandler, null); } + /** + * The final result of the boolean expression. + */ + private final boolean result; + } diff --git a/devkit-utils/src/main/java/cn/org/codecrafters/devkit/utils/ChainedCalcUtil.java b/devkit-utils/src/main/java/cn/org/codecrafters/devkit/utils/ChainedCalcUtil.java index fc2358c..4757914 100644 --- a/devkit-utils/src/main/java/cn/org/codecrafters/devkit/utils/ChainedCalcUtil.java +++ b/devkit-utils/src/main/java/cn/org/codecrafters/devkit/utils/ChainedCalcUtil.java @@ -95,12 +95,6 @@ import java.util.function.Function; @Getter public final class ChainedCalcUtil { - /** - * -- GETTER -- - * Returns the current value as a BigDecimal. - */ - private BigDecimal value; - /** * Creates a {@code ChainedCalcUtil} instance with the specified initial * value. @@ -359,4 +353,10 @@ public final class ChainedCalcUtil { return res; } + /** + * -- GETTER -- + * Returns the current value as a BigDecimal. + */ + private BigDecimal value; + } diff --git a/devkit-utils/src/main/java/cn/org/codecrafters/devkit/utils/HashUtil.java b/devkit-utils/src/main/java/cn/org/codecrafters/devkit/utils/HashUtil.java index c12c9b1..063e2e5 100644 --- a/devkit-utils/src/main/java/cn/org/codecrafters/devkit/utils/HashUtil.java +++ b/devkit-utils/src/main/java/cn/org/codecrafters/devkit/utils/HashUtil.java @@ -69,48 +69,6 @@ import java.util.Optional; */ public final class HashUtil { - /** - * Private constructor to prevent instantiation - */ - private HashUtil() { - } - - /** - * Calculates the hash value of the specified string using the specified - * algorithm and charset. - * - * @param method the hash algorithm to use - * @param value the string to calculate the hash value for - * @param charset the charset to use for encoding the string (default is - * UTF-8 if null) - * @return the hash value as a hexadecimal string, or an empty string if - * the algorithm is not available - * @throws RuntimeException if an unknown algorithm name is provided - * (should not occur under controlled usage) - */ - private static String hash(String method, String value, Charset charset) { - try { - var messageDigest = MessageDigest.getInstance(method); - messageDigest.update(value.getBytes(charset)); - var bytes = messageDigest.digest(); - var builder = new StringBuilder(); - - for (var b : bytes) { - var str = Integer.toHexString(b & 0xff); - if (str.length() == 1) { - builder.append(0); - } - builder.append(str); - } - - return builder.toString(); - } catch (NoSuchAlgorithmException ignored) { - // This should not occur under controlled usage - // Only trusted algorithms are allowed - return ""; - } - } - /** * Calculates the MD2 hash value of the specified string using the given * charset. @@ -286,4 +244,46 @@ public final class HashUtil { return hash("SHA-512", value, StandardCharsets.UTF_8); } + /** + * Private constructor will protect this class from being instantiated. + */ + private HashUtil() { + } + + /** + * Calculates the hash value of the specified string using the specified + * algorithm and charset. + * + * @param method the hash algorithm to use + * @param value the string to calculate the hash value for + * @param charset the charset to use for encoding the string (default is + * UTF-8 if null) + * @return the hash value as a hexadecimal string, or an empty string if + * the algorithm is not available + * @throws RuntimeException if an unknown algorithm name is provided + * (should not occur under controlled usage) + */ + private static String hash(String method, String value, Charset charset) { + try { + var messageDigest = MessageDigest.getInstance(method); + messageDigest.update(value.getBytes(charset)); + var bytes = messageDigest.digest(); + var builder = new StringBuilder(); + + for (var b : bytes) { + var str = Integer.toHexString(b & 0xff); + if (str.length() == 1) { + builder.append(0); + } + builder.append(str); + } + + return builder.toString(); + } catch (NoSuchAlgorithmException ignored) { + // This should not occur under controlled usage + // Only trusted algorithms are allowed + return ""; + } + } + } diff --git a/devkit-utils/src/main/java/cn/org/codecrafters/devkit/utils/MapUtil.java b/devkit-utils/src/main/java/cn/org/codecrafters/devkit/utils/MapUtil.java index 68ab6d4..3e09f49 100644 --- a/devkit-utils/src/main/java/cn/org/codecrafters/devkit/utils/MapUtil.java +++ b/devkit-utils/src/main/java/cn/org/codecrafters/devkit/utils/MapUtil.java @@ -37,12 +37,6 @@ import java.util.Map; @Slf4j public final class MapUtil { - /** - * Private constructor to prevent instantiation of MapUtil. - */ - private MapUtil() { - } - /** * Converts an object to a map by mapping the field names to their * corresponding values. @@ -219,4 +213,10 @@ public final class MapUtil { return String.valueOf(obj); } } + + /** + * Private constructor will protect this class from being instantiated. + */ + private MapUtil() { + } } diff --git a/guid/src/main/java/cn/org/codecrafters/guid/SnowflakeGuidCreator.java b/guid/src/main/java/cn/org/codecrafters/guid/impl/SnowflakeGuidCreator.java similarity index 98% rename from guid/src/main/java/cn/org/codecrafters/guid/SnowflakeGuidCreator.java rename to guid/src/main/java/cn/org/codecrafters/guid/impl/SnowflakeGuidCreator.java index a20de90..097e56a 100644 --- a/guid/src/main/java/cn/org/codecrafters/guid/SnowflakeGuidCreator.java +++ b/guid/src/main/java/cn/org/codecrafters/guid/impl/SnowflakeGuidCreator.java @@ -15,13 +15,13 @@ * limitations under the License. */ -package cn.org.codecrafters.guid; +package cn.org.codecrafters.guid.impl; +import cn.org.codecrafters.guid.GuidCreator; import cn.org.codecrafters.guid.exceptions.TimingException; import java.time.LocalDateTime; import java.time.ZoneId; -import java.time.ZoneOffset; /** * The {@code SnowflakeGuidCreator} generates unique identifiers using the @@ -49,48 +49,6 @@ import java.time.ZoneOffset; */ public final class SnowflakeGuidCreator implements GuidCreator { - /** - * Default custom epoch. - * - * @value 2015-01-01T00:00:00Z - */ - private static final long DEFAULT_CUSTOM_EPOCH = 1_420_070_400_000L; - - /** - * The start epoch timestamp to generate IDs from. - */ - private final long startEpoch; - - /** - * The number of bits reserved for the worker ID. - */ - private final long workerIdBits = 5L; - - /** - * The number of bits reserved for the data centre ID. - */ - private final long dataCentreIdBits = 5L; - - /** - * The worker ID assigned to this generator. - */ - private final long workerId; - - /** - * The data centre ID assigned to this generator. - */ - private final long dataCentreId; - - /** - * The current sequence number. - */ - private long sequence = 0L; - - /** - * The timestamp of the last generated ID. - */ - private long lastTimestamp = -1L; - /** * Constructs a SnowflakeGuidGenerator with the default start epoch and * custom worker ID, data centre ID. @@ -204,5 +162,48 @@ public final class SnowflakeGuidCreator implements GuidCreator { private long currentTimestamp() { return LocalDateTime.now().atZone(ZoneId.systemDefault()).toInstant().toEpochMilli(); } + + /** + * Default custom epoch. + * + * @value 2015-01-01T00:00:00Z + */ + private static final long DEFAULT_CUSTOM_EPOCH = 1_420_070_400_000L; + + /** + * The start epoch timestamp to generate IDs from. + */ + private final long startEpoch; + + /** + * The number of bits reserved for the worker ID. + */ + private final long workerIdBits = 5L; + + /** + * The number of bits reserved for the data centre ID. + */ + private final long dataCentreIdBits = 5L; + + /** + * The worker ID assigned to this generator. + */ + private final long workerId; + + /** + * The data centre ID assigned to this generator. + */ + private final long dataCentreId; + + /** + * The current sequence number. + */ + private long sequence = 0L; + + /** + * The timestamp of the last generated ID. + */ + private long lastTimestamp = -1L; + } diff --git a/property-guard-spring-boot-starter/src/main/java/cn/org/codecrafters/propertyguard/autoconfiguration/PropertyGuard.java b/property-guard-spring-boot-starter/src/main/java/cn/org/codecrafters/propertyguard/autoconfiguration/PropertyGuard.java index c2ca6fb..09bae3e 100644 --- a/property-guard-spring-boot-starter/src/main/java/cn/org/codecrafters/propertyguard/autoconfiguration/PropertyGuard.java +++ b/property-guard-spring-boot-starter/src/main/java/cn/org/codecrafters/propertyguard/autoconfiguration/PropertyGuard.java @@ -70,8 +70,6 @@ import java.util.Optional; */ public class PropertyGuard implements EnvironmentPostProcessor { - private final String PREFIX = "pg"; - /** * Process the encryption environment variables. * @@ -108,4 +106,6 @@ public class PropertyGuard implements EnvironmentPostProcessor { } } } + + private static final String PREFIX = "pg"; } diff --git a/simple-jwt-authzero/src/main/java/cn/org/codecrafters/simplejwt/authzero/AuthzeroTokenResolver.java b/simple-jwt-authzero/src/main/java/cn/org/codecrafters/simplejwt/authzero/AuthzeroTokenResolver.java index 80d3eaa..a3def4f 100644 --- a/simple-jwt-authzero/src/main/java/cn/org/codecrafters/simplejwt/authzero/AuthzeroTokenResolver.java +++ b/simple-jwt-authzero/src/main/java/cn/org/codecrafters/simplejwt/authzero/AuthzeroTokenResolver.java @@ -104,34 +104,6 @@ import java.util.*; @Slf4j public class AuthzeroTokenResolver implements TokenResolver { - /** - * GuidCreator used for generating unique identifiers for "jti" claim in - * JWT tokens. - */ - private final GuidCreator jtiCreator; - - /** - * The algorithm used for signing and verifying JWT tokens. - */ - private final Algorithm algorithm; - - /** - * The issuer claim value to be included in JWT tokens. - */ - private final String issuer; - - /** - * The JSON Web Token resolver. - */ - private final JWTVerifier verifier; - - /** - * Jackson JSON handler. - */ - private final ObjectMapper objectMapper; - - private final AuthzeroTokenResolverConfig config = AuthzeroTokenResolverConfig.getInstance(); - /** * Creates a new instance of {@code AuthzeroTokenResolver} with the * provided configurations. @@ -150,7 +122,7 @@ public class AuthzeroTokenResolver implements TokenResolver { throw new IllegalArgumentException("A secret is required to build a JSON Web Token."); } - if (secret.length() <= 32) { + if (secret.length() < 32) { log.warn("The provided secret which owns {} characters is too weak. Please consider replacing it with a stronger one.", secret.length()); } @@ -224,104 +196,6 @@ public class AuthzeroTokenResolver implements TokenResolver { log.info("The secret has been set to {}.", secret); } - /** - * Builds the basic information of the JSON Web Token (JWT) using the - * provided parameters and adds it to the JWTCreator.Builder. - * - * @param subject the subject claim value to be included in the JWT - * @param audience an array of audience claim values to be included in - * the JWT - * @param expireAfter the duration after which the JWT will expire - * @param builder the JWTCreator.Builder instance to which the basic - * information will be added - */ - private void buildBasicInfo(JWTCreator.Builder builder, Duration expireAfter, String subject, String... audience) { - var now = LocalDateTime.now(); - - // bind issuer (iss) - builder.withIssuer(issuer); - // bind issued at (iat) - builder.withIssuedAt(Date.from(now.atZone(ZoneId.systemDefault()).toInstant())); - // bind not before (nbf) - builder.withNotBefore(Date.from(now.atZone(ZoneId.systemDefault()).toInstant())); - // bind audience (aud) - builder.withAudience(audience); - // bind subject (sub) - builder.withSubject(subject); - // bind expire at (exp) - builder.withExpiresAt(Date.from(now.plus(expireAfter).atZone(ZoneId.systemDefault()).toInstant())); - // bind JWT Id (jti) - builder.withJWTId(jtiCreator.nextId().toString()); - } - - /** - * Add a claim to a builder. - * - * @param builder the builder to build this JSON Web Token - * @param name the property name - * @param value the property value - */ - private void addClaim(JWTCreator.Builder builder, String name, Object value) { - if (Objects.nonNull(value)) { - if (value instanceof Boolean v) { - builder.withClaim(name, v); - } else if (value instanceof Double v) { - builder.withClaim(name, v); - } else if (value instanceof Float v) { - builder.withClaim(name, v.doubleValue()); - } else if (value instanceof Integer v) { - builder.withClaim(name, v); - } else if (value instanceof Long v) { - builder.withClaim(name, v); - } else if (value instanceof String v) { - builder.withClaim(name, v); - } else if (value instanceof Date v) { - builder.withClaim(name, v); - } else if (value instanceof List v) { - builder.withClaim(name, v); - } else { - log.warn(""" - Unable to determine the type of field {}, we will handle it as a String.""", name); - builder.withClaim(name, value.toString()); - } - } else { - builder.withNullClaim(name); - } - } - - /** - * Builds the custom claims of the JSON Web Token (JWT) using the provided - * Map of claims and adds them to the JWTCreator.Builder. - *

- * This method is used to add custom claims to the JWT. It takes a Map of - * claims, where each entry represents a custom claim name (key) and its - * corresponding value (value). The custom claims will be added to the JWT - * using the JWTCreator.Builder. - * - * @param claims a Map containing the custom claims to be added to the JWT - * @param builder the JWTCreator.Builder instance to which the custom - * claims will be added - */ - private void buildMapClaims(JWTCreator.Builder builder, Map claims) { - if (Objects.nonNull(claims)) { - for (var e : claims.entrySet()) { - addClaim(builder, e.getKey(), e.getValue()); - } - } - } - - /** - * Finish creating a token. - *

- * This is the final step of create a token, to sign this token. - * - * @param builder the builder to build this JWT - * @return the generated token as a {@code String} - */ - private String buildToken(JWTCreator.Builder builder) { - return builder.sign(algorithm); - } - /** * Creates a new token with the specified expiration duration, subject, and * audience. @@ -552,8 +426,137 @@ public class AuthzeroTokenResolver implements TokenResolver { return renew(oldToken, Duration.ofMinutes(30), payload); } + /** + * Builds the basic information of the JSON Web Token (JWT) using the + * provided parameters and adds it to the JWTCreator.Builder. + * + * @param subject the subject claim value to be included in the JWT + * @param audience an array of audience claim values to be included in + * the JWT + * @param expireAfter the duration after which the JWT will expire + * @param builder the JWTCreator.Builder instance to which the basic + * information will be added + */ + private void buildBasicInfo(JWTCreator.Builder builder, Duration expireAfter, String subject, String... audience) { + var now = LocalDateTime.now(); + + // bind issuer (iss) + builder.withIssuer(issuer); + // bind issued at (iat) + builder.withIssuedAt(Date.from(now.atZone(ZoneId.systemDefault()).toInstant())); + // bind not before (nbf) + builder.withNotBefore(Date.from(now.atZone(ZoneId.systemDefault()).toInstant())); + // bind audience (aud) + builder.withAudience(audience); + // bind subject (sub) + builder.withSubject(subject); + // bind expire at (exp) + builder.withExpiresAt(Date.from(now.plus(expireAfter).atZone(ZoneId.systemDefault()).toInstant())); + // bind JWT Id (jti) + builder.withJWTId(jtiCreator.nextId().toString()); + } + + /** + * Add a claim to a builder. + * + * @param builder the builder to build this JSON Web Token + * @param name the property name + * @param value the property value + */ + private void addClaim(JWTCreator.Builder builder, String name, Object value) { + if (Objects.nonNull(value)) { + if (value instanceof Boolean v) { + builder.withClaim(name, v); + } else if (value instanceof Double v) { + builder.withClaim(name, v); + } else if (value instanceof Float v) { + builder.withClaim(name, v.doubleValue()); + } else if (value instanceof Integer v) { + builder.withClaim(name, v); + } else if (value instanceof Long v) { + builder.withClaim(name, v); + } else if (value instanceof String v) { + builder.withClaim(name, v); + } else if (value instanceof Date v) { + builder.withClaim(name, v); + } else if (value instanceof List v) { + builder.withClaim(name, v); + } else { + log.warn(""" + Unable to determine the type of field {}, we will handle it as a String.""", name); + builder.withClaim(name, value.toString()); + } + } else { + builder.withNullClaim(name); + } + } + + /** + * Builds the custom claims of the JSON Web Token (JWT) using the provided + * Map of claims and adds them to the JWTCreator.Builder. + *

+ * This method is used to add custom claims to the JWT. It takes a Map of + * claims, where each entry represents a custom claim name (key) and its + * corresponding value (value). The custom claims will be added to the JWT + * using the JWTCreator.Builder. + * + * @param claims a Map containing the custom claims to be added to the JWT + * @param builder the JWTCreator.Builder instance to which the custom + * claims will be added + */ + private void buildMapClaims(JWTCreator.Builder builder, Map claims) { + if (Objects.nonNull(claims)) { + for (var e : claims.entrySet()) { + addClaim(builder, e.getKey(), e.getValue()); + } + } + } + + /** + * Finish creating a token. + *

+ * This is the final step of create a token, to sign this token. + * + * @param builder the builder to build this JWT + * @return the generated token as a {@code String} + */ + private String buildToken(JWTCreator.Builder builder) { + return builder.sign(algorithm); + } + + /** + * Default type reference for Map. + */ private static class MapTypeReference extends TypeReference> { MapTypeReference() { } } + + /** + * GuidCreator used for generating unique identifiers for "jti" claim in + * JWT tokens. + */ + private final GuidCreator jtiCreator; + + /** + * The algorithm used for signing and verifying JWT tokens. + */ + private final Algorithm algorithm; + + /** + * The issuer claim value to be included in JWT tokens. + */ + private final String issuer; + + /** + * The JSON Web Token resolver. + */ + private final JWTVerifier verifier; + + /** + * Jackson JSON handler. + */ + private final ObjectMapper objectMapper; + + private final AuthzeroTokenResolverConfig config = AuthzeroTokenResolverConfig.getInstance(); } diff --git a/simple-jwt-authzero/src/main/java/cn/org/codecrafters/simplejwt/authzero/config/AuthzeroTokenResolverConfig.java b/simple-jwt-authzero/src/main/java/cn/org/codecrafters/simplejwt/authzero/config/AuthzeroTokenResolverConfig.java index 1f0751a..463be4c 100644 --- a/simple-jwt-authzero/src/main/java/cn/org/codecrafters/simplejwt/authzero/config/AuthzeroTokenResolverConfig.java +++ b/simple-jwt-authzero/src/main/java/cn/org/codecrafters/simplejwt/authzero/config/AuthzeroTokenResolverConfig.java @@ -62,42 +62,6 @@ import java.util.function.Function; */ public final class AuthzeroTokenResolverConfig implements TokenResolverConfig> { - /** - * Constructs a new instance of {@code AuthzeroTokenResolverConfig}. - *

- * The constructor is set as private to enforce the singleton pattern for - * this configuration class. Instances of - * {@code AuthzeroTokenResolverConfig} should be obtained through the - * {@link #getInstance()} method. - */ - private AuthzeroTokenResolverConfig() { - } - - /** - * The singleton instance of {@code AuthzeroTokenResolverConfig}. - *

- * This instance is used to ensure that only one instance of - * {@code AuthzeroTokenResolverConfig} is created and shared throughout the - * application. The singleton pattern is implemented to provide centralised - * configuration and avoid redundant object creation. - */ - private static AuthzeroTokenResolverConfig instance; - - /** - * The supported algorithms and their corresponding algorithm functions. - *

- * This map stores the supported algorithms as keys and their corresponding - * algorithm functions as values. The algorithm functions represent the - * functions used by the {@code com.auth0:java-jwt} library to handle the - * specific algorithms. The mapping is used to provide proper algorithm - * resolution and processing within the {@link AuthzeroTokenResolver}. - */ - private static final Map> SUPPORTED_ALGORITHMS = new HashMap<>() {{ - put(TokenAlgorithm.HS256, Algorithm::HMAC256); - put(TokenAlgorithm.HS384, Algorithm::HMAC384); - put(TokenAlgorithm.HS512, Algorithm::HMAC512); - }}; - /** * Gets the instance of {@code AuthzeroTokenResolverConfig}. *

@@ -140,4 +104,40 @@ public final class AuthzeroTokenResolverConfig implements TokenResolverConfig entry.get(algorithm)) .orElseThrow(() -> new UnsupportedAlgorithmException("The specified algorithm is not supported yet.")); } + + /** + * Constructs a new instance of {@code AuthzeroTokenResolverConfig}. + *

+ * The constructor is set as private to enforce the singleton pattern for + * this configuration class. Instances of + * {@code AuthzeroTokenResolverConfig} should be obtained through the + * {@link #getInstance()} method. + */ + private AuthzeroTokenResolverConfig() { + } + + /** + * The singleton instance of {@code AuthzeroTokenResolverConfig}. + *

+ * This instance is used to ensure that only one instance of + * {@code AuthzeroTokenResolverConfig} is created and shared throughout the + * application. The singleton pattern is implemented to provide centralised + * configuration and avoid redundant object creation. + */ + private static AuthzeroTokenResolverConfig instance; + + /** + * The supported algorithms and their corresponding algorithm functions. + *

+ * This map stores the supported algorithms as keys and their corresponding + * algorithm functions as values. The algorithm functions represent the + * functions used by the {@code com.auth0:java-jwt} library to handle the + * specific algorithms. The mapping is used to provide proper algorithm + * resolution and processing within the {@link AuthzeroTokenResolver}. + */ + private static final Map> SUPPORTED_ALGORITHMS = new HashMap<>() {{ + put(TokenAlgorithm.HS256, Algorithm::HMAC256); + put(TokenAlgorithm.HS384, Algorithm::HMAC384); + put(TokenAlgorithm.HS512, Algorithm::HMAC512); + }}; } From 589555736884e6b7173cc3fe187c9c7920fbe937 Mon Sep 17 00:00:00 2001 From: Zihlu Wang Date: Sun, 31 Mar 2024 18:34:01 +0800 Subject: [PATCH 3/5] refactor: Optimsed codes. Move private and protected methods or fields to the last of java files. --- gradlew | 0 .../codecrafters/simplejwt/SecretCreator.java | 59 +++++------ .../simplejwt/constants/PredefinedKeys.java | 6 +- .../simplejwt/constants/TokenDataType.java | 3 + .../simplejwt/jjwt/JjwtTokenResolver.java | 44 ++++++-- .../jjwt/config/JjwtTokenResolverConfig.java | 32 ++++-- ...uthzeroTokenResolverAutoConfiguration.java | 26 ++--- .../GuidAutoConfiguration.java | 5 + .../JjwtTokenResolverAutoConfiguration.java | 22 ++-- .../conditions/GuidCreatorCondition.java | 12 +++ .../org/codecrafters/webcal/WebCalendar.java | 100 +++++++++--------- .../codecrafters/webcal/WebCalendarNode.java | 4 +- ...rmatter.java => DateAndTimeFormatter.java} | 22 ++-- .../webcal/{ => impl}/WebCalendarEvent.java | 13 +-- .../org/codecrafters/webcal/package-info.java | 2 +- .../webcal/test/TestWebCalendar.java | 2 +- 16 files changed, 200 insertions(+), 152 deletions(-) mode change 100644 => 100755 gradlew rename webcal/src/main/java/cn/org/codecrafters/webcal/config/{Formatter.java => DateAndTimeFormatter.java} (72%) rename webcal/src/main/java/cn/org/codecrafters/webcal/{ => impl}/WebCalendarEvent.java (96%) diff --git a/gradlew b/gradlew old mode 100644 new mode 100755 diff --git a/simple-jwt-facade/src/main/java/cn/org/codecrafters/simplejwt/SecretCreator.java b/simple-jwt-facade/src/main/java/cn/org/codecrafters/simplejwt/SecretCreator.java index 4f274ec..c3478fa 100644 --- a/simple-jwt-facade/src/main/java/cn/org/codecrafters/simplejwt/SecretCreator.java +++ b/simple-jwt-facade/src/main/java/cn/org/codecrafters/simplejwt/SecretCreator.java @@ -32,36 +32,6 @@ import java.util.Random; */ public final class SecretCreator { - /** - * Private constructor to prevent instantiation - */ - private SecretCreator() { - } - - /** - * The string containing all lowercase characters that can be used to - * generate the secret. - */ - private static final String LOWERCASE_CHARACTERS = "abcdefghijklmnopqrstuvwxyz"; - - /** - * The string containing all uppercase characters that can be used to - * generate the secret. - */ - private static final String UPPERCASE_CHARACTERS = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; - - /** - * The string containing all digit characters that can be used to generate - * the secret. - */ - private static final String DIGITS = "0123456789"; - - /** - * The string containing all special sign characters that can be used to - * generate the secret. - */ - private static final String SPECIAL_SIGNS = "!@#$%^&,*()_+-=,[]{}|;:,'\",.<>/?"; - /** * Generates a secure secret with the specified length and character sets. * @@ -153,4 +123,33 @@ public final class SecretCreator { return createSecret(length, false, false, false); } + /** + * Private constructor will protect this class from being instantiated. + */ + private SecretCreator() { + } + + /** + * The string containing all lowercase characters that can be used to + * generate the secret. + */ + private static final String LOWERCASE_CHARACTERS = "abcdefghijklmnopqrstuvwxyz"; + + /** + * The string containing all uppercase characters that can be used to + * generate the secret. + */ + private static final String UPPERCASE_CHARACTERS = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; + + /** + * The string containing all digit characters that can be used to generate + * the secret. + */ + private static final String DIGITS = "0123456789"; + + /** + * The string containing all special sign characters that can be used to + * generate the secret. + */ + private static final String SPECIAL_SIGNS = "!@#$%^&,*()_+-=,[]{}|;:,'\",.<>/?"; } diff --git a/simple-jwt-facade/src/main/java/cn/org/codecrafters/simplejwt/constants/PredefinedKeys.java b/simple-jwt-facade/src/main/java/cn/org/codecrafters/simplejwt/constants/PredefinedKeys.java index 2df9309..f82c45b 100644 --- a/simple-jwt-facade/src/main/java/cn/org/codecrafters/simplejwt/constants/PredefinedKeys.java +++ b/simple-jwt-facade/src/main/java/cn/org/codecrafters/simplejwt/constants/PredefinedKeys.java @@ -88,11 +88,7 @@ public final class PredefinedKeys { public static final List KEYS = List.of(ISSUER, SUBJECT, AUDIENCE, EXPIRATION_TIME, NOT_BEFORE, ISSUED_AT, JWT_ID); /** - * Private constructor to prevent instantiation of the - * {@code PredefinedKeys} class. - *

- * This class is intended to be used as a utility class with only static - * constants and methods. + * Private constructor will protect this class from being instantiated. */ private PredefinedKeys() { } diff --git a/simple-jwt-facade/src/main/java/cn/org/codecrafters/simplejwt/constants/TokenDataType.java b/simple-jwt-facade/src/main/java/cn/org/codecrafters/simplejwt/constants/TokenDataType.java index 767c205..ee7e348 100644 --- a/simple-jwt-facade/src/main/java/cn/org/codecrafters/simplejwt/constants/TokenDataType.java +++ b/simple-jwt-facade/src/main/java/cn/org/codecrafters/simplejwt/constants/TokenDataType.java @@ -63,6 +63,9 @@ public enum TokenDataType { */ private final Class mappedClass; + /** + * Create a TokenDataType with a mapped class. + */ TokenDataType(Class mappedClass) { this.mappedClass = mappedClass; } diff --git a/simple-jwt-jjwt/src/main/java/cn/org/codecrafters/simplejwt/jjwt/JjwtTokenResolver.java b/simple-jwt-jjwt/src/main/java/cn/org/codecrafters/simplejwt/jjwt/JjwtTokenResolver.java index dd32976..51abd91 100644 --- a/simple-jwt-jjwt/src/main/java/cn/org/codecrafters/simplejwt/jjwt/JjwtTokenResolver.java +++ b/simple-jwt-jjwt/src/main/java/cn/org/codecrafters/simplejwt/jjwt/JjwtTokenResolver.java @@ -98,16 +98,6 @@ import java.util.*; @Slf4j public class JjwtTokenResolver implements TokenResolver> { - private final GuidCreator jtiCreator; - - private final SecureDigestAlgorithm algorithm; - - private final String issuer; - - private final SecretKey key; - - private final JjwtTokenResolverConfig config = JjwtTokenResolverConfig.getInstance(); - /** * Create a resolver with specified algorithm, issuer, secret and guid strategy. * @@ -432,6 +422,15 @@ public class JjwtTokenResolver implements TokenResolver> { return renew(oldToken, Duration.ofMinutes(30), payload); } + /** + * Build a new token with specified data. + * + * @param expireAfter the validity time of the token + * @param audience the audience of the token + * @param subject the subject of the token + * @param claims the data to be included in the token + * @return the built token + */ private String buildToken(Duration expireAfter, String audience, String subject, Map claims) { var now = LocalDateTime.now(); var builder = Jwts.builder() @@ -453,4 +452,29 @@ public class JjwtTokenResolver implements TokenResolver> { return builder.signWith(key, algorithm) .compact(); } + + /** + * The ID creator for creating unique JWT IDs. + */ + private final GuidCreator jtiCreator; + + /** + * The algorithm to sign this token. + */ + private final SecureDigestAlgorithm algorithm; + + /** + * The issuer of this token. + */ + private final String issuer; + + /** + * The signature key of this token. + */ + private final SecretKey key; + + /** + * The config of this token resolver. + */ + private final JjwtTokenResolverConfig config = JjwtTokenResolverConfig.getInstance(); } diff --git a/simple-jwt-jjwt/src/main/java/cn/org/codecrafters/simplejwt/jjwt/config/JjwtTokenResolverConfig.java b/simple-jwt-jjwt/src/main/java/cn/org/codecrafters/simplejwt/jjwt/config/JjwtTokenResolverConfig.java index 677682d..b678d18 100644 --- a/simple-jwt-jjwt/src/main/java/cn/org/codecrafters/simplejwt/jjwt/config/JjwtTokenResolverConfig.java +++ b/simple-jwt-jjwt/src/main/java/cn/org/codecrafters/simplejwt/jjwt/config/JjwtTokenResolverConfig.java @@ -63,17 +63,6 @@ import java.util.Map; */ public final class JjwtTokenResolverConfig implements TokenResolverConfig> { - private JjwtTokenResolverConfig() { - } - - private static final Map> SUPPORTED_ALGORITHMS = new HashMap<>() {{ - put(TokenAlgorithm.HS256, Jwts.SIG.HS256); - put(TokenAlgorithm.HS384, Jwts.SIG.HS384); - put(TokenAlgorithm.HS512, Jwts.SIG.HS512); - }}; - - private static JjwtTokenResolverConfig instance; - public static JjwtTokenResolverConfig getInstance() { if (instance == null) { instance = new JjwtTokenResolverConfig(); @@ -106,4 +95,25 @@ public final class JjwtTokenResolverConfig implements TokenResolverConfig> SUPPORTED_ALGORITHMS = new HashMap<>() {{ + put(TokenAlgorithm.HS256, Jwts.SIG.HS256); + put(TokenAlgorithm.HS384, Jwts.SIG.HS384); + put(TokenAlgorithm.HS512, Jwts.SIG.HS512); + }}; + + /** + * The instance of this config class. + */ + private static JjwtTokenResolverConfig instance; + } diff --git a/simple-jwt-spring-boot-starter/src/main/java/cn/org/codecrafters/simplejwt/autoconfiguration/AuthzeroTokenResolverAutoConfiguration.java b/simple-jwt-spring-boot-starter/src/main/java/cn/org/codecrafters/simplejwt/autoconfiguration/AuthzeroTokenResolverAutoConfiguration.java index 8e0c46b..9cfb314 100644 --- a/simple-jwt-spring-boot-starter/src/main/java/cn/org/codecrafters/simplejwt/autoconfiguration/AuthzeroTokenResolverAutoConfiguration.java +++ b/simple-jwt-spring-boot-starter/src/main/java/cn/org/codecrafters/simplejwt/autoconfiguration/AuthzeroTokenResolverAutoConfiguration.java @@ -65,19 +65,6 @@ import org.springframework.context.annotation.Bean; @AutoConfigureAfter(value = GuidAutoConfiguration.class) public class AuthzeroTokenResolverAutoConfiguration { - /** - * The GuidCreator instance to be used for generating JWT IDs (JTI). - */ - private final GuidCreator jtiCreator; - - /** - * The {@code SimpleJwtProperties} instance containing the configuration - * properties for Simple JWT. - */ - private final SimpleJwtProperties simpleJwtProperties; - - private final ObjectMapper objectMapper; - /** * Constructs a new {@code SimpleJwtAutoConfiguration} instance with the * provided SimpleJwtProperties. @@ -112,4 +99,17 @@ public class AuthzeroTokenResolverAutoConfiguration { ); } + /** + * The GuidCreator instance to be used for generating JWT IDs (JTI). + */ + private final GuidCreator jtiCreator; + + /** + * The {@code SimpleJwtProperties} instance containing the configuration + * properties for Simple JWT. + */ + private final SimpleJwtProperties simpleJwtProperties; + + private final ObjectMapper objectMapper; + } diff --git a/simple-jwt-spring-boot-starter/src/main/java/cn/org/codecrafters/simplejwt/autoconfiguration/GuidAutoConfiguration.java b/simple-jwt-spring-boot-starter/src/main/java/cn/org/codecrafters/simplejwt/autoconfiguration/GuidAutoConfiguration.java index 755369c..00372a7 100644 --- a/simple-jwt-spring-boot-starter/src/main/java/cn/org/codecrafters/simplejwt/autoconfiguration/GuidAutoConfiguration.java +++ b/simple-jwt-spring-boot-starter/src/main/java/cn/org/codecrafters/simplejwt/autoconfiguration/GuidAutoConfiguration.java @@ -39,6 +39,11 @@ import java.util.UUID; @AutoConfiguration public class GuidAutoConfiguration { + /** + * Create a default {@code jtiCreator} with UUID. + * + * @return UUID creator + */ @Bean(name = "jtiCreator") @Conditional(GuidCreatorCondition.class) public GuidCreator jtiCreator() { diff --git a/simple-jwt-spring-boot-starter/src/main/java/cn/org/codecrafters/simplejwt/autoconfiguration/JjwtTokenResolverAutoConfiguration.java b/simple-jwt-spring-boot-starter/src/main/java/cn/org/codecrafters/simplejwt/autoconfiguration/JjwtTokenResolverAutoConfiguration.java index 9e18fcf..677a25f 100644 --- a/simple-jwt-spring-boot-starter/src/main/java/cn/org/codecrafters/simplejwt/autoconfiguration/JjwtTokenResolverAutoConfiguration.java +++ b/simple-jwt-spring-boot-starter/src/main/java/cn/org/codecrafters/simplejwt/autoconfiguration/JjwtTokenResolverAutoConfiguration.java @@ -65,17 +65,6 @@ import org.springframework.context.annotation.Bean; @AutoConfigureAfter(value = GuidAutoConfiguration.class) public class JjwtTokenResolverAutoConfiguration { - /** - * The GuidCreator instance to be used for generating JWT IDs (JTI). - */ - private final GuidCreator jtiCreator; - - /** - * The {@code SimpleJwtProperties} instance containing the configuration - * properties for Simple JWT. - */ - private final SimpleJwtProperties simpleJwtProperties; - /** * Constructs a new {@code SimpleJwtAutoConfiguration} instance with the * provided SimpleJwtProperties. @@ -107,4 +96,15 @@ public class JjwtTokenResolverAutoConfiguration { ); } + /** + * The GuidCreator instance to be used for generating JWT IDs (JTI). + */ + private final GuidCreator jtiCreator; + + /** + * The {@code SimpleJwtProperties} instance containing the configuration + * properties for Simple JWT. + */ + private final SimpleJwtProperties simpleJwtProperties; + } diff --git a/simple-jwt-spring-boot-starter/src/main/java/cn/org/codecrafters/simplejwt/autoconfiguration/conditions/GuidCreatorCondition.java b/simple-jwt-spring-boot-starter/src/main/java/cn/org/codecrafters/simplejwt/autoconfiguration/conditions/GuidCreatorCondition.java index 287b3cd..769a54e 100644 --- a/simple-jwt-spring-boot-starter/src/main/java/cn/org/codecrafters/simplejwt/autoconfiguration/conditions/GuidCreatorCondition.java +++ b/simple-jwt-spring-boot-starter/src/main/java/cn/org/codecrafters/simplejwt/autoconfiguration/conditions/GuidCreatorCondition.java @@ -17,6 +17,18 @@ import java.util.Objects; */ @Slf4j public class GuidCreatorCondition implements Condition { + + /** + * The condition to create bean {@code jtiCreator}. + *

+ * If Spring does not have a bean of type + * {@link cn.org.codecrafters.guid.GuidCreator} named {@code jtiCreator} + * in the application context, then create {@code jtiCreator}. + * + * @param context the spring application context + * @param metadata the metadata of the {@link org.springframework.core.type.AnnotationMetadata class} + * or {@link org.springframework.core.type.MethodMetadata method} being checked + */ @Override public boolean matches(ConditionContext context, AnnotatedTypeMetadata metadata) { final var beanFactory = Objects.requireNonNull(context.getBeanFactory()); diff --git a/webcal/src/main/java/cn/org/codecrafters/webcal/WebCalendar.java b/webcal/src/main/java/cn/org/codecrafters/webcal/WebCalendar.java index 9a99469..35a21de 100644 --- a/webcal/src/main/java/cn/org/codecrafters/webcal/WebCalendar.java +++ b/webcal/src/main/java/cn/org/codecrafters/webcal/WebCalendar.java @@ -17,6 +17,8 @@ package cn.org.codecrafters.webcal; +import cn.org.codecrafters.webcal.impl.WebCalendarEvent; + import java.util.ArrayList; import java.util.List; import java.util.Objects; @@ -50,55 +52,6 @@ import java.util.Objects; */ public final class WebCalendar { - /** - * The {@code VCALENDAR} tag for iCalendar format - */ - private final static String TAG = "VCALENDAR"; - - /** - * The name of this calendar. - */ - private String name; - - /** - * The company who produces this calendar. - *

- * This property will be used in {@code PRODID}. - */ - private String companyName; - - /** - * The product name. - *

- * This property will be used in {@code PRODID} - */ - private String productName; - - /** - * The producer's domain name. - */ - private String domainName; - - /** - * Scale of this calendar. - */ - private final String scale = "GREGORIAN"; - - /** - * The method of this calendar. - */ - private String method; - - /** - * The version of this calendar. - */ - private final String version = "2.0"; - - /** - * List of calendar components and events - */ - private final List nodes; - /** * Constructor for WebCalendar class, initializes the list of calendar * components and events. @@ -209,5 +162,54 @@ public final class WebCalendar { "END:" + TAG; } + /** + * The {@code VCALENDAR} tag for iCalendar format + */ + private final static String TAG = "VCALENDAR"; + + /** + * The name of this calendar. + */ + private String name; + + /** + * The company who produces this calendar. + *

+ * This property will be used in {@code PRODID}. + */ + private String companyName; + + /** + * The product name. + *

+ * This property will be used in {@code PRODID} + */ + private String productName; + + /** + * The producer's domain name. + */ + private String domainName; + + /** + * Scale of this calendar. + */ + private final String scale = "GREGORIAN"; + + /** + * The method of this calendar. + */ + private String method; + + /** + * The version of this calendar. + */ + private final String version = "2.0"; + + /** + * List of calendar components and events + */ + private final List nodes; + } diff --git a/webcal/src/main/java/cn/org/codecrafters/webcal/WebCalendarNode.java b/webcal/src/main/java/cn/org/codecrafters/webcal/WebCalendarNode.java index 75b0e43..a95cebc 100644 --- a/webcal/src/main/java/cn/org/codecrafters/webcal/WebCalendarNode.java +++ b/webcal/src/main/java/cn/org/codecrafters/webcal/WebCalendarNode.java @@ -18,6 +18,7 @@ package cn.org.codecrafters.webcal; import cn.org.codecrafters.webcal.config.Classification; +import cn.org.codecrafters.webcal.impl.WebCalendarEvent; import java.time.Duration; import java.time.LocalDateTime; @@ -37,8 +38,7 @@ import java.util.List; * @version 1.1.0 * @since 1.0.0 */ -public abstract sealed class WebCalendarNode - permits WebCalendarEvent { +public abstract class WebCalendarNode { // Common properties for all calendar components and events protected List categories; diff --git a/webcal/src/main/java/cn/org/codecrafters/webcal/config/Formatter.java b/webcal/src/main/java/cn/org/codecrafters/webcal/config/DateAndTimeFormatter.java similarity index 72% rename from webcal/src/main/java/cn/org/codecrafters/webcal/config/Formatter.java rename to webcal/src/main/java/cn/org/codecrafters/webcal/config/DateAndTimeFormatter.java index 4760d79..7b125a2 100644 --- a/webcal/src/main/java/cn/org/codecrafters/webcal/config/Formatter.java +++ b/webcal/src/main/java/cn/org/codecrafters/webcal/config/DateAndTimeFormatter.java @@ -22,13 +22,19 @@ import java.time.format.DateTimeFormatter; import java.util.Objects; /** - * DatetimeFormatters + * A formatter to format {@link java.time.LocalDateTime}. * * @author Zihlu Wang - * @since 21 Sept, 2023 */ -public final class Formatter { +public final class DateAndTimeFormatter { + /** + * Get the {@link java.time.format.DateTimeFormatter datetime formatter} + * with UTC pattern and timezone. + * + * @return the {@link java.time.format.DateTimeFormatter datetime formatter} + * with UTC pattern and timezone + */ public static DateTimeFormatter getUtcDatetimeFormatter() { if (Objects.isNull(utcDateTimeFormatter)) { utcDateTimeFormatter = DateTimeFormatter.ofPattern("yyyyMMdd'T'HHmmss'Z'").withZone(ZoneOffset.UTC); @@ -37,16 +43,6 @@ public final class Formatter { return utcDateTimeFormatter; } - // public static DateTimeFormatter getLocalDatetimeFormatter() { - // if (Objects.isNull(localDatetimeFormatter)) { - // localDatetimeFormatter = DateTimeFormatter.ofPattern("yyyyMMdd'T'HHmmss"); - // } - // - // return localDatetimeFormatter; - // } - private static DateTimeFormatter utcDateTimeFormatter; - // private static DateTimeFormatter localDatetimeFormatter; - } diff --git a/webcal/src/main/java/cn/org/codecrafters/webcal/WebCalendarEvent.java b/webcal/src/main/java/cn/org/codecrafters/webcal/impl/WebCalendarEvent.java similarity index 96% rename from webcal/src/main/java/cn/org/codecrafters/webcal/WebCalendarEvent.java rename to webcal/src/main/java/cn/org/codecrafters/webcal/impl/WebCalendarEvent.java index 2870246..ef81ba7 100644 --- a/webcal/src/main/java/cn/org/codecrafters/webcal/WebCalendarEvent.java +++ b/webcal/src/main/java/cn/org/codecrafters/webcal/impl/WebCalendarEvent.java @@ -15,10 +15,11 @@ * limitations under the License. */ -package cn.org.codecrafters.webcal; +package cn.org.codecrafters.webcal.impl; +import cn.org.codecrafters.webcal.WebCalendarNode; import cn.org.codecrafters.webcal.config.Classification; -import cn.org.codecrafters.webcal.config.Formatter; +import cn.org.codecrafters.webcal.config.DateAndTimeFormatter; import java.text.MessageFormat; import java.time.Duration; @@ -47,8 +48,6 @@ import java.util.UUID; */ public final class WebCalendarEvent extends WebCalendarNode { - private final static String TAG = "VEVENT"; - /** * Add categories to the event. * @@ -270,8 +269,8 @@ public final class WebCalendarEvent extends WebCalendarNode { END:{0}""", TAG, // 0 - tag Optional.ofNullable(uid).orElse(UUID.randomUUID().toString()) + "@" + domainName, // 1 - uid - now.format(Formatter.getUtcDatetimeFormatter()), // 2 - dtstamp - start.atZone(ZoneId.systemDefault()).format(Formatter.getUtcDatetimeFormatter()), // 3 - start time + now.format(DateAndTimeFormatter.getUtcDatetimeFormatter()), // 2 - dtstamp + start.atZone(ZoneId.systemDefault()).format(DateAndTimeFormatter.getUtcDatetimeFormatter()), // 3 - start time Optional.ofNullable(summary).map((item) -> "\nSUMMARY:" + item).orElse(""), // 4 - summary Optional.ofNullable(categories) .map((item) -> !item.isEmpty() ? "\nCATEGORIES:" + resolveCategories() : null).orElse(""), // 5 - categories @@ -289,4 +288,6 @@ public final class WebCalendarEvent extends WebCalendarNode { ); } + private final static String TAG = "VEVENT"; + } diff --git a/webcal/src/main/java/cn/org/codecrafters/webcal/package-info.java b/webcal/src/main/java/cn/org/codecrafters/webcal/package-info.java index 3cfd07d..bb4ce67 100644 --- a/webcal/src/main/java/cn/org/codecrafters/webcal/package-info.java +++ b/webcal/src/main/java/cn/org/codecrafters/webcal/package-info.java @@ -27,7 +27,7 @@ * generating web calendars with customisable settings and events. * *

  • - * {@link cn.org.codecrafters.webcal.WebCalendarEvent}: A class + * {@link cn.org.codecrafters.webcal.impl.WebCalendarEvent}: A class * representing a single event in a web calendar with various * attributes and options. *
  • diff --git a/webcal/src/test/java/cn/org/codecrafters/webcal/test/TestWebCalendar.java b/webcal/src/test/java/cn/org/codecrafters/webcal/test/TestWebCalendar.java index 195e065..9b34b97 100644 --- a/webcal/src/test/java/cn/org/codecrafters/webcal/test/TestWebCalendar.java +++ b/webcal/src/test/java/cn/org/codecrafters/webcal/test/TestWebCalendar.java @@ -18,7 +18,7 @@ package cn.org.codecrafters.webcal.test; import cn.org.codecrafters.webcal.WebCalendar; -import cn.org.codecrafters.webcal.WebCalendarEvent; +import cn.org.codecrafters.webcal.impl.WebCalendarEvent; import cn.org.codecrafters.webcal.config.Classification; import lombok.extern.slf4j.Slf4j; import org.junit.jupiter.api.Test; From 65287d0b241b27c6807052f9fdc10f822e0d2b84 Mon Sep 17 00:00:00 2001 From: Zihlu Wang Date: Sun, 31 Mar 2024 18:38:12 +0800 Subject: [PATCH 4/5] refactor: Optimsed comments. --- .../webcal/impl/WebCalendarEvent.java | 30 +++++++++---------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/webcal/src/main/java/cn/org/codecrafters/webcal/impl/WebCalendarEvent.java b/webcal/src/main/java/cn/org/codecrafters/webcal/impl/WebCalendarEvent.java index ef81ba7..b43d521 100644 --- a/webcal/src/main/java/cn/org/codecrafters/webcal/impl/WebCalendarEvent.java +++ b/webcal/src/main/java/cn/org/codecrafters/webcal/impl/WebCalendarEvent.java @@ -267,24 +267,24 @@ public final class WebCalendarEvent extends WebCalendarNode { DURATION:PT{6}S {4}{5}{7}{8}{9}{10}{11}{12} END:{0}""", - TAG, // 0 - tag - Optional.ofNullable(uid).orElse(UUID.randomUUID().toString()) + "@" + domainName, // 1 - uid - now.format(DateAndTimeFormatter.getUtcDatetimeFormatter()), // 2 - dtstamp - start.atZone(ZoneId.systemDefault()).format(DateAndTimeFormatter.getUtcDatetimeFormatter()), // 3 - start time - Optional.ofNullable(summary).map((item) -> "\nSUMMARY:" + item).orElse(""), // 4 - summary - Optional.ofNullable(categories) - .map((item) -> !item.isEmpty() ? "\nCATEGORIES:" + resolveCategories() : null).orElse(""), // 5 - categories - Optional.ofNullable(duration) + /* 0 - tag */TAG, + /* 1 - uid */ Optional.ofNullable(uid).orElse(UUID.randomUUID().toString()) + "@" + domainName, + /* 2 - dtstamp */ now.format(DateAndTimeFormatter.getUtcDatetimeFormatter()), + /* 3 - start time */ start.atZone(ZoneId.systemDefault()).format(DateAndTimeFormatter.getUtcDatetimeFormatter()), + /* 4 - summary */ Optional.ofNullable(summary).map((item) -> "\nSUMMARY:" + item).orElse(""), + /* 5 - categories */ Optional.ofNullable(categories) + .map((item) -> !item.isEmpty() ? "\nCATEGORIES:" + resolveCategories() : null).orElse(""), + /* 6 - duration */ Optional.ofNullable(duration) .map((_duration) -> String.valueOf(_duration.getSeconds())) .orElse(Optional.ofNullable(end) .map((_end) -> String.valueOf(Duration.between(_end, start).getSeconds())) - .orElse("0")), // 6 - duration - Optional.ofNullable(classification).map((_classification) -> "\nCLASS:" + _classification + "\n").orElse(""), /* 7 - classification */ - Optional.ofNullable(comment).map((_comment) -> "\nCOMMENT:" + _comment + "\n").orElse(""), /* 8 - comment */ - Optional.ofNullable(location).map((_location) -> "\nLOCATION:" + _location).orElse("") /* 9 - location */, - Optional.ofNullable(percentComplete).map((_percentComplete) -> "\nPERCENT-COMPLETE:" + _percentComplete).orElse("") /* 10 = percentComplete */, - Optional.ofNullable(description).map((_description) -> "\nDESCRIPTION:" + _description).orElse("") /* 11 - description */, - Optional.ofNullable(priority).map((_priority) -> "\nPRIORITY:" + _priority).orElse("") /* 12 - priority */ + .orElse("0")), + /* 7 - classification */ Optional.ofNullable(classification).map((_classification) -> "\nCLASS:" + _classification + "\n").orElse(""), + /* 8 - comment */ Optional.ofNullable(comment).map((_comment) -> "\nCOMMENT:" + _comment + "\n").orElse(""), + /* 9 - location */ Optional.ofNullable(location).map((_location) -> "\nLOCATION:" + _location).orElse(""), + /* 10 = percentComplete */ Optional.ofNullable(percentComplete).map((_percentComplete) -> "\nPERCENT-COMPLETE:" + _percentComplete).orElse(""), + /* 11 - description */ Optional.ofNullable(description).map((_description) -> "\nDESCRIPTION:" + _description).orElse(""), + /* 12 - priority */ Optional.ofNullable(priority).map((_priority) -> "\nPRIORITY:" + _priority).orElse("") ); } From 8dd0dad8d972e1d92867ff3e4049bf67e4fc7880 Mon Sep 17 00:00:00 2001 From: Zihlu Wang Date: Fri, 26 Apr 2024 01:50:46 +0800 Subject: [PATCH 5/5] feat: Moved package name from cn.org.codecrafters to com.onixbyte --- devkit-core/build.gradle.kts | 4 +-- .../exceptions/NotImplementedException.java | 2 +- .../devkit/core/exceptions/package-info.java | 2 +- .../onixbyte}/devkit/core/package-info.java | 2 +- .../onixbyte}/devkit/package-info.java | 2 +- devkit-utils/README.md | 10 +++---- .../onixbyte}/devkit/utils/AesUtil.java | 2 +- .../onixbyte}/devkit/utils/Base64Util.java | 2 +- .../onixbyte}/devkit/utils/BranchUtil.java | 2 +- .../devkit/utils/ChainedCalcUtil.java | 2 +- .../onixbyte}/devkit/utils/HashUtil.java | 2 +- .../onixbyte}/devkit/utils/MapUtil.java | 2 +- .../onixbyte}/devkit/utils/package-info.java | 2 +- gradle.properties | 6 ++-- .../onixbyte}/guid/GuidCreator.java | 2 +- .../guid/exceptions/TimingException.java | 2 +- .../guid/exceptions/package-info.java | 4 +-- .../guid/impl/SnowflakeGuidCreator.java | 6 ++-- .../onixbyte}/guid/package-info.java | 2 +- property-guard-spring-boot-starter/README.md | 8 ++--- .../autoconfiguration/PropertyGuard.java | 4 +-- .../main/resources/META-INF/spring.factories | 2 +- simple-jwt-authzero/README.md | 2 +- .../authzero/AuthzeroTokenResolver.java | 29 ++++++++----------- .../config/AuthzeroTokenResolverConfig.java | 12 ++++---- .../authzero/config/package-info.java | 16 +++++----- .../simplejwt/authzero/package-info.java | 14 ++++----- .../test/TestAuthzeroTokenResolver.java | 6 ++-- .../onixbyte}/simplejwt/SecretCreator.java | 4 +-- .../onixbyte}/simplejwt/TokenPayload.java | 2 +- .../onixbyte}/simplejwt/TokenResolver.java | 3 +- .../annotations/ExcludeFromPayload.java | 2 +- .../simplejwt/annotations/TokenEnum.java | 4 +-- .../simplejwt/annotations/package-info.java | 2 +- .../simplejwt/config/TokenResolverConfig.java | 6 ++-- .../simplejwt/config/package-info.java | 2 +- .../simplejwt/constants/PredefinedKeys.java | 2 +- .../simplejwt/constants/TokenAlgorithm.java | 2 +- .../simplejwt/constants/TokenDataType.java | 2 +- .../simplejwt/constants/package-info.java | 2 +- .../UnsupportedAlgorithmException.java | 6 ++-- .../exceptions/WeakSecretException.java | 2 +- .../simplejwt/exceptions/package-info.java | 2 +- .../onixbyte}/simplejwt/package-info.java | 2 +- simple-jwt-jjwt/README.md | 2 +- .../simplejwt/jjwt/JjwtTokenResolver.java | 24 +++++++-------- .../jjwt/config/JjwtTokenResolverConfig.java | 14 ++++----- .../simplejwt/jjwt/config/package-info.java | 16 +++++----- .../simplejwt/jjwt/package-info.java | 14 ++++----- simple-jwt-spring-boot-starter/README.md | 2 +- ...uthzeroTokenResolverAutoConfiguration.java | 10 +++---- .../GuidAutoConfiguration.java | 8 ++--- .../JjwtTokenResolverAutoConfiguration.java | 10 +++---- .../conditions/GuidCreatorCondition.java | 6 ++-- .../autoconfiguration/package-info.java | 2 +- .../properties/SimpleJwtProperties.java | 13 +++++---- .../properties/package-info.java | 4 +-- ...ot.autoconfigure.AutoConfiguration.imports | 6 ++-- .../onixbyte}/webcal/WebCalendar.java | 4 +-- .../onixbyte}/webcal/WebCalendarNode.java | 5 ++-- .../webcal/config/Classification.java | 2 +- .../webcal/config/DateAndTimeFormatter.java | 2 +- .../onixbyte}/webcal/config/package-info.java | 4 +-- .../webcal/impl/WebCalendarEvent.java | 8 ++--- .../onixbyte}/webcal/package-info.java | 8 ++--- .../webcal/test/TestWebCalendar.java | 8 ++--- 66 files changed, 180 insertions(+), 188 deletions(-) rename devkit-core/src/main/java/{cn/org/codecrafters => com/onixbyte}/devkit/core/exceptions/NotImplementedException.java (98%) rename devkit-core/src/main/java/{cn/org/codecrafters => com/onixbyte}/devkit/core/exceptions/package-info.java (93%) rename devkit-core/src/main/java/{cn/org/codecrafters => com/onixbyte}/devkit/core/package-info.java (97%) rename devkit-core/src/main/java/{cn/org/codecrafters => com/onixbyte}/devkit/package-info.java (97%) rename devkit-utils/src/main/java/{cn/org/codecrafters => com/onixbyte}/devkit/utils/AesUtil.java (99%) rename devkit-utils/src/main/java/{cn/org/codecrafters => com/onixbyte}/devkit/utils/Base64Util.java (99%) rename devkit-utils/src/main/java/{cn/org/codecrafters => com/onixbyte}/devkit/utils/BranchUtil.java (99%) rename devkit-utils/src/main/java/{cn/org/codecrafters => com/onixbyte}/devkit/utils/ChainedCalcUtil.java (99%) rename devkit-utils/src/main/java/{cn/org/codecrafters => com/onixbyte}/devkit/utils/HashUtil.java (99%) rename devkit-utils/src/main/java/{cn/org/codecrafters => com/onixbyte}/devkit/utils/MapUtil.java (99%) rename devkit-utils/src/main/java/{cn/org/codecrafters => com/onixbyte}/devkit/utils/package-info.java (96%) rename guid/src/main/java/{cn/org/codecrafters => com/onixbyte}/guid/GuidCreator.java (97%) rename guid/src/main/java/{cn/org/codecrafters => com/onixbyte}/guid/exceptions/TimingException.java (97%) rename guid/src/main/java/{cn/org/codecrafters => com/onixbyte}/guid/exceptions/package-info.java (93%) rename guid/src/main/java/{cn/org/codecrafters => com/onixbyte}/guid/impl/SnowflakeGuidCreator.java (98%) rename guid/src/main/java/{cn/org/codecrafters => com/onixbyte}/guid/package-info.java (97%) rename property-guard-spring-boot-starter/src/main/java/{cn/org/codecrafters => com/onixbyte}/propertyguard/autoconfiguration/PropertyGuard.java (97%) rename simple-jwt-authzero/src/main/java/{cn/org/codecrafters => com/onixbyte}/simplejwt/authzero/AuthzeroTokenResolver.java (95%) rename simple-jwt-authzero/src/main/java/{cn/org/codecrafters => com/onixbyte}/simplejwt/authzero/config/AuthzeroTokenResolverConfig.java (93%) rename simple-jwt-authzero/src/main/java/{cn/org/codecrafters => com/onixbyte}/simplejwt/authzero/config/package-info.java (75%) rename simple-jwt-authzero/src/main/java/{cn/org/codecrafters => com/onixbyte}/simplejwt/authzero/package-info.java (82%) rename simple-jwt-authzero/src/test/java/{cn/org/codecrafters => com/onixbyte}/simplejwt/authzero/test/TestAuthzeroTokenResolver.java (85%) rename simple-jwt-facade/src/main/java/{cn/org/codecrafters => com/onixbyte}/simplejwt/SecretCreator.java (98%) rename simple-jwt-facade/src/main/java/{cn/org/codecrafters => com/onixbyte}/simplejwt/TokenPayload.java (97%) rename simple-jwt-facade/src/main/java/{cn/org/codecrafters => com/onixbyte}/simplejwt/TokenResolver.java (98%) rename simple-jwt-facade/src/main/java/{cn/org/codecrafters => com/onixbyte}/simplejwt/annotations/ExcludeFromPayload.java (97%) rename simple-jwt-facade/src/main/java/{cn/org/codecrafters => com/onixbyte}/simplejwt/annotations/TokenEnum.java (92%) rename simple-jwt-facade/src/main/java/{cn/org/codecrafters => com/onixbyte}/simplejwt/annotations/package-info.java (95%) rename simple-jwt-facade/src/main/java/{cn/org/codecrafters => com/onixbyte}/simplejwt/config/TokenResolverConfig.java (92%) rename simple-jwt-facade/src/main/java/{cn/org/codecrafters => com/onixbyte}/simplejwt/config/package-info.java (96%) rename simple-jwt-facade/src/main/java/{cn/org/codecrafters => com/onixbyte}/simplejwt/constants/PredefinedKeys.java (98%) rename simple-jwt-facade/src/main/java/{cn/org/codecrafters => com/onixbyte}/simplejwt/constants/TokenAlgorithm.java (97%) rename simple-jwt-facade/src/main/java/{cn/org/codecrafters => com/onixbyte}/simplejwt/constants/TokenDataType.java (96%) rename simple-jwt-facade/src/main/java/{cn/org/codecrafters => com/onixbyte}/simplejwt/constants/package-info.java (94%) rename simple-jwt-facade/src/main/java/{cn/org/codecrafters => com/onixbyte}/simplejwt/exceptions/UnsupportedAlgorithmException.java (97%) rename simple-jwt-facade/src/main/java/{cn/org/codecrafters => com/onixbyte}/simplejwt/exceptions/WeakSecretException.java (98%) rename simple-jwt-facade/src/main/java/{cn/org/codecrafters => com/onixbyte}/simplejwt/exceptions/package-info.java (97%) rename simple-jwt-facade/src/main/java/{cn/org/codecrafters => com/onixbyte}/simplejwt/package-info.java (97%) rename simple-jwt-jjwt/src/main/java/{cn/org/codecrafters => com/onixbyte}/simplejwt/jjwt/JjwtTokenResolver.java (96%) rename simple-jwt-jjwt/src/main/java/{cn/org/codecrafters => com/onixbyte}/simplejwt/jjwt/config/JjwtTokenResolverConfig.java (90%) rename simple-jwt-jjwt/src/main/java/{cn/org/codecrafters => com/onixbyte}/simplejwt/jjwt/config/package-info.java (77%) rename simple-jwt-jjwt/src/main/java/{cn/org/codecrafters => com/onixbyte}/simplejwt/jjwt/package-info.java (83%) rename simple-jwt-spring-boot-starter/src/main/java/{cn/org/codecrafters => com/onixbyte}/simplejwt/autoconfiguration/AuthzeroTokenResolverAutoConfiguration.java (93%) rename simple-jwt-spring-boot-starter/src/main/java/{cn/org/codecrafters => com/onixbyte}/simplejwt/autoconfiguration/GuidAutoConfiguration.java (79%) rename simple-jwt-spring-boot-starter/src/main/java/{cn/org/codecrafters => com/onixbyte}/simplejwt/autoconfiguration/JjwtTokenResolverAutoConfiguration.java (93%) rename simple-jwt-spring-boot-starter/src/main/java/{cn/org/codecrafters => com/onixbyte}/simplejwt/autoconfiguration/conditions/GuidCreatorCondition.java (87%) rename simple-jwt-spring-boot-starter/src/main/java/{cn/org/codecrafters => com/onixbyte}/simplejwt/autoconfiguration/package-info.java (96%) rename simple-jwt-spring-boot-starter/src/main/java/{cn/org/codecrafters => com/onixbyte}/simplejwt/autoconfiguration/properties/SimpleJwtProperties.java (87%) rename simple-jwt-spring-boot-starter/src/main/java/{cn/org/codecrafters => com/onixbyte}/simplejwt/autoconfiguration/properties/package-info.java (90%) rename webcal/src/main/java/{cn/org/codecrafters => com/onixbyte}/webcal/WebCalendar.java (98%) rename webcal/src/main/java/{cn/org/codecrafters => com/onixbyte}/webcal/WebCalendarNode.java (95%) rename webcal/src/main/java/{cn/org/codecrafters => com/onixbyte}/webcal/config/Classification.java (97%) rename webcal/src/main/java/{cn/org/codecrafters => com/onixbyte}/webcal/config/DateAndTimeFormatter.java (97%) rename webcal/src/main/java/{cn/org/codecrafters => com/onixbyte}/webcal/config/package-info.java (89%) rename webcal/src/main/java/{cn/org/codecrafters => com/onixbyte}/webcal/impl/WebCalendarEvent.java (97%) rename webcal/src/main/java/{cn/org/codecrafters => com/onixbyte}/webcal/package-info.java (83%) rename webcal/src/test/java/{cn/org/codecrafters => com/onixbyte}/webcal/test/TestWebCalendar.java (88%) diff --git a/devkit-core/build.gradle.kts b/devkit-core/build.gradle.kts index 4ad9fa6..7eee4fb 100644 --- a/devkit-core/build.gradle.kts +++ b/devkit-core/build.gradle.kts @@ -58,8 +58,8 @@ publishing { } scm { - connection = "scm:git:git://github.com:CodeCraftersCN/JDevKit.git" - developerConnection = "scm:git:git://github.com:CodeCraftersCN/JDevKit.git" + connection = "scm:git:git://github.com:OnixByte/JDevKit.git" + developerConnection = "scm:git:git://github.com:OnixByte/JDevKit.git" url = projectGithubUrl } diff --git a/devkit-core/src/main/java/cn/org/codecrafters/devkit/core/exceptions/NotImplementedException.java b/devkit-core/src/main/java/com/onixbyte/devkit/core/exceptions/NotImplementedException.java similarity index 98% rename from devkit-core/src/main/java/cn/org/codecrafters/devkit/core/exceptions/NotImplementedException.java rename to devkit-core/src/main/java/com/onixbyte/devkit/core/exceptions/NotImplementedException.java index 095ae72..39af4b4 100644 --- a/devkit-core/src/main/java/cn/org/codecrafters/devkit/core/exceptions/NotImplementedException.java +++ b/devkit-core/src/main/java/com/onixbyte/devkit/core/exceptions/NotImplementedException.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package cn.org.codecrafters.devkit.core.exceptions; +package com.onixbyte.devkit.core.exceptions; /** * The {@code NotImplementedException} class is a custom runtime exception diff --git a/devkit-core/src/main/java/cn/org/codecrafters/devkit/core/exceptions/package-info.java b/devkit-core/src/main/java/com/onixbyte/devkit/core/exceptions/package-info.java similarity index 93% rename from devkit-core/src/main/java/cn/org/codecrafters/devkit/core/exceptions/package-info.java rename to devkit-core/src/main/java/com/onixbyte/devkit/core/exceptions/package-info.java index dfac4fe..fa691c4 100644 --- a/devkit-core/src/main/java/cn/org/codecrafters/devkit/core/exceptions/package-info.java +++ b/devkit-core/src/main/java/com/onixbyte/devkit/core/exceptions/package-info.java @@ -21,4 +21,4 @@ * @author Zihlu Wang * @since 1.0.0 */ -package cn.org.codecrafters.devkit.core.exceptions; \ No newline at end of file +package com.onixbyte.devkit.core.exceptions; \ No newline at end of file diff --git a/devkit-core/src/main/java/cn/org/codecrafters/devkit/core/package-info.java b/devkit-core/src/main/java/com/onixbyte/devkit/core/package-info.java similarity index 97% rename from devkit-core/src/main/java/cn/org/codecrafters/devkit/core/package-info.java rename to devkit-core/src/main/java/com/onixbyte/devkit/core/package-info.java index a7e930f..145ca20 100644 --- a/devkit-core/src/main/java/cn/org/codecrafters/devkit/core/package-info.java +++ b/devkit-core/src/main/java/com/onixbyte/devkit/core/package-info.java @@ -40,4 +40,4 @@ * * @since 1.0.0 */ -package cn.org.codecrafters.devkit.core; \ No newline at end of file +package com.onixbyte.devkit.core; \ No newline at end of file diff --git a/devkit-core/src/main/java/cn/org/codecrafters/devkit/package-info.java b/devkit-core/src/main/java/com/onixbyte/devkit/package-info.java similarity index 97% rename from devkit-core/src/main/java/cn/org/codecrafters/devkit/package-info.java rename to devkit-core/src/main/java/com/onixbyte/devkit/package-info.java index 90647f4..36345b7 100644 --- a/devkit-core/src/main/java/cn/org/codecrafters/devkit/package-info.java +++ b/devkit-core/src/main/java/com/onixbyte/devkit/package-info.java @@ -39,4 +39,4 @@ * * @since 1.0.0 */ -package cn.org.codecrafters.devkit; \ No newline at end of file +package com.onixbyte.devkit; \ No newline at end of file diff --git a/devkit-utils/README.md b/devkit-utils/README.md index d87e9c3..540284a 100644 --- a/devkit-utils/README.md +++ b/devkit-utils/README.md @@ -51,7 +51,7 @@ implementation 'cn.org.codecrafters:devkit-utils:${devkit-utils.version}' If you are trying to encode a string to Base64 string or decode a Base64 string to normal string, then you can try this: ```java -import cn.org.codecrafters.devkit.utils.Base64Util; +import utils.com.onixbyte.devkit.Base64Util; // To reduce sample codes, let me use the simplified main method that is upcoming in Java 21 void main(String... args) { @@ -68,7 +68,7 @@ void main(String... args) { I believe those `if...else...` blocks make you headache, and Java imported lambda since Java 8, why not try to replace those `if...else` with lambda expressions? ```java -import cn.org.codecrafters.devkit.utils.BranchUtil; +import utils.com.onixbyte.devkit.BranchUtil; void main(String... args) { var a = 1; @@ -106,7 +106,7 @@ If you have faced high-precision mathematical calculation in Java, you might kno In Java, we usually do high-precision mathematical calculation with `BigDecimal` which is quite tricky when using it. ```java -import cn.org.codecrafters.devkit.utils.ChainedCalcUtil; +import utils.com.onixbyte.devkit.ChainedCalcUtil; void main(String... args) { // If you are trying to calculate the expression of 1 * 2 / 2 - 3 + 4 @@ -133,7 +133,7 @@ This `HashUtil` supports these following hash or message digest algorithms: If you want to run a hash calculation to a string, you can use the following codes: ```java -import cn.org.codecrafters.devkit.utils.HashUtil; +import utils.com.onixbyte.devkit.HashUtil; void main(String... args) { var plaintext = "This is a plain text"; @@ -156,7 +156,7 @@ Imagine you are developing a website where users can register an account and sto In order to store the Map in a database, you need to convert the Map to an Object. An Object is a generic data type that can store any type of data. ```java -import cn.org.codecrafters.devkit.utils.MapUtil; +import utils.com.onixbyte.devkit.MapUtil; class Data { private String name; diff --git a/devkit-utils/src/main/java/cn/org/codecrafters/devkit/utils/AesUtil.java b/devkit-utils/src/main/java/com/onixbyte/devkit/utils/AesUtil.java similarity index 99% rename from devkit-utils/src/main/java/cn/org/codecrafters/devkit/utils/AesUtil.java rename to devkit-utils/src/main/java/com/onixbyte/devkit/utils/AesUtil.java index 93dcd3c..23d2dbf 100644 --- a/devkit-utils/src/main/java/cn/org/codecrafters/devkit/utils/AesUtil.java +++ b/devkit-utils/src/main/java/com/onixbyte/devkit/utils/AesUtil.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package cn.org.codecrafters.devkit.utils; +package com.onixbyte.devkit.utils; import lombok.extern.slf4j.Slf4j; diff --git a/devkit-utils/src/main/java/cn/org/codecrafters/devkit/utils/Base64Util.java b/devkit-utils/src/main/java/com/onixbyte/devkit/utils/Base64Util.java similarity index 99% rename from devkit-utils/src/main/java/cn/org/codecrafters/devkit/utils/Base64Util.java rename to devkit-utils/src/main/java/com/onixbyte/devkit/utils/Base64Util.java index db20548..a74dcba 100644 --- a/devkit-utils/src/main/java/cn/org/codecrafters/devkit/utils/Base64Util.java +++ b/devkit-utils/src/main/java/com/onixbyte/devkit/utils/Base64Util.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package cn.org.codecrafters.devkit.utils; +package com.onixbyte.devkit.utils; import java.nio.charset.Charset; import java.nio.charset.StandardCharsets; diff --git a/devkit-utils/src/main/java/cn/org/codecrafters/devkit/utils/BranchUtil.java b/devkit-utils/src/main/java/com/onixbyte/devkit/utils/BranchUtil.java similarity index 99% rename from devkit-utils/src/main/java/cn/org/codecrafters/devkit/utils/BranchUtil.java rename to devkit-utils/src/main/java/com/onixbyte/devkit/utils/BranchUtil.java index cae5159..0c42c01 100644 --- a/devkit-utils/src/main/java/cn/org/codecrafters/devkit/utils/BranchUtil.java +++ b/devkit-utils/src/main/java/com/onixbyte/devkit/utils/BranchUtil.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package cn.org.codecrafters.devkit.utils; +package com.onixbyte.devkit.utils; import java.util.Arrays; import java.util.Objects; diff --git a/devkit-utils/src/main/java/cn/org/codecrafters/devkit/utils/ChainedCalcUtil.java b/devkit-utils/src/main/java/com/onixbyte/devkit/utils/ChainedCalcUtil.java similarity index 99% rename from devkit-utils/src/main/java/cn/org/codecrafters/devkit/utils/ChainedCalcUtil.java rename to devkit-utils/src/main/java/com/onixbyte/devkit/utils/ChainedCalcUtil.java index 4757914..6b3a942 100644 --- a/devkit-utils/src/main/java/cn/org/codecrafters/devkit/utils/ChainedCalcUtil.java +++ b/devkit-utils/src/main/java/com/onixbyte/devkit/utils/ChainedCalcUtil.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package cn.org.codecrafters.devkit.utils; +package com.onixbyte.devkit.utils; import lombok.Getter; diff --git a/devkit-utils/src/main/java/cn/org/codecrafters/devkit/utils/HashUtil.java b/devkit-utils/src/main/java/com/onixbyte/devkit/utils/HashUtil.java similarity index 99% rename from devkit-utils/src/main/java/cn/org/codecrafters/devkit/utils/HashUtil.java rename to devkit-utils/src/main/java/com/onixbyte/devkit/utils/HashUtil.java index 063e2e5..76c4c25 100644 --- a/devkit-utils/src/main/java/cn/org/codecrafters/devkit/utils/HashUtil.java +++ b/devkit-utils/src/main/java/com/onixbyte/devkit/utils/HashUtil.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package cn.org.codecrafters.devkit.utils; +package com.onixbyte.devkit.utils; import java.nio.charset.Charset; import java.nio.charset.StandardCharsets; diff --git a/devkit-utils/src/main/java/cn/org/codecrafters/devkit/utils/MapUtil.java b/devkit-utils/src/main/java/com/onixbyte/devkit/utils/MapUtil.java similarity index 99% rename from devkit-utils/src/main/java/cn/org/codecrafters/devkit/utils/MapUtil.java rename to devkit-utils/src/main/java/com/onixbyte/devkit/utils/MapUtil.java index 3e09f49..d81b54f 100644 --- a/devkit-utils/src/main/java/cn/org/codecrafters/devkit/utils/MapUtil.java +++ b/devkit-utils/src/main/java/com/onixbyte/devkit/utils/MapUtil.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package cn.org.codecrafters.devkit.utils; +package com.onixbyte.devkit.utils; import lombok.extern.slf4j.Slf4j; diff --git a/devkit-utils/src/main/java/cn/org/codecrafters/devkit/utils/package-info.java b/devkit-utils/src/main/java/com/onixbyte/devkit/utils/package-info.java similarity index 96% rename from devkit-utils/src/main/java/cn/org/codecrafters/devkit/utils/package-info.java rename to devkit-utils/src/main/java/com/onixbyte/devkit/utils/package-info.java index a32280e..3241026 100644 --- a/devkit-utils/src/main/java/cn/org/codecrafters/devkit/utils/package-info.java +++ b/devkit-utils/src/main/java/com/onixbyte/devkit/utils/package-info.java @@ -25,4 +25,4 @@ * @author Zihlu Wang * @since 1.0.0 */ -package cn.org.codecrafters.devkit.utils; \ No newline at end of file +package com.onixbyte.devkit.utils; \ No newline at end of file diff --git a/gradle.properties b/gradle.properties index 68a1400..408483d 100644 --- a/gradle.properties +++ b/gradle.properties @@ -26,9 +26,9 @@ okhttpVersion=4.12.0 springVersion=6.1.3 springBootVersion=3.2.3 -buildGroupId=cn.org.codecrafters +buildGroupId=com.onixbyte buildVersion=1.4.0 -projectUrl=https://codecrafters.org.cn/JDevKit -projectGithubUrl=https://github.com/CodeCraftersCN/JDevKit +projectUrl=https://onixbyte.com/JDevKit +projectGithubUrl=https://github.com/OnixByte/JDevKit licenseName=The Apache License, Version 2.0 licenseUrl=https://www.apache.org/licenses/LICENSE-2.0.txt \ No newline at end of file diff --git a/guid/src/main/java/cn/org/codecrafters/guid/GuidCreator.java b/guid/src/main/java/com/onixbyte/guid/GuidCreator.java similarity index 97% rename from guid/src/main/java/cn/org/codecrafters/guid/GuidCreator.java rename to guid/src/main/java/com/onixbyte/guid/GuidCreator.java index 8208b26..affebe7 100644 --- a/guid/src/main/java/cn/org/codecrafters/guid/GuidCreator.java +++ b/guid/src/main/java/com/onixbyte/guid/GuidCreator.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package cn.org.codecrafters.guid; +package com.onixbyte.guid; /** * The {@code GuidCreator} is a generic interface for generating globally unique diff --git a/guid/src/main/java/cn/org/codecrafters/guid/exceptions/TimingException.java b/guid/src/main/java/com/onixbyte/guid/exceptions/TimingException.java similarity index 97% rename from guid/src/main/java/cn/org/codecrafters/guid/exceptions/TimingException.java rename to guid/src/main/java/com/onixbyte/guid/exceptions/TimingException.java index 96a90ba..35de6e9 100644 --- a/guid/src/main/java/cn/org/codecrafters/guid/exceptions/TimingException.java +++ b/guid/src/main/java/com/onixbyte/guid/exceptions/TimingException.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package cn.org.codecrafters.guid.exceptions; +package com.onixbyte.guid.exceptions; /** * The {@code TimingException} class represents an exception that is thrown diff --git a/guid/src/main/java/cn/org/codecrafters/guid/exceptions/package-info.java b/guid/src/main/java/com/onixbyte/guid/exceptions/package-info.java similarity index 93% rename from guid/src/main/java/cn/org/codecrafters/guid/exceptions/package-info.java rename to guid/src/main/java/com/onixbyte/guid/exceptions/package-info.java index e12ea58..e509f02 100644 --- a/guid/src/main/java/cn/org/codecrafters/guid/exceptions/package-info.java +++ b/guid/src/main/java/com/onixbyte/guid/exceptions/package-info.java @@ -21,7 +21,7 @@ * during the generation or processing of global unique identifiers (GUIDs). *

    * The main exception class in this package is {@link - * cn.org.codecrafters.guid.exceptions.TimingException}, which is a runtime + * com.onixbyte.guid.exceptions.TimingException}, which is a runtime * exception and serves as the base exception for all other custom exceptions * related to GUID generation. *

    @@ -38,4 +38,4 @@ * * @since 1.0.0 */ -package cn.org.codecrafters.guid.exceptions; \ No newline at end of file +package com.onixbyte.guid.exceptions; \ No newline at end of file diff --git a/guid/src/main/java/cn/org/codecrafters/guid/impl/SnowflakeGuidCreator.java b/guid/src/main/java/com/onixbyte/guid/impl/SnowflakeGuidCreator.java similarity index 98% rename from guid/src/main/java/cn/org/codecrafters/guid/impl/SnowflakeGuidCreator.java rename to guid/src/main/java/com/onixbyte/guid/impl/SnowflakeGuidCreator.java index 097e56a..1278830 100644 --- a/guid/src/main/java/cn/org/codecrafters/guid/impl/SnowflakeGuidCreator.java +++ b/guid/src/main/java/com/onixbyte/guid/impl/SnowflakeGuidCreator.java @@ -15,10 +15,10 @@ * limitations under the License. */ -package cn.org.codecrafters.guid.impl; +package com.onixbyte.guid.impl; -import cn.org.codecrafters.guid.GuidCreator; -import cn.org.codecrafters.guid.exceptions.TimingException; +import com.onixbyte.guid.GuidCreator; +import com.onixbyte.guid.exceptions.TimingException; import java.time.LocalDateTime; import java.time.ZoneId; diff --git a/guid/src/main/java/cn/org/codecrafters/guid/package-info.java b/guid/src/main/java/com/onixbyte/guid/package-info.java similarity index 97% rename from guid/src/main/java/cn/org/codecrafters/guid/package-info.java rename to guid/src/main/java/com/onixbyte/guid/package-info.java index a9e9def..3c8be71 100644 --- a/guid/src/main/java/cn/org/codecrafters/guid/package-info.java +++ b/guid/src/main/java/com/onixbyte/guid/package-info.java @@ -32,4 +32,4 @@ * * @since 1.0.0 */ -package cn.org.codecrafters.guid; \ No newline at end of file +package com.onixbyte.guid; \ No newline at end of file diff --git a/property-guard-spring-boot-starter/README.md b/property-guard-spring-boot-starter/README.md index baf2be1..51e9e52 100644 --- a/property-guard-spring-boot-starter/README.md +++ b/property-guard-spring-boot-starter/README.md @@ -48,12 +48,12 @@ implementation 'cn.org.codecrafters:property-guard-spring-boot-starter:${propert ## Usage -First, you need a 16-bit-long secret. If you don't have a good way to get a secret, you could consider using our `cn.org.codecrafters.devkit.utils.AesUtil` or `cn.org.codecrafters.simplejwt.SecretCreator` to create a secret. +First, you need a 16-bit-long secret. If you don't have a good way to get a secret, you could consider using our `utils.com.onixbyte.devkit.AesUtil` or `com.onixbyte.simplejwt.SecretCreator` to create a secret. For example: ```java -import cn.org.codecrafters.devkit.utils.AesUtil; -import cn.org.codecrafters.simplejwt.SecretCreator; +import utils.com.onixbyte.devkit.AesUtil; +import com.onixbyte.simplejwt.SecretCreator; class GenerateRandomKeySample { public static void main(String[] args) { @@ -66,7 +66,7 @@ class GenerateRandomKeySample { Then, remember this secret and encrypt the configuration properties that are required high security. For example: ```java -import cn.org.codecrafters.devkit.utils.AesUtil; +import utils.com.onixbyte.devkit.AesUtil; class EncryptSample { public static void main(String[] args) { diff --git a/property-guard-spring-boot-starter/src/main/java/cn/org/codecrafters/propertyguard/autoconfiguration/PropertyGuard.java b/property-guard-spring-boot-starter/src/main/java/com/onixbyte/propertyguard/autoconfiguration/PropertyGuard.java similarity index 97% rename from property-guard-spring-boot-starter/src/main/java/cn/org/codecrafters/propertyguard/autoconfiguration/PropertyGuard.java rename to property-guard-spring-boot-starter/src/main/java/com/onixbyte/propertyguard/autoconfiguration/PropertyGuard.java index 09bae3e..da8fa06 100644 --- a/property-guard-spring-boot-starter/src/main/java/cn/org/codecrafters/propertyguard/autoconfiguration/PropertyGuard.java +++ b/property-guard-spring-boot-starter/src/main/java/com/onixbyte/propertyguard/autoconfiguration/PropertyGuard.java @@ -15,9 +15,9 @@ * limitations under the License. */ -package cn.org.codecrafters.propertyguard.autoconfiguration; +package com.onixbyte.propertyguard.autoconfiguration; -import cn.org.codecrafters.devkit.utils.AesUtil; +import com.onixbyte.devkit.utils.AesUtil; import org.springframework.boot.SpringApplication; import org.springframework.boot.env.EnvironmentPostProcessor; import org.springframework.boot.env.OriginTrackedMapPropertySource; diff --git a/property-guard-spring-boot-starter/src/main/resources/META-INF/spring.factories b/property-guard-spring-boot-starter/src/main/resources/META-INF/spring.factories index 82e039a..4545f73 100644 --- a/property-guard-spring-boot-starter/src/main/resources/META-INF/spring.factories +++ b/property-guard-spring-boot-starter/src/main/resources/META-INF/spring.factories @@ -1 +1 @@ -org.springframework.boot.env.EnvironmentPostProcessor=cn.org.codecrafters.propertyguard.autoconfiguration.PropertyGuard \ No newline at end of file +org.springframework.boot.env.EnvironmentPostProcessor=com.onixbyte.propertyguard.autoconfiguration.PropertyGuard \ No newline at end of file diff --git a/simple-jwt-authzero/README.md b/simple-jwt-authzero/README.md index 4c9f003..fbebcda 100644 --- a/simple-jwt-authzero/README.md +++ b/simple-jwt-authzero/README.md @@ -50,7 +50,7 @@ implementation 'cn.org.codecrafters:simple-jwt-authzero:${simple-jwt-authzero.ve ## Use the `AuthzeroTokenResolver` -We have implemented `TokenResolver` to make sure you can add JWT to your Java application as soon as possible. All you need to do is to create an instance of `cn.org.codecrafters.simplejwt.authzero.AuthzeroTokenResolver` and other operations to JWT could follow our instruction in [`simple-jwt-facade`](../simple-jwt-facade/README.md). +We have implemented `TokenResolver` to make sure you can add JWT to your Java application as soon as possible. All you need to do is to create an instance of `com.onixbyte.simplejwt.authzero.AuthzeroTokenResolver` and other operations to JWT could follow our instruction in [`simple-jwt-facade`](../simple-jwt-facade/README.md). ## Contact diff --git a/simple-jwt-authzero/src/main/java/cn/org/codecrafters/simplejwt/authzero/AuthzeroTokenResolver.java b/simple-jwt-authzero/src/main/java/com/onixbyte/simplejwt/authzero/AuthzeroTokenResolver.java similarity index 95% rename from simple-jwt-authzero/src/main/java/cn/org/codecrafters/simplejwt/authzero/AuthzeroTokenResolver.java rename to simple-jwt-authzero/src/main/java/com/onixbyte/simplejwt/authzero/AuthzeroTokenResolver.java index a3def4f..48e9856 100644 --- a/simple-jwt-authzero/src/main/java/cn/org/codecrafters/simplejwt/authzero/AuthzeroTokenResolver.java +++ b/simple-jwt-authzero/src/main/java/com/onixbyte/simplejwt/authzero/AuthzeroTokenResolver.java @@ -15,34 +15,29 @@ * limitations under the License. */ -package cn.org.codecrafters.simplejwt.authzero; +package com.onixbyte.simplejwt.authzero; -import cn.org.codecrafters.devkit.utils.Base64Util; -import cn.org.codecrafters.guid.GuidCreator; -import cn.org.codecrafters.simplejwt.SecretCreator; -import cn.org.codecrafters.simplejwt.TokenPayload; -import cn.org.codecrafters.simplejwt.TokenResolver; -import cn.org.codecrafters.simplejwt.annotations.ExcludeFromPayload; -import cn.org.codecrafters.simplejwt.annotations.TokenEnum; -import cn.org.codecrafters.simplejwt.authzero.config.AuthzeroTokenResolverConfig; -import cn.org.codecrafters.simplejwt.config.TokenResolverConfig; -import cn.org.codecrafters.simplejwt.constants.PredefinedKeys; -import cn.org.codecrafters.simplejwt.constants.TokenAlgorithm; +import com.onixbyte.devkit.utils.Base64Util; +import com.onixbyte.guid.GuidCreator; +import com.onixbyte.simplejwt.SecretCreator; +import com.onixbyte.simplejwt.TokenPayload; +import com.onixbyte.simplejwt.TokenResolver; +import com.onixbyte.simplejwt.annotations.ExcludeFromPayload; +import com.onixbyte.simplejwt.annotations.TokenEnum; +import com.onixbyte.simplejwt.authzero.config.AuthzeroTokenResolverConfig; +import com.onixbyte.simplejwt.constants.PredefinedKeys; +import com.onixbyte.simplejwt.constants.TokenAlgorithm; import com.auth0.jwt.JWT; import com.auth0.jwt.JWTCreator; import com.auth0.jwt.algorithms.Algorithm; -import com.auth0.jwt.interfaces.Claim; import com.auth0.jwt.interfaces.DecodedJWT; import com.auth0.jwt.interfaces.JWTVerifier; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.core.type.TypeReference; -import com.fasterxml.jackson.databind.JsonMappingException; -import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.node.ObjectNode; import lombok.extern.slf4j.Slf4j; -import java.lang.reflect.Field; import java.lang.reflect.InvocationTargetException; import java.time.Duration; import java.time.LocalDateTime; @@ -51,7 +46,7 @@ import java.util.*; /** * The {@code AuthzeroTokenResolver} class is an implementation of the {@link - * cn.org.codecrafters.simplejwt.TokenResolver} interface. It uses the {@code + * TokenResolver} interface. It uses the {@code * com.auth0:java-jwt} library to handle JSON Web Token (JWT) resolution. This * resolver provides functionality to create, extract, verify, and renew JWT * tokens using various algorithms and custom payload data. diff --git a/simple-jwt-authzero/src/main/java/cn/org/codecrafters/simplejwt/authzero/config/AuthzeroTokenResolverConfig.java b/simple-jwt-authzero/src/main/java/com/onixbyte/simplejwt/authzero/config/AuthzeroTokenResolverConfig.java similarity index 93% rename from simple-jwt-authzero/src/main/java/cn/org/codecrafters/simplejwt/authzero/config/AuthzeroTokenResolverConfig.java rename to simple-jwt-authzero/src/main/java/com/onixbyte/simplejwt/authzero/config/AuthzeroTokenResolverConfig.java index 463be4c..a276195 100644 --- a/simple-jwt-authzero/src/main/java/cn/org/codecrafters/simplejwt/authzero/config/AuthzeroTokenResolverConfig.java +++ b/simple-jwt-authzero/src/main/java/com/onixbyte/simplejwt/authzero/config/AuthzeroTokenResolverConfig.java @@ -15,13 +15,13 @@ * limitations under the License. */ -package cn.org.codecrafters.simplejwt.authzero.config; +package com.onixbyte.simplejwt.authzero.config; -import cn.org.codecrafters.simplejwt.TokenResolver; -import cn.org.codecrafters.simplejwt.authzero.AuthzeroTokenResolver; -import cn.org.codecrafters.simplejwt.config.TokenResolverConfig; -import cn.org.codecrafters.simplejwt.constants.TokenAlgorithm; -import cn.org.codecrafters.simplejwt.exceptions.UnsupportedAlgorithmException; +import com.onixbyte.simplejwt.TokenResolver; +import com.onixbyte.simplejwt.authzero.AuthzeroTokenResolver; +import com.onixbyte.simplejwt.config.TokenResolverConfig; +import com.onixbyte.simplejwt.constants.TokenAlgorithm; +import com.onixbyte.simplejwt.exceptions.UnsupportedAlgorithmException; import com.auth0.jwt.algorithms.Algorithm; import java.util.HashMap; diff --git a/simple-jwt-authzero/src/main/java/cn/org/codecrafters/simplejwt/authzero/config/package-info.java b/simple-jwt-authzero/src/main/java/com/onixbyte/simplejwt/authzero/config/package-info.java similarity index 75% rename from simple-jwt-authzero/src/main/java/cn/org/codecrafters/simplejwt/authzero/config/package-info.java rename to simple-jwt-authzero/src/main/java/com/onixbyte/simplejwt/authzero/config/package-info.java index 5d6a0ae..792933d 100644 --- a/simple-jwt-authzero/src/main/java/cn/org/codecrafters/simplejwt/authzero/config/package-info.java +++ b/simple-jwt-authzero/src/main/java/com/onixbyte/simplejwt/authzero/config/package-info.java @@ -18,37 +18,37 @@ /** * The package {@code cn.org.codecrafters.simplejwt.authzero.config} contains * configuration classes related to the {@link - * cn.org.codecrafters.simplejwt.authzero.AuthzeroTokenResolver} + * com.onixbyte.simplejwt.authzero.AuthzeroTokenResolver} * implementation. *

    * The classes in this package provide configuration options and settings for - * the {@link cn.org.codecrafters.simplejwt.authzero.AuthzeroTokenResolver}, + * the {@link com.onixbyte.simplejwt.authzero.AuthzeroTokenResolver}, * which is used for resolving JSON Web Tokens (JWT) using the Auth0 library. *

    * The {@link - * cn.org.codecrafters.simplejwt.authzero.config.AuthzeroTokenResolverConfig} + * com.onixbyte.simplejwt.authzero.config.AuthzeroTokenResolverConfig} * class is a configuration class that defines the mapping between standard - * {@link cn.org.codecrafters.simplejwt.constants.TokenAlgorithm} and the + * {@link com.onixbyte.simplejwt.constants.TokenAlgorithm} and the * corresponding function implementation used by {@link - * cn.org.codecrafters.simplejwt.authzero.AuthzeroTokenResolver} for handling + * com.onixbyte.simplejwt.authzero.AuthzeroTokenResolver} for handling * JWT algorithms. It enables developers to specify and customize the * algorithm functions according to the chosen JWT algorithm and the library * being used. *

    * The configuration options in this package help developers integrate and * configure the {@link - * cn.org.codecrafters.simplejwt.authzero.AuthzeroTokenResolver} seamlessly + * com.onixbyte.simplejwt.authzero.AuthzeroTokenResolver} seamlessly * into their Spring Boot applications. Developers can fine-tune the token * resolution process and customize algorithm handling to align with their * specific requirements and desired level of security. *

    * It is recommended to explore the classes in this package to understand how * to configure and use the {@link - * cn.org.codecrafters.simplejwt.authzero.AuthzeroTokenResolver} effectively + * com.onixbyte.simplejwt.authzero.AuthzeroTokenResolver} effectively * in the Spring Boot environment to handle JWT authentication and * authorisation securely and efficiently. * * @since 1.0.0 */ -package cn.org.codecrafters.simplejwt.authzero.config; \ No newline at end of file +package com.onixbyte.simplejwt.authzero.config; \ No newline at end of file diff --git a/simple-jwt-authzero/src/main/java/cn/org/codecrafters/simplejwt/authzero/package-info.java b/simple-jwt-authzero/src/main/java/com/onixbyte/simplejwt/authzero/package-info.java similarity index 82% rename from simple-jwt-authzero/src/main/java/cn/org/codecrafters/simplejwt/authzero/package-info.java rename to simple-jwt-authzero/src/main/java/com/onixbyte/simplejwt/authzero/package-info.java index 11df0aa..ac8e720 100644 --- a/simple-jwt-authzero/src/main/java/cn/org/codecrafters/simplejwt/authzero/package-info.java +++ b/simple-jwt-authzero/src/main/java/com/onixbyte/simplejwt/authzero/package-info.java @@ -25,15 +25,15 @@ * the {@code com.auth0:java-jwt} library. *

    * The main class in this package is the {@link - * cn.org.codecrafters.simplejwt.authzero.AuthzeroTokenResolver}, which - * implements the {@link cn.org.codecrafters.simplejwt.TokenResolver} interface + * com.onixbyte.simplejwt.authzero.AuthzeroTokenResolver}, which + * implements the {@link com.onixbyte.simplejwt.TokenResolver} interface * and uses the {@code com.auth0:java-jwt} library to handle JWT operations. It * provides the functionality to create, validate, and extract JWTs using the * {@code com.auth0:java-jwt} library. Developers can use this class as the * main token resolver in the Simple JWT project when integrating {@code * com.auth0:java-jwt} as the JWT management library. *

    - * The {@link cn.org.codecrafters.simplejwt.authzero.AuthzeroTokenResolver} + * The {@link com.onixbyte.simplejwt.authzero.AuthzeroTokenResolver} * relies on the {@code com.auth0:java-jwt} library to handle the underlying * JWT operations, including token creation, validation, and extraction. It * utilizes the {@code com.auth0:java-jwt} {@link @@ -41,12 +41,12 @@ * algorithms for JWT signing and verification. *

    * To use the {@link - * cn.org.codecrafters.simplejwt.authzero.AuthzeroTokenResolver}, developers + * com.onixbyte.simplejwt.authzero.AuthzeroTokenResolver}, developers * must provide the necessary configurations and dependencies, such as the - * {@link cn.org.codecrafters.guid.GuidCreator} for generating unique JWT IDs + * {@link com.onixbyte.guid.GuidCreator} for generating unique JWT IDs * (JTI), the supported algorithm function, the issuer name, and the secret key * used for token signing and validation. The {@link - * cn.org.codecrafters.simplejwt.authzero.config.AuthzeroTokenResolverConfig} + * com.onixbyte.simplejwt.authzero.config.AuthzeroTokenResolverConfig} * class provides a convenient way to configure these dependencies. *

    * Developers using the {@code com.auth0:java-jwt} integration should be @@ -56,4 +56,4 @@ * * @since 1.0.0 */ -package cn.org.codecrafters.simplejwt.authzero; \ No newline at end of file +package com.onixbyte.simplejwt.authzero; \ No newline at end of file diff --git a/simple-jwt-authzero/src/test/java/cn/org/codecrafters/simplejwt/authzero/test/TestAuthzeroTokenResolver.java b/simple-jwt-authzero/src/test/java/com/onixbyte/simplejwt/authzero/test/TestAuthzeroTokenResolver.java similarity index 85% rename from simple-jwt-authzero/src/test/java/cn/org/codecrafters/simplejwt/authzero/test/TestAuthzeroTokenResolver.java rename to simple-jwt-authzero/src/test/java/com/onixbyte/simplejwt/authzero/test/TestAuthzeroTokenResolver.java index 52e2f18..c4461f5 100644 --- a/simple-jwt-authzero/src/test/java/cn/org/codecrafters/simplejwt/authzero/test/TestAuthzeroTokenResolver.java +++ b/simple-jwt-authzero/src/test/java/com/onixbyte/simplejwt/authzero/test/TestAuthzeroTokenResolver.java @@ -15,10 +15,10 @@ * limitations under the License. */ -package cn.org.codecrafters.simplejwt.authzero.test; +package com.onixbyte.simplejwt.authzero.test; -import cn.org.codecrafters.simplejwt.authzero.AuthzeroTokenResolver; -import cn.org.codecrafters.simplejwt.constants.TokenAlgorithm; +import com.onixbyte.simplejwt.authzero.AuthzeroTokenResolver; +import com.onixbyte.simplejwt.constants.TokenAlgorithm; import org.junit.jupiter.api.Test; import java.time.Duration; diff --git a/simple-jwt-facade/src/main/java/cn/org/codecrafters/simplejwt/SecretCreator.java b/simple-jwt-facade/src/main/java/com/onixbyte/simplejwt/SecretCreator.java similarity index 98% rename from simple-jwt-facade/src/main/java/cn/org/codecrafters/simplejwt/SecretCreator.java rename to simple-jwt-facade/src/main/java/com/onixbyte/simplejwt/SecretCreator.java index c3478fa..40c1fc7 100644 --- a/simple-jwt-facade/src/main/java/cn/org/codecrafters/simplejwt/SecretCreator.java +++ b/simple-jwt-facade/src/main/java/com/onixbyte/simplejwt/SecretCreator.java @@ -15,9 +15,9 @@ * limitations under the License. */ -package cn.org.codecrafters.simplejwt; +package com.onixbyte.simplejwt; -import cn.org.codecrafters.simplejwt.exceptions.WeakSecretException; +import com.onixbyte.simplejwt.exceptions.WeakSecretException; import java.util.Random; diff --git a/simple-jwt-facade/src/main/java/cn/org/codecrafters/simplejwt/TokenPayload.java b/simple-jwt-facade/src/main/java/com/onixbyte/simplejwt/TokenPayload.java similarity index 97% rename from simple-jwt-facade/src/main/java/cn/org/codecrafters/simplejwt/TokenPayload.java rename to simple-jwt-facade/src/main/java/com/onixbyte/simplejwt/TokenPayload.java index 02901f2..26c47ee 100644 --- a/simple-jwt-facade/src/main/java/cn/org/codecrafters/simplejwt/TokenPayload.java +++ b/simple-jwt-facade/src/main/java/com/onixbyte/simplejwt/TokenPayload.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package cn.org.codecrafters.simplejwt; +package com.onixbyte.simplejwt; import java.util.Map; diff --git a/simple-jwt-facade/src/main/java/cn/org/codecrafters/simplejwt/TokenResolver.java b/simple-jwt-facade/src/main/java/com/onixbyte/simplejwt/TokenResolver.java similarity index 98% rename from simple-jwt-facade/src/main/java/cn/org/codecrafters/simplejwt/TokenResolver.java rename to simple-jwt-facade/src/main/java/com/onixbyte/simplejwt/TokenResolver.java index d0df2cb..d88a89d 100644 --- a/simple-jwt-facade/src/main/java/cn/org/codecrafters/simplejwt/TokenResolver.java +++ b/simple-jwt-facade/src/main/java/com/onixbyte/simplejwt/TokenResolver.java @@ -15,9 +15,8 @@ * limitations under the License. */ -package cn.org.codecrafters.simplejwt; +package com.onixbyte.simplejwt; -import java.lang.reflect.InvocationTargetException; import java.time.Duration; import java.util.Map; diff --git a/simple-jwt-facade/src/main/java/cn/org/codecrafters/simplejwt/annotations/ExcludeFromPayload.java b/simple-jwt-facade/src/main/java/com/onixbyte/simplejwt/annotations/ExcludeFromPayload.java similarity index 97% rename from simple-jwt-facade/src/main/java/cn/org/codecrafters/simplejwt/annotations/ExcludeFromPayload.java rename to simple-jwt-facade/src/main/java/com/onixbyte/simplejwt/annotations/ExcludeFromPayload.java index 72dac57..614f33e 100644 --- a/simple-jwt-facade/src/main/java/cn/org/codecrafters/simplejwt/annotations/ExcludeFromPayload.java +++ b/simple-jwt-facade/src/main/java/com/onixbyte/simplejwt/annotations/ExcludeFromPayload.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package cn.org.codecrafters.simplejwt.annotations; +package com.onixbyte.simplejwt.annotations; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; diff --git a/simple-jwt-facade/src/main/java/cn/org/codecrafters/simplejwt/annotations/TokenEnum.java b/simple-jwt-facade/src/main/java/com/onixbyte/simplejwt/annotations/TokenEnum.java similarity index 92% rename from simple-jwt-facade/src/main/java/cn/org/codecrafters/simplejwt/annotations/TokenEnum.java rename to simple-jwt-facade/src/main/java/com/onixbyte/simplejwt/annotations/TokenEnum.java index 2258b54..052fd3b 100644 --- a/simple-jwt-facade/src/main/java/cn/org/codecrafters/simplejwt/annotations/TokenEnum.java +++ b/simple-jwt-facade/src/main/java/com/onixbyte/simplejwt/annotations/TokenEnum.java @@ -15,9 +15,9 @@ * limitations under the License. */ -package cn.org.codecrafters.simplejwt.annotations; +package com.onixbyte.simplejwt.annotations; -import cn.org.codecrafters.simplejwt.constants.TokenDataType; +import com.onixbyte.simplejwt.constants.TokenDataType; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; diff --git a/simple-jwt-facade/src/main/java/cn/org/codecrafters/simplejwt/annotations/package-info.java b/simple-jwt-facade/src/main/java/com/onixbyte/simplejwt/annotations/package-info.java similarity index 95% rename from simple-jwt-facade/src/main/java/cn/org/codecrafters/simplejwt/annotations/package-info.java rename to simple-jwt-facade/src/main/java/com/onixbyte/simplejwt/annotations/package-info.java index 0aca24d..0d7926d 100644 --- a/simple-jwt-facade/src/main/java/cn/org/codecrafters/simplejwt/annotations/package-info.java +++ b/simple-jwt-facade/src/main/java/com/onixbyte/simplejwt/annotations/package-info.java @@ -24,4 +24,4 @@ * * @since 1.0.0 */ -package cn.org.codecrafters.simplejwt.annotations; \ No newline at end of file +package com.onixbyte.simplejwt.annotations; \ No newline at end of file diff --git a/simple-jwt-facade/src/main/java/cn/org/codecrafters/simplejwt/config/TokenResolverConfig.java b/simple-jwt-facade/src/main/java/com/onixbyte/simplejwt/config/TokenResolverConfig.java similarity index 92% rename from simple-jwt-facade/src/main/java/cn/org/codecrafters/simplejwt/config/TokenResolverConfig.java rename to simple-jwt-facade/src/main/java/com/onixbyte/simplejwt/config/TokenResolverConfig.java index f29e198..4a257d5 100644 --- a/simple-jwt-facade/src/main/java/cn/org/codecrafters/simplejwt/config/TokenResolverConfig.java +++ b/simple-jwt-facade/src/main/java/com/onixbyte/simplejwt/config/TokenResolverConfig.java @@ -15,10 +15,10 @@ * limitations under the License. */ -package cn.org.codecrafters.simplejwt.config; +package com.onixbyte.simplejwt.config; -import cn.org.codecrafters.simplejwt.TokenResolver; -import cn.org.codecrafters.simplejwt.constants.TokenAlgorithm; +import com.onixbyte.simplejwt.TokenResolver; +import com.onixbyte.simplejwt.constants.TokenAlgorithm; /** * The {@code TokenResolverConfig} provides a mechanism to configure an diff --git a/simple-jwt-facade/src/main/java/cn/org/codecrafters/simplejwt/config/package-info.java b/simple-jwt-facade/src/main/java/com/onixbyte/simplejwt/config/package-info.java similarity index 96% rename from simple-jwt-facade/src/main/java/cn/org/codecrafters/simplejwt/config/package-info.java rename to simple-jwt-facade/src/main/java/com/onixbyte/simplejwt/config/package-info.java index 97774c4..e845956 100644 --- a/simple-jwt-facade/src/main/java/cn/org/codecrafters/simplejwt/config/package-info.java +++ b/simple-jwt-facade/src/main/java/com/onixbyte/simplejwt/config/package-info.java @@ -29,4 +29,4 @@ * * @since 1.0.0 */ -package cn.org.codecrafters.simplejwt.config; \ No newline at end of file +package com.onixbyte.simplejwt.config; \ No newline at end of file diff --git a/simple-jwt-facade/src/main/java/cn/org/codecrafters/simplejwt/constants/PredefinedKeys.java b/simple-jwt-facade/src/main/java/com/onixbyte/simplejwt/constants/PredefinedKeys.java similarity index 98% rename from simple-jwt-facade/src/main/java/cn/org/codecrafters/simplejwt/constants/PredefinedKeys.java rename to simple-jwt-facade/src/main/java/com/onixbyte/simplejwt/constants/PredefinedKeys.java index f82c45b..5eb5152 100644 --- a/simple-jwt-facade/src/main/java/cn/org/codecrafters/simplejwt/constants/PredefinedKeys.java +++ b/simple-jwt-facade/src/main/java/com/onixbyte/simplejwt/constants/PredefinedKeys.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package cn.org.codecrafters.simplejwt.constants; +package com.onixbyte.simplejwt.constants; import java.util.List; diff --git a/simple-jwt-facade/src/main/java/cn/org/codecrafters/simplejwt/constants/TokenAlgorithm.java b/simple-jwt-facade/src/main/java/com/onixbyte/simplejwt/constants/TokenAlgorithm.java similarity index 97% rename from simple-jwt-facade/src/main/java/cn/org/codecrafters/simplejwt/constants/TokenAlgorithm.java rename to simple-jwt-facade/src/main/java/com/onixbyte/simplejwt/constants/TokenAlgorithm.java index 3b831fd..413f0b2 100644 --- a/simple-jwt-facade/src/main/java/cn/org/codecrafters/simplejwt/constants/TokenAlgorithm.java +++ b/simple-jwt-facade/src/main/java/com/onixbyte/simplejwt/constants/TokenAlgorithm.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package cn.org.codecrafters.simplejwt.constants; +package com.onixbyte.simplejwt.constants; import lombok.Getter; diff --git a/simple-jwt-facade/src/main/java/cn/org/codecrafters/simplejwt/constants/TokenDataType.java b/simple-jwt-facade/src/main/java/com/onixbyte/simplejwt/constants/TokenDataType.java similarity index 96% rename from simple-jwt-facade/src/main/java/cn/org/codecrafters/simplejwt/constants/TokenDataType.java rename to simple-jwt-facade/src/main/java/com/onixbyte/simplejwt/constants/TokenDataType.java index ee7e348..6271d84 100644 --- a/simple-jwt-facade/src/main/java/cn/org/codecrafters/simplejwt/constants/TokenDataType.java +++ b/simple-jwt-facade/src/main/java/com/onixbyte/simplejwt/constants/TokenDataType.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package cn.org.codecrafters.simplejwt.constants; +package com.onixbyte.simplejwt.constants; import lombok.Getter; diff --git a/simple-jwt-facade/src/main/java/cn/org/codecrafters/simplejwt/constants/package-info.java b/simple-jwt-facade/src/main/java/com/onixbyte/simplejwt/constants/package-info.java similarity index 94% rename from simple-jwt-facade/src/main/java/cn/org/codecrafters/simplejwt/constants/package-info.java rename to simple-jwt-facade/src/main/java/com/onixbyte/simplejwt/constants/package-info.java index 2c7726e..1818acd 100644 --- a/simple-jwt-facade/src/main/java/cn/org/codecrafters/simplejwt/constants/package-info.java +++ b/simple-jwt-facade/src/main/java/com/onixbyte/simplejwt/constants/package-info.java @@ -23,4 +23,4 @@ * * @since 1.0.0 */ -package cn.org.codecrafters.simplejwt.constants; \ No newline at end of file +package com.onixbyte.simplejwt.constants; \ No newline at end of file diff --git a/simple-jwt-facade/src/main/java/cn/org/codecrafters/simplejwt/exceptions/UnsupportedAlgorithmException.java b/simple-jwt-facade/src/main/java/com/onixbyte/simplejwt/exceptions/UnsupportedAlgorithmException.java similarity index 97% rename from simple-jwt-facade/src/main/java/cn/org/codecrafters/simplejwt/exceptions/UnsupportedAlgorithmException.java rename to simple-jwt-facade/src/main/java/com/onixbyte/simplejwt/exceptions/UnsupportedAlgorithmException.java index 020ea63..f10d528 100644 --- a/simple-jwt-facade/src/main/java/cn/org/codecrafters/simplejwt/exceptions/UnsupportedAlgorithmException.java +++ b/simple-jwt-facade/src/main/java/com/onixbyte/simplejwt/exceptions/UnsupportedAlgorithmException.java @@ -15,12 +15,14 @@ * limitations under the License. */ -package cn.org.codecrafters.simplejwt.exceptions; +package com.onixbyte.simplejwt.exceptions; + +import com.onixbyte.simplejwt.TokenResolver; /** * This {@code UnsupportedAlgorithmException} represents the given * algorithm is not supported by {@link - * cn.org.codecrafters.simplejwt.TokenResolver} yet. + * TokenResolver} yet. *

    * If you want the supports to an unsupported algorithm, you could *

      diff --git a/simple-jwt-facade/src/main/java/cn/org/codecrafters/simplejwt/exceptions/WeakSecretException.java b/simple-jwt-facade/src/main/java/com/onixbyte/simplejwt/exceptions/WeakSecretException.java similarity index 98% rename from simple-jwt-facade/src/main/java/cn/org/codecrafters/simplejwt/exceptions/WeakSecretException.java rename to simple-jwt-facade/src/main/java/com/onixbyte/simplejwt/exceptions/WeakSecretException.java index 25126f9..3d5419c 100644 --- a/simple-jwt-facade/src/main/java/cn/org/codecrafters/simplejwt/exceptions/WeakSecretException.java +++ b/simple-jwt-facade/src/main/java/com/onixbyte/simplejwt/exceptions/WeakSecretException.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package cn.org.codecrafters.simplejwt.exceptions; +package com.onixbyte.simplejwt.exceptions; /** * {@code WeakSecretException} represents that your secret is too weak to be diff --git a/simple-jwt-facade/src/main/java/cn/org/codecrafters/simplejwt/exceptions/package-info.java b/simple-jwt-facade/src/main/java/com/onixbyte/simplejwt/exceptions/package-info.java similarity index 97% rename from simple-jwt-facade/src/main/java/cn/org/codecrafters/simplejwt/exceptions/package-info.java rename to simple-jwt-facade/src/main/java/com/onixbyte/simplejwt/exceptions/package-info.java index b8f48f8..69d7a36 100644 --- a/simple-jwt-facade/src/main/java/cn/org/codecrafters/simplejwt/exceptions/package-info.java +++ b/simple-jwt-facade/src/main/java/com/onixbyte/simplejwt/exceptions/package-info.java @@ -36,4 +36,4 @@ * * @since 1.0.0 */ -package cn.org.codecrafters.simplejwt.exceptions; \ No newline at end of file +package com.onixbyte.simplejwt.exceptions; \ No newline at end of file diff --git a/simple-jwt-facade/src/main/java/cn/org/codecrafters/simplejwt/package-info.java b/simple-jwt-facade/src/main/java/com/onixbyte/simplejwt/package-info.java similarity index 97% rename from simple-jwt-facade/src/main/java/cn/org/codecrafters/simplejwt/package-info.java rename to simple-jwt-facade/src/main/java/com/onixbyte/simplejwt/package-info.java index 791dae8..a6c6183 100644 --- a/simple-jwt-facade/src/main/java/cn/org/codecrafters/simplejwt/package-info.java +++ b/simple-jwt-facade/src/main/java/com/onixbyte/simplejwt/package-info.java @@ -37,4 +37,4 @@ * * @since 1.0.0 */ -package cn.org.codecrafters.simplejwt; \ No newline at end of file +package com.onixbyte.simplejwt; \ No newline at end of file diff --git a/simple-jwt-jjwt/README.md b/simple-jwt-jjwt/README.md index 7b39a4e..2dd64e1 100644 --- a/simple-jwt-jjwt/README.md +++ b/simple-jwt-jjwt/README.md @@ -45,7 +45,7 @@ implementation 'cn.org.codecrafters:simple-jwt-authzero:${simple-jwt-authzero.ve ## Use the `JjwtTokenResolver` -We have implemented `TokenResolver` to make sure you can add JWT to your Java application as soon as possible. All you need to do is to create an instance of `cn.org.codecrafters.simplejwt.jjwt.JjwtTokenResolver` and other operations to JWT could follow our instruction in [`simple-jwt-facade`](../simple-jwt-facade/README.md). +We have implemented `TokenResolver` to make sure you can add JWT to your Java application as soon as possible. All you need to do is to create an instance of `jjwt.com.onixbyte.simplejwt.JjwtTokenResolver` and other operations to JWT could follow our instruction in [`simple-jwt-facade`](../simple-jwt-facade/README.md). ## Contact diff --git a/simple-jwt-jjwt/src/main/java/cn/org/codecrafters/simplejwt/jjwt/JjwtTokenResolver.java b/simple-jwt-jjwt/src/main/java/com/onixbyte/simplejwt/jjwt/JjwtTokenResolver.java similarity index 96% rename from simple-jwt-jjwt/src/main/java/cn/org/codecrafters/simplejwt/jjwt/JjwtTokenResolver.java rename to simple-jwt-jjwt/src/main/java/com/onixbyte/simplejwt/jjwt/JjwtTokenResolver.java index 51abd91..b6ad92b 100644 --- a/simple-jwt-jjwt/src/main/java/cn/org/codecrafters/simplejwt/jjwt/JjwtTokenResolver.java +++ b/simple-jwt-jjwt/src/main/java/com/onixbyte/simplejwt/jjwt/JjwtTokenResolver.java @@ -15,19 +15,19 @@ * limitations under the License. */ -package cn.org.codecrafters.simplejwt.jjwt; +package com.onixbyte.simplejwt.jjwt; -import cn.org.codecrafters.devkit.utils.MapUtil; -import cn.org.codecrafters.guid.GuidCreator; -import cn.org.codecrafters.simplejwt.SecretCreator; -import cn.org.codecrafters.simplejwt.TokenPayload; -import cn.org.codecrafters.simplejwt.TokenResolver; -import cn.org.codecrafters.simplejwt.annotations.ExcludeFromPayload; -import cn.org.codecrafters.simplejwt.annotations.TokenEnum; -import cn.org.codecrafters.simplejwt.constants.PredefinedKeys; -import cn.org.codecrafters.simplejwt.constants.TokenAlgorithm; -import cn.org.codecrafters.simplejwt.exceptions.WeakSecretException; -import cn.org.codecrafters.simplejwt.jjwt.config.JjwtTokenResolverConfig; +import com.onixbyte.devkit.utils.MapUtil; +import com.onixbyte.guid.GuidCreator; +import com.onixbyte.simplejwt.SecretCreator; +import com.onixbyte.simplejwt.TokenPayload; +import com.onixbyte.simplejwt.TokenResolver; +import com.onixbyte.simplejwt.annotations.ExcludeFromPayload; +import com.onixbyte.simplejwt.annotations.TokenEnum; +import com.onixbyte.simplejwt.constants.PredefinedKeys; +import com.onixbyte.simplejwt.constants.TokenAlgorithm; +import com.onixbyte.simplejwt.exceptions.WeakSecretException; +import com.onixbyte.simplejwt.jjwt.config.JjwtTokenResolverConfig; import io.jsonwebtoken.Claims; import io.jsonwebtoken.Jws; import io.jsonwebtoken.Jwts; diff --git a/simple-jwt-jjwt/src/main/java/cn/org/codecrafters/simplejwt/jjwt/config/JjwtTokenResolverConfig.java b/simple-jwt-jjwt/src/main/java/com/onixbyte/simplejwt/jjwt/config/JjwtTokenResolverConfig.java similarity index 90% rename from simple-jwt-jjwt/src/main/java/cn/org/codecrafters/simplejwt/jjwt/config/JjwtTokenResolverConfig.java rename to simple-jwt-jjwt/src/main/java/com/onixbyte/simplejwt/jjwt/config/JjwtTokenResolverConfig.java index b678d18..6017f3a 100644 --- a/simple-jwt-jjwt/src/main/java/cn/org/codecrafters/simplejwt/jjwt/config/JjwtTokenResolverConfig.java +++ b/simple-jwt-jjwt/src/main/java/com/onixbyte/simplejwt/jjwt/config/JjwtTokenResolverConfig.java @@ -15,16 +15,14 @@ * limitations under the License. */ -package cn.org.codecrafters.simplejwt.jjwt.config; +package com.onixbyte.simplejwt.jjwt.config; -import cn.org.codecrafters.simplejwt.TokenResolver; -import cn.org.codecrafters.simplejwt.config.TokenResolverConfig; -import cn.org.codecrafters.simplejwt.constants.TokenAlgorithm; -import cn.org.codecrafters.simplejwt.exceptions.UnsupportedAlgorithmException; -import cn.org.codecrafters.simplejwt.jjwt.JjwtTokenResolver; +import com.onixbyte.simplejwt.TokenResolver; +import com.onixbyte.simplejwt.config.TokenResolverConfig; +import com.onixbyte.simplejwt.constants.TokenAlgorithm; +import com.onixbyte.simplejwt.exceptions.UnsupportedAlgorithmException; +import com.onixbyte.simplejwt.jjwt.JjwtTokenResolver; import io.jsonwebtoken.Jwts; -import io.jsonwebtoken.SignatureAlgorithm; -import io.jsonwebtoken.security.MacAlgorithm; import io.jsonwebtoken.security.SecureDigestAlgorithm; import javax.crypto.SecretKey; diff --git a/simple-jwt-jjwt/src/main/java/cn/org/codecrafters/simplejwt/jjwt/config/package-info.java b/simple-jwt-jjwt/src/main/java/com/onixbyte/simplejwt/jjwt/config/package-info.java similarity index 77% rename from simple-jwt-jjwt/src/main/java/cn/org/codecrafters/simplejwt/jjwt/config/package-info.java rename to simple-jwt-jjwt/src/main/java/com/onixbyte/simplejwt/jjwt/config/package-info.java index 5ebbeaf..e9fd072 100644 --- a/simple-jwt-jjwt/src/main/java/cn/org/codecrafters/simplejwt/jjwt/config/package-info.java +++ b/simple-jwt-jjwt/src/main/java/com/onixbyte/simplejwt/jjwt/config/package-info.java @@ -18,36 +18,36 @@ /** * The package {@code cn.org.codecrafters.simplejwt.jjwt.config} contains * configuration classes related to the {@link - * cn.org.codecrafters.simplejwt.jjwt.JjwtTokenResolver} + * com.onixbyte.simplejwt.jjwt.JjwtTokenResolver} * implementation. *

      * The classes in this package provide configuration options and settings for - * the {@link cn.org.codecrafters.simplejwt.jjwt.JjwtTokenResolver}, + * the {@link com.onixbyte.simplejwt.jjwt.JjwtTokenResolver}, * which is used for resolving JSON Web Tokens (JWT) using the Auth0 library. *

      * The {@link - * cn.org.codecrafters.simplejwt.jjwt.config.JjwtTokenResolverConfig} + * com.onixbyte.simplejwt.jjwt.config.JjwtTokenResolverConfig} * class is a configuration class that defines the mapping between standard - * {@link cn.org.codecrafters.simplejwt.constants.TokenAlgorithm} and the + * {@link com.onixbyte.simplejwt.constants.TokenAlgorithm} and the * corresponding function implementation used by {@link - * cn.org.codecrafters.simplejwt.jjwt.JjwtTokenResolver} for handling + * com.onixbyte.simplejwt.jjwt.JjwtTokenResolver} for handling * JWT algorithms. It enables developers to specify and customize the * algorithm functions according to the chosen JWT algorithm and the library * being used. *

      * The configuration options in this package help developers integrate and * configure the {@link - * cn.org.codecrafters.simplejwt.jjwt.JjwtTokenResolver} seamlessly + * com.onixbyte.simplejwt.jjwt.JjwtTokenResolver} seamlessly * into their Spring Boot applications. Developers can fine-tune the token * resolution process and customize algorithm handling to align with their * specific requirements and desired level of security. *

      * It is recommended to explore the classes in this package to understand how * to configure and use the {@link - * cn.org.codecrafters.simplejwt.jjwt.JjwtTokenResolver} effectively + * com.onixbyte.simplejwt.jjwt.JjwtTokenResolver} effectively * in the Spring Boot environment to handle JWT authentication and * authorisation securely and efficiently. * * @since 1.0.0 */ -package cn.org.codecrafters.simplejwt.jjwt.config; \ No newline at end of file +package com.onixbyte.simplejwt.jjwt.config; \ No newline at end of file diff --git a/simple-jwt-jjwt/src/main/java/cn/org/codecrafters/simplejwt/jjwt/package-info.java b/simple-jwt-jjwt/src/main/java/com/onixbyte/simplejwt/jjwt/package-info.java similarity index 83% rename from simple-jwt-jjwt/src/main/java/cn/org/codecrafters/simplejwt/jjwt/package-info.java rename to simple-jwt-jjwt/src/main/java/com/onixbyte/simplejwt/jjwt/package-info.java index 1753d09..36dc9e7 100644 --- a/simple-jwt-jjwt/src/main/java/cn/org/codecrafters/simplejwt/jjwt/package-info.java +++ b/simple-jwt-jjwt/src/main/java/com/onixbyte/simplejwt/jjwt/package-info.java @@ -25,27 +25,27 @@ * the {@code io.jsonwebtoken:jjwt-api} library. *

      * The main class in this package is the {@link - * cn.org.codecrafters.simplejwt.jjwt.JjwtTokenResolver}, which - * implements the {@link cn.org.codecrafters.simplejwt.TokenResolver} interface + * com.onixbyte.simplejwt.jjwt.JjwtTokenResolver}, which + * implements the {@link com.onixbyte.simplejwt.TokenResolver} interface * and uses the {@code io.jsonwebtoken:jjwt-api} library to handle JWT * operations. It provides the functionality to create, validate, and extract * JWTs using the {@code io.jsonwebtoken:jjwt-api} library. Developers can use * this class as the main token resolver in the Simple JWT project when * integrating {@code io.jsonwebtoken:jjwt-api} as the JWT management library. *

      - * The {@link cn.org.codecrafters.simplejwt.jjwt.JjwtTokenResolver} relies on + * The {@link com.onixbyte.simplejwt.jjwt.JjwtTokenResolver} relies on * the {@code io.jsonwebtoken:jjwt-api} * library to handle the underlying JWT operations, including token creation, * validation, and extraction. It utilizes the {@code io.jsonwebtoken:jjwt-api} * {@link io.jsonwebtoken.SignatureAlgorithm} class to define and use different * algorithms for JWT signing and verification. *

      - * To use the {@link cn.org.codecrafters.simplejwt.jjwt.JjwtTokenResolver}, + * To use the {@link com.onixbyte.simplejwt.jjwt.JjwtTokenResolver}, * developers must provide the necessary configurations and dependencies, such - * as the {@link cn.org.codecrafters.guid.GuidCreator} for generating unique + * as the {@link com.onixbyte.guid.GuidCreator} for generating unique * JWT IDs (JTI), the supported algorithm function, the issuer name, and the * secret key used for token signing and validation. The - * {@link cn.org.codecrafters.simplejwt.jjwt.config.JjwtTokenResolverConfig} + * {@link com.onixbyte.simplejwt.jjwt.config.JjwtTokenResolverConfig} * class provides a convenient way to configure these dependencies. *

      * Developers using the {@code io.jsonwebtoken:jjwt-api} integration should be @@ -55,4 +55,4 @@ * * @since 1.0.0 */ -package cn.org.codecrafters.simplejwt.jjwt; \ No newline at end of file +package com.onixbyte.simplejwt.jjwt; \ No newline at end of file diff --git a/simple-jwt-spring-boot-starter/README.md b/simple-jwt-spring-boot-starter/README.md index 7dd1bb2..772be19 100644 --- a/simple-jwt-spring-boot-starter/README.md +++ b/simple-jwt-spring-boot-starter/README.md @@ -66,7 +66,7 @@ implementation 'cn.org.codecrafters:simple-jwt-spring-boot-starter:${simple-jwt- We need a `GuidCreator` instance to create JWT ID, though we did implemented a simple `GuidCreator`, but you can still customize it. -First, please implement the `cn.org.codecrafters.guid.GuidCreator` interface based on your own rules for generating JWT IDs. +First, please implement the `com.onixbyte.guid.GuidCreator` interface based on your own rules for generating JWT IDs. Then, add the instance of your own guid creator to spring container, whose name is `jtiCreator`. diff --git a/simple-jwt-spring-boot-starter/src/main/java/cn/org/codecrafters/simplejwt/autoconfiguration/AuthzeroTokenResolverAutoConfiguration.java b/simple-jwt-spring-boot-starter/src/main/java/com/onixbyte/simplejwt/autoconfiguration/AuthzeroTokenResolverAutoConfiguration.java similarity index 93% rename from simple-jwt-spring-boot-starter/src/main/java/cn/org/codecrafters/simplejwt/autoconfiguration/AuthzeroTokenResolverAutoConfiguration.java rename to simple-jwt-spring-boot-starter/src/main/java/com/onixbyte/simplejwt/autoconfiguration/AuthzeroTokenResolverAutoConfiguration.java index 9cfb314..154ebbc 100644 --- a/simple-jwt-spring-boot-starter/src/main/java/cn/org/codecrafters/simplejwt/autoconfiguration/AuthzeroTokenResolverAutoConfiguration.java +++ b/simple-jwt-spring-boot-starter/src/main/java/com/onixbyte/simplejwt/autoconfiguration/AuthzeroTokenResolverAutoConfiguration.java @@ -15,12 +15,12 @@ * limitations under the License. */ -package cn.org.codecrafters.simplejwt.autoconfiguration; +package com.onixbyte.simplejwt.autoconfiguration; -import cn.org.codecrafters.guid.GuidCreator; -import cn.org.codecrafters.simplejwt.TokenResolver; -import cn.org.codecrafters.simplejwt.authzero.AuthzeroTokenResolver; -import cn.org.codecrafters.simplejwt.autoconfiguration.properties.SimpleJwtProperties; +import com.onixbyte.guid.GuidCreator; +import com.onixbyte.simplejwt.TokenResolver; +import com.onixbyte.simplejwt.authzero.AuthzeroTokenResolver; +import com.onixbyte.simplejwt.autoconfiguration.properties.SimpleJwtProperties; import com.auth0.jwt.interfaces.DecodedJWT; import com.fasterxml.jackson.databind.ObjectMapper; import lombok.extern.slf4j.Slf4j; diff --git a/simple-jwt-spring-boot-starter/src/main/java/cn/org/codecrafters/simplejwt/autoconfiguration/GuidAutoConfiguration.java b/simple-jwt-spring-boot-starter/src/main/java/com/onixbyte/simplejwt/autoconfiguration/GuidAutoConfiguration.java similarity index 79% rename from simple-jwt-spring-boot-starter/src/main/java/cn/org/codecrafters/simplejwt/autoconfiguration/GuidAutoConfiguration.java rename to simple-jwt-spring-boot-starter/src/main/java/com/onixbyte/simplejwt/autoconfiguration/GuidAutoConfiguration.java index 00372a7..5e60f39 100644 --- a/simple-jwt-spring-boot-starter/src/main/java/cn/org/codecrafters/simplejwt/autoconfiguration/GuidAutoConfiguration.java +++ b/simple-jwt-spring-boot-starter/src/main/java/com/onixbyte/simplejwt/autoconfiguration/GuidAutoConfiguration.java @@ -15,14 +15,12 @@ * limitations under the License. */ -package cn.org.codecrafters.simplejwt.autoconfiguration; +package com.onixbyte.simplejwt.autoconfiguration; -import cn.org.codecrafters.guid.GuidCreator; -import cn.org.codecrafters.simplejwt.autoconfiguration.conditions.GuidCreatorCondition; +import com.onixbyte.guid.GuidCreator; +import com.onixbyte.simplejwt.autoconfiguration.conditions.GuidCreatorCondition; import lombok.extern.slf4j.Slf4j; import org.springframework.boot.autoconfigure.AutoConfiguration; -import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; -import org.springframework.boot.autoconfigure.condition.SearchStrategy; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Conditional; diff --git a/simple-jwt-spring-boot-starter/src/main/java/cn/org/codecrafters/simplejwt/autoconfiguration/JjwtTokenResolverAutoConfiguration.java b/simple-jwt-spring-boot-starter/src/main/java/com/onixbyte/simplejwt/autoconfiguration/JjwtTokenResolverAutoConfiguration.java similarity index 93% rename from simple-jwt-spring-boot-starter/src/main/java/cn/org/codecrafters/simplejwt/autoconfiguration/JjwtTokenResolverAutoConfiguration.java rename to simple-jwt-spring-boot-starter/src/main/java/com/onixbyte/simplejwt/autoconfiguration/JjwtTokenResolverAutoConfiguration.java index 677a25f..549430c 100644 --- a/simple-jwt-spring-boot-starter/src/main/java/cn/org/codecrafters/simplejwt/autoconfiguration/JjwtTokenResolverAutoConfiguration.java +++ b/simple-jwt-spring-boot-starter/src/main/java/com/onixbyte/simplejwt/autoconfiguration/JjwtTokenResolverAutoConfiguration.java @@ -15,12 +15,12 @@ * limitations under the License. */ -package cn.org.codecrafters.simplejwt.autoconfiguration; +package com.onixbyte.simplejwt.autoconfiguration; -import cn.org.codecrafters.guid.GuidCreator; -import cn.org.codecrafters.simplejwt.TokenResolver; -import cn.org.codecrafters.simplejwt.autoconfiguration.properties.SimpleJwtProperties; -import cn.org.codecrafters.simplejwt.jjwt.JjwtTokenResolver; +import com.onixbyte.guid.GuidCreator; +import com.onixbyte.simplejwt.TokenResolver; +import com.onixbyte.simplejwt.autoconfiguration.properties.SimpleJwtProperties; +import com.onixbyte.simplejwt.jjwt.JjwtTokenResolver; import io.jsonwebtoken.Claims; import io.jsonwebtoken.Jws; import lombok.extern.slf4j.Slf4j; diff --git a/simple-jwt-spring-boot-starter/src/main/java/cn/org/codecrafters/simplejwt/autoconfiguration/conditions/GuidCreatorCondition.java b/simple-jwt-spring-boot-starter/src/main/java/com/onixbyte/simplejwt/autoconfiguration/conditions/GuidCreatorCondition.java similarity index 87% rename from simple-jwt-spring-boot-starter/src/main/java/cn/org/codecrafters/simplejwt/autoconfiguration/conditions/GuidCreatorCondition.java rename to simple-jwt-spring-boot-starter/src/main/java/com/onixbyte/simplejwt/autoconfiguration/conditions/GuidCreatorCondition.java index 769a54e..602ca73 100644 --- a/simple-jwt-spring-boot-starter/src/main/java/cn/org/codecrafters/simplejwt/autoconfiguration/conditions/GuidCreatorCondition.java +++ b/simple-jwt-spring-boot-starter/src/main/java/com/onixbyte/simplejwt/autoconfiguration/conditions/GuidCreatorCondition.java @@ -1,6 +1,6 @@ -package cn.org.codecrafters.simplejwt.autoconfiguration.conditions; +package com.onixbyte.simplejwt.autoconfiguration.conditions; -import cn.org.codecrafters.guid.GuidCreator; +import com.onixbyte.guid.GuidCreator; import lombok.extern.slf4j.Slf4j; import org.springframework.context.annotation.Condition; import org.springframework.context.annotation.ConditionContext; @@ -22,7 +22,7 @@ public class GuidCreatorCondition implements Condition { * The condition to create bean {@code jtiCreator}. *

      * If Spring does not have a bean of type - * {@link cn.org.codecrafters.guid.GuidCreator} named {@code jtiCreator} + * {@link GuidCreator} named {@code jtiCreator} * in the application context, then create {@code jtiCreator}. * * @param context the spring application context diff --git a/simple-jwt-spring-boot-starter/src/main/java/cn/org/codecrafters/simplejwt/autoconfiguration/package-info.java b/simple-jwt-spring-boot-starter/src/main/java/com/onixbyte/simplejwt/autoconfiguration/package-info.java similarity index 96% rename from simple-jwt-spring-boot-starter/src/main/java/cn/org/codecrafters/simplejwt/autoconfiguration/package-info.java rename to simple-jwt-spring-boot-starter/src/main/java/com/onixbyte/simplejwt/autoconfiguration/package-info.java index bcc0424..43dd774 100644 --- a/simple-jwt-spring-boot-starter/src/main/java/cn/org/codecrafters/simplejwt/autoconfiguration/package-info.java +++ b/simple-jwt-spring-boot-starter/src/main/java/com/onixbyte/simplejwt/autoconfiguration/package-info.java @@ -35,4 +35,4 @@ * * @since 1.0.0 */ -package cn.org.codecrafters.simplejwt.autoconfiguration; \ No newline at end of file +package com.onixbyte.simplejwt.autoconfiguration; \ No newline at end of file diff --git a/simple-jwt-spring-boot-starter/src/main/java/cn/org/codecrafters/simplejwt/autoconfiguration/properties/SimpleJwtProperties.java b/simple-jwt-spring-boot-starter/src/main/java/com/onixbyte/simplejwt/autoconfiguration/properties/SimpleJwtProperties.java similarity index 87% rename from simple-jwt-spring-boot-starter/src/main/java/cn/org/codecrafters/simplejwt/autoconfiguration/properties/SimpleJwtProperties.java rename to simple-jwt-spring-boot-starter/src/main/java/com/onixbyte/simplejwt/autoconfiguration/properties/SimpleJwtProperties.java index 8105cf3..02e6497 100644 --- a/simple-jwt-spring-boot-starter/src/main/java/cn/org/codecrafters/simplejwt/autoconfiguration/properties/SimpleJwtProperties.java +++ b/simple-jwt-spring-boot-starter/src/main/java/com/onixbyte/simplejwt/autoconfiguration/properties/SimpleJwtProperties.java @@ -15,11 +15,12 @@ * limitations under the License. */ -package cn.org.codecrafters.simplejwt.autoconfiguration.properties; +package com.onixbyte.simplejwt.autoconfiguration.properties; -import cn.org.codecrafters.simplejwt.SecretCreator; -import cn.org.codecrafters.simplejwt.autoconfiguration.AuthzeroTokenResolverAutoConfiguration; -import cn.org.codecrafters.simplejwt.constants.TokenAlgorithm; +import com.onixbyte.simplejwt.SecretCreator; +import com.onixbyte.simplejwt.autoconfiguration.AuthzeroTokenResolverAutoConfiguration; +import com.onixbyte.simplejwt.constants.TokenAlgorithm; +import com.onixbyte.simplejwt.jjwt.JjwtTokenResolver; import lombok.Data; import org.springframework.boot.context.properties.ConfigurationProperties; @@ -32,7 +33,7 @@ import org.springframework.boot.context.properties.ConfigurationProperties; * {@code SimpleJwtProperties} provides configuration options for the JWT * algorithm, issuer, and secret. The properties are used by the {@link * AuthzeroTokenResolverAutoConfiguration} and {@link - * cn.org.codecrafters.simplejwt.jjwt.JjwtTokenResolver} to set up the + * JjwtTokenResolver} to set up the * necessary configurations for JWT generation and validation. *

      * Developers can customise the JWT algorithm, issuer, and secret by setting @@ -45,7 +46,7 @@ import org.springframework.boot.context.properties.ConfigurationProperties; * @since 1.0.0 */ @Data -@ConfigurationProperties(prefix = "code-crafters.simple-jwt") +@ConfigurationProperties(prefix = "onixbyte.simple-jwt") public class SimpleJwtProperties { /** diff --git a/simple-jwt-spring-boot-starter/src/main/java/cn/org/codecrafters/simplejwt/autoconfiguration/properties/package-info.java b/simple-jwt-spring-boot-starter/src/main/java/com/onixbyte/simplejwt/autoconfiguration/properties/package-info.java similarity index 90% rename from simple-jwt-spring-boot-starter/src/main/java/cn/org/codecrafters/simplejwt/autoconfiguration/properties/package-info.java rename to simple-jwt-spring-boot-starter/src/main/java/com/onixbyte/simplejwt/autoconfiguration/properties/package-info.java index be6889c..2b73573 100644 --- a/simple-jwt-spring-boot-starter/src/main/java/cn/org/codecrafters/simplejwt/autoconfiguration/properties/package-info.java +++ b/simple-jwt-spring-boot-starter/src/main/java/com/onixbyte/simplejwt/autoconfiguration/properties/package-info.java @@ -27,9 +27,9 @@ * the corresponding properties in the application's properties file with the * prefix "code-crafters.simple-jwt". The SimpleJwtAutoConfiguration class * reads these properties and uses them to create the {@link - * cn.org.codecrafters.simplejwt.TokenResolver} bean with the desired + * com.onixbyte.simplejwt.TokenResolver} bean with the desired * configuration. * * @since 1.0.0 */ -package cn.org.codecrafters.simplejwt.autoconfiguration.properties; \ No newline at end of file +package com.onixbyte.simplejwt.autoconfiguration.properties; \ No newline at end of file diff --git a/simple-jwt-spring-boot-starter/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/simple-jwt-spring-boot-starter/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports index 5e98bde..7841ecc 100644 --- a/simple-jwt-spring-boot-starter/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports +++ b/simple-jwt-spring-boot-starter/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -1,3 +1,3 @@ -cn.org.codecrafters.simplejwt.autoconfiguration.GuidAutoConfiguration -cn.org.codecrafters.simplejwt.autoconfiguration.AuthzeroTokenResolverAutoConfiguration -cn.org.codecrafters.simplejwt.autoconfiguration.JjwtTokenResolverAutoConfiguration \ No newline at end of file +com.onixbyte.simplejwt.autoconfiguration.GuidAutoConfiguration +com.onixbyte.simplejwt.autoconfiguration.AuthzeroTokenResolverAutoConfiguration +com.onixbyte.simplejwt.autoconfiguration.JjwtTokenResolverAutoConfiguration \ No newline at end of file diff --git a/webcal/src/main/java/cn/org/codecrafters/webcal/WebCalendar.java b/webcal/src/main/java/com/onixbyte/webcal/WebCalendar.java similarity index 98% rename from webcal/src/main/java/cn/org/codecrafters/webcal/WebCalendar.java rename to webcal/src/main/java/com/onixbyte/webcal/WebCalendar.java index 35a21de..374b484 100644 --- a/webcal/src/main/java/cn/org/codecrafters/webcal/WebCalendar.java +++ b/webcal/src/main/java/com/onixbyte/webcal/WebCalendar.java @@ -15,9 +15,9 @@ * limitations under the License. */ -package cn.org.codecrafters.webcal; +package com.onixbyte.webcal; -import cn.org.codecrafters.webcal.impl.WebCalendarEvent; +import com.onixbyte.webcal.impl.WebCalendarEvent; import java.util.ArrayList; import java.util.List; diff --git a/webcal/src/main/java/cn/org/codecrafters/webcal/WebCalendarNode.java b/webcal/src/main/java/com/onixbyte/webcal/WebCalendarNode.java similarity index 95% rename from webcal/src/main/java/cn/org/codecrafters/webcal/WebCalendarNode.java rename to webcal/src/main/java/com/onixbyte/webcal/WebCalendarNode.java index a95cebc..715dcae 100644 --- a/webcal/src/main/java/cn/org/codecrafters/webcal/WebCalendarNode.java +++ b/webcal/src/main/java/com/onixbyte/webcal/WebCalendarNode.java @@ -15,10 +15,9 @@ * limitations under the License. */ -package cn.org.codecrafters.webcal; +package com.onixbyte.webcal; -import cn.org.codecrafters.webcal.config.Classification; -import cn.org.codecrafters.webcal.impl.WebCalendarEvent; +import com.onixbyte.webcal.config.Classification; import java.time.Duration; import java.time.LocalDateTime; diff --git a/webcal/src/main/java/cn/org/codecrafters/webcal/config/Classification.java b/webcal/src/main/java/com/onixbyte/webcal/config/Classification.java similarity index 97% rename from webcal/src/main/java/cn/org/codecrafters/webcal/config/Classification.java rename to webcal/src/main/java/com/onixbyte/webcal/config/Classification.java index 2f40751..4480f42 100644 --- a/webcal/src/main/java/cn/org/codecrafters/webcal/config/Classification.java +++ b/webcal/src/main/java/com/onixbyte/webcal/config/Classification.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package cn.org.codecrafters.webcal.config; +package com.onixbyte.webcal.config; import lombok.Getter; diff --git a/webcal/src/main/java/cn/org/codecrafters/webcal/config/DateAndTimeFormatter.java b/webcal/src/main/java/com/onixbyte/webcal/config/DateAndTimeFormatter.java similarity index 97% rename from webcal/src/main/java/cn/org/codecrafters/webcal/config/DateAndTimeFormatter.java rename to webcal/src/main/java/com/onixbyte/webcal/config/DateAndTimeFormatter.java index 7b125a2..57b0eb8 100644 --- a/webcal/src/main/java/cn/org/codecrafters/webcal/config/DateAndTimeFormatter.java +++ b/webcal/src/main/java/com/onixbyte/webcal/config/DateAndTimeFormatter.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package cn.org.codecrafters.webcal.config; +package com.onixbyte.webcal.config; import java.time.ZoneOffset; import java.time.format.DateTimeFormatter; diff --git a/webcal/src/main/java/cn/org/codecrafters/webcal/config/package-info.java b/webcal/src/main/java/com/onixbyte/webcal/config/package-info.java similarity index 89% rename from webcal/src/main/java/cn/org/codecrafters/webcal/config/package-info.java rename to webcal/src/main/java/com/onixbyte/webcal/config/package-info.java index fdfc842..de753b5 100644 --- a/webcal/src/main/java/cn/org/codecrafters/webcal/config/package-info.java +++ b/webcal/src/main/java/com/onixbyte/webcal/config/package-info.java @@ -23,11 +23,11 @@ *

      The classes in this package include:

      *
        *
      • - * {@link cn.org.codecrafters.webcal.config.Classification}: An enum + * {@link com.onixbyte.webcal.config.Classification}: An enum * representing the classification of events in the web calendar. *
      • *
      * * @since 1.0.0 */ -package cn.org.codecrafters.webcal.config; \ No newline at end of file +package com.onixbyte.webcal.config; \ No newline at end of file diff --git a/webcal/src/main/java/cn/org/codecrafters/webcal/impl/WebCalendarEvent.java b/webcal/src/main/java/com/onixbyte/webcal/impl/WebCalendarEvent.java similarity index 97% rename from webcal/src/main/java/cn/org/codecrafters/webcal/impl/WebCalendarEvent.java rename to webcal/src/main/java/com/onixbyte/webcal/impl/WebCalendarEvent.java index b43d521..07b64f1 100644 --- a/webcal/src/main/java/cn/org/codecrafters/webcal/impl/WebCalendarEvent.java +++ b/webcal/src/main/java/com/onixbyte/webcal/impl/WebCalendarEvent.java @@ -15,11 +15,11 @@ * limitations under the License. */ -package cn.org.codecrafters.webcal.impl; +package com.onixbyte.webcal.impl; -import cn.org.codecrafters.webcal.WebCalendarNode; -import cn.org.codecrafters.webcal.config.Classification; -import cn.org.codecrafters.webcal.config.DateAndTimeFormatter; +import com.onixbyte.webcal.WebCalendarNode; +import com.onixbyte.webcal.config.Classification; +import com.onixbyte.webcal.config.DateAndTimeFormatter; import java.text.MessageFormat; import java.time.Duration; diff --git a/webcal/src/main/java/cn/org/codecrafters/webcal/package-info.java b/webcal/src/main/java/com/onixbyte/webcal/package-info.java similarity index 83% rename from webcal/src/main/java/cn/org/codecrafters/webcal/package-info.java rename to webcal/src/main/java/com/onixbyte/webcal/package-info.java index bb4ce67..c15787d 100644 --- a/webcal/src/main/java/cn/org/codecrafters/webcal/package-info.java +++ b/webcal/src/main/java/com/onixbyte/webcal/package-info.java @@ -23,16 +23,16 @@ * The main classes and modules in this package include: *
        *
      • - * {@link cn.org.codecrafters.webcal.WebCalendar}: A class for + * {@link com.onixbyte.webcal.WebCalendar}: A class for * generating web calendars with customisable settings and events. *
      • *
      • - * {@link cn.org.codecrafters.webcal.impl.WebCalendarEvent}: A class + * {@link com.onixbyte.webcal.impl.WebCalendarEvent}: A class * representing a single event in a web calendar with various * attributes and options. *
      • *
      • - * {@link cn.org.codecrafters.webcal.WebCalendarNode}: An abstract + * {@link com.onixbyte.webcal.WebCalendarNode}: An abstract * class serving as the base class for web calendar nodes, providing * common attributes and functionality for events. *
      • @@ -40,4 +40,4 @@ * * @since 1.0.0 */ -package cn.org.codecrafters.webcal; \ No newline at end of file +package com.onixbyte.webcal; \ No newline at end of file diff --git a/webcal/src/test/java/cn/org/codecrafters/webcal/test/TestWebCalendar.java b/webcal/src/test/java/com/onixbyte/webcal/test/TestWebCalendar.java similarity index 88% rename from webcal/src/test/java/cn/org/codecrafters/webcal/test/TestWebCalendar.java rename to webcal/src/test/java/com/onixbyte/webcal/test/TestWebCalendar.java index 9b34b97..d2db873 100644 --- a/webcal/src/test/java/cn/org/codecrafters/webcal/test/TestWebCalendar.java +++ b/webcal/src/test/java/com/onixbyte/webcal/test/TestWebCalendar.java @@ -15,11 +15,11 @@ * limitations under the License. */ -package cn.org.codecrafters.webcal.test; +package com.onixbyte.webcal.test; -import cn.org.codecrafters.webcal.WebCalendar; -import cn.org.codecrafters.webcal.impl.WebCalendarEvent; -import cn.org.codecrafters.webcal.config.Classification; +import com.onixbyte.webcal.WebCalendar; +import com.onixbyte.webcal.impl.WebCalendarEvent; +import com.onixbyte.webcal.config.Classification; import lombok.extern.slf4j.Slf4j; import org.junit.jupiter.api.Test;