From 34981c30a78e8bbd7791131059a9210f9928b62c Mon Sep 17 00:00:00 2001
From: 刘光辉 <347230014@qq.com>
Date: 星期四, 17 九月 2026 09:24:09 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master' into master
---
jnpf-file/jnpf-file-yozo/jnpf-file-yozo-biz/src/main/java/jnpf/yozo/client/UaaAppAuthenticator.java | 92 ++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 92 insertions(+), 0 deletions(-)
diff --git a/jnpf-file/jnpf-file-yozo/jnpf-file-yozo-biz/src/main/java/jnpf/yozo/client/UaaAppAuthenticator.java b/jnpf-file/jnpf-file-yozo/jnpf-file-yozo-biz/src/main/java/jnpf/yozo/client/UaaAppAuthenticator.java
new file mode 100644
index 0000000..d9e1cee
--- /dev/null
+++ b/jnpf-file/jnpf-file-yozo/jnpf-file-yozo-biz/src/main/java/jnpf/yozo/client/UaaAppAuthenticator.java
@@ -0,0 +1,92 @@
+package jnpf.yozo.client;
+
+import jnpf.util.StringUtil;
+import jnpf.yozo.utils.SecretSignatureUtils;
+
+import java.security.InvalidKeyException;
+import java.security.NoSuchAlgorithmException;
+import java.util.Arrays;
+import java.util.Iterator;
+import java.util.Map;
+
+public class UaaAppAuthenticator implements AppAuthenticator {
+ public static final String OPEN_PARAM_PREFIX = "y_";
+ public static final String OPEN_PARAM_APPID = "y_appid";
+ public static final String OPEN_PARAM_SIGN = "y_SIGN";
+ private String signParamName;
+ private String paramNamePrefix;
+ private String appidParamName;
+
+ public UaaAppAuthenticator() {
+ }
+
+ public UaaAppAuthenticator(String signParamName, String paramNamePrefix, String appidParamName) {
+ this.signParamName = signParamName;
+ this.paramNamePrefix = paramNamePrefix;
+ this.appidParamName = appidParamName;
+ }
+
+ public String getSignParamName() {
+ return this.signParamName;
+ }
+
+ public void setSignParamName(String signParamName) {
+ this.signParamName = signParamName;
+ }
+
+ public String getParamNamePrefix() {
+ return this.paramNamePrefix;
+ }
+
+ public void setParamNamePrefix(String paramNamePrefix) {
+ this.paramNamePrefix = paramNamePrefix;
+ }
+
+ public String getAppidParamName() {
+ return this.appidParamName;
+ }
+
+ public void setAppidParamName(String appidParamName) {
+ this.appidParamName = appidParamName;
+ }
+
+ public String generateSign(String secret, Map<String, String[]> params) throws NoSuchAlgorithmException, InvalidKeyException {
+ String fullParamStr = this.uniqSortParams(params);
+ return SecretSignatureUtils.hmacSHA256(fullParamStr, secret);
+ }
+
+ private String uniqSortParams(Map<String, String[]> params) {
+ boolean prefix = StringUtil.isNotEmpty(this.paramNamePrefix);
+ params.remove(this.signParamName);
+ String[] paramKeys = new String[params.size()];
+ int idx = 0;
+ Iterator<String> var5 = params.keySet().iterator();
+
+ while(true) {
+ String param;
+ do {
+ if (!var5.hasNext()) {
+ Arrays.sort(paramKeys, 0, idx);
+ StringBuilder builder = new StringBuilder();
+ for (String key : paramKeys) {
+ String[] values = params.get(key);
+ if (values != null && values.length > 0) {
+ Arrays.sort(values);
+ for (String val : values) {
+ builder.append(key).append("=").append(val);
+ }
+ } else {
+ builder.append(key).append("=");
+ }
+ }
+
+ return builder.toString();
+ }
+
+ param = var5.next();
+ } while(prefix && param.startsWith(this.paramNamePrefix));
+
+ paramKeys[idx++] = param;
+ }
+ }
+}
--
Gitblit v1.8.0