浏览代码

扩展core-retrofit增加基于ThreadLocal的动态签名信息容器

Signed-off-by: luoshi <luoshi@qmth.com.cn>
luoshi 3 年之前
父节点
当前提交
10fbae86a8

+ 37 - 0
core-retrofit/src/main/java/com/qmth/boot/core/retrofit/utils/ThreadLocalSignatureProvider.java

@@ -0,0 +1,37 @@
+package com.qmth.boot.core.retrofit.utils;
+
+import com.qmth.boot.core.retrofit.interfaces.SignatureProvider;
+import com.qmth.boot.tools.signature.SignatureType;
+
+/**
+ * 基于ThreadLocal的动态签名信息容器
+ */
+public class ThreadLocalSignatureProvider implements SignatureProvider {
+
+    private ThreadLocal<SignatureType> signatureType = new ThreadLocal<>();
+
+    private ThreadLocal<String> identity = new ThreadLocal<>();
+
+    private ThreadLocal<String> secret = new ThreadLocal<>();
+
+    public void setValue(SignatureType type, String identity, String secret) {
+        this.signatureType.set(type);
+        this.identity.set(identity);
+        this.secret.set(secret);
+    }
+
+    @Override
+    public SignatureType getType() {
+        return signatureType.get();
+    }
+
+    @Override
+    public String getIdentity() {
+        return identity.get();
+    }
+
+    @Override
+    public String getSecret() {
+        return secret.get();
+    }
+}