Browse Source

修改core-fss和tools-common,增加urlEncode和urlDecode方法,并对签名属性进行转义处理

Signed-off-by: luoshi <luoshi@qmth.com.cn>
luoshi 11 months ago
parent
commit
eec988071b

+ 2 - 1
core-fss/src/main/java/com/qmth/boot/core/fss/utils/FssSigner.java

@@ -27,7 +27,8 @@ public class FssSigner {
     public String buildUrlParam(String path, Duration expireDuration) {
         long expireTime = System.currentTimeMillis() + expireDuration.toMillis();
         return FssUtils.INNER_ENDPOINT_PARAM_EXPIRE_TIME + "=" + expireTime + "&" + FssUtils.INNER_ENDPOINT_PARAM_BUCKET
-                + "=" + bucket + "&" + FssUtils.INNER_ENDPOINT_PARAM_SIGNATURE + "=" + buildSignature(path, expireTime);
+                + "=" + CodecUtils.urlEncode(bucket) + "&" + FssUtils.INNER_ENDPOINT_PARAM_SIGNATURE + "="
+                + buildSignature(path, expireTime);
     }
 
     public void validate(String bucket, String path, long expireTime, String signature) {

+ 18 - 0
tools-common/src/main/java/com/qmth/boot/tools/codec/CodecUtils.java

@@ -9,6 +9,8 @@ import javax.xml.bind.DatatypeConverter;
 import java.io.BufferedInputStream;
 import java.io.File;
 import java.io.FileInputStream;
+import java.net.URLDecoder;
+import java.net.URLEncoder;
 import java.nio.charset.StandardCharsets;
 import java.security.MessageDigest;
 import java.util.Base64;
@@ -98,4 +100,20 @@ public class CodecUtils {
         }
     }
 
+    public static String urlEncode(String text) {
+        try {
+            return URLEncoder.encode(text, StandardCharsets.UTF_8.name());
+        } catch (Exception e) {
+            return text;
+        }
+    }
+
+    public static String urlDecode(String text) {
+        try {
+            return URLDecoder.decode(text, StandardCharsets.UTF_8.name());
+        } catch (Exception e) {
+            return text;
+        }
+    }
+
 }