From 935c7d83cc6b781dee881a39a166f3a85e08dda2 Mon Sep 17 00:00:00 2001 From: ReaJason Date: Tue, 2 Sep 2025 22:57:23 +0800 Subject: [PATCH] feat: support Base64URLEncodedPacker --- .../com/reajason/javaweb/packer/Packers.java | 2 ++ .../packer/base64/Base64URLEncoded.java | 21 +++++++++++++++++++ 2 files changed, 23 insertions(+) create mode 100644 packer/src/main/java/com/reajason/javaweb/packer/base64/Base64URLEncoded.java diff --git a/packer/src/main/java/com/reajason/javaweb/packer/Packers.java b/packer/src/main/java/com/reajason/javaweb/packer/Packers.java index 008d5717..a0e26cb1 100644 --- a/packer/src/main/java/com/reajason/javaweb/packer/Packers.java +++ b/packer/src/main/java/com/reajason/javaweb/packer/Packers.java @@ -2,6 +2,7 @@ package com.reajason.javaweb.packer; import com.reajason.javaweb.packer.aviator.AviatorPacker; import com.reajason.javaweb.packer.base64.Base64Packer; +import com.reajason.javaweb.packer.base64.Base64URLEncoded; import com.reajason.javaweb.packer.base64.DefaultBase64Packer; import com.reajason.javaweb.packer.base64.GzipBase64Packer; import com.reajason.javaweb.packer.bsh.BeanShellPacker; @@ -68,6 +69,7 @@ public enum Packers { */ Base64(new Base64Packer()), DefaultBase64(new DefaultBase64Packer(), Base64Packer.class), + Base64URLEncoded(new Base64URLEncoded(), Base64Packer.class), GzipBase64(new GzipBase64Packer(), Base64Packer.class), Jar(new DefaultJarPacker()), diff --git a/packer/src/main/java/com/reajason/javaweb/packer/base64/Base64URLEncoded.java b/packer/src/main/java/com/reajason/javaweb/packer/base64/Base64URLEncoded.java new file mode 100644 index 00000000..893d113d --- /dev/null +++ b/packer/src/main/java/com/reajason/javaweb/packer/base64/Base64URLEncoded.java @@ -0,0 +1,21 @@ +package com.reajason.javaweb.packer.base64; + +import com.reajason.javaweb.packer.ClassPackerConfig; +import com.reajason.javaweb.packer.Packer; +import lombok.SneakyThrows; + +import java.net.URLEncoder; +import java.nio.charset.StandardCharsets; + +/** + * @author ReaJason + * @since 2025/9/2 + */ +public class Base64URLEncoded implements Packer { + + @Override + @SneakyThrows + public String pack(ClassPackerConfig config) { + return URLEncoder.encode(config.getClassBytesBase64Str(), StandardCharsets.UTF_8.name()); + } +}