From a365eb1d7213c5f28c6d2fc2b8f87099d71d17d4 Mon Sep 17 00:00:00 2001
From: 潘志宝 <979469083@qq.com>
Date: 星期一, 03 三月 2025 16:09:21 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 sdk/src/main/java/com/iailab/sdk/util/http/IailabHttpUtils.java |   32 ++++++++++++++++++++++++++------
 1 files changed, 26 insertions(+), 6 deletions(-)

diff --git a/sdk/src/main/java/com/iailab/sdk/util/http/IailabHttpUtils.java b/sdk/src/main/java/com/iailab/sdk/util/http/IailabHttpUtils.java
index b5cf6c4..9c1eda9 100644
--- a/sdk/src/main/java/com/iailab/sdk/util/http/IailabHttpUtils.java
+++ b/sdk/src/main/java/com/iailab/sdk/util/http/IailabHttpUtils.java
@@ -1,6 +1,7 @@
 package com.iailab.sdk.util.http;
 
 import com.iailab.sdk.auth.client.IailabAuthClient;
+import com.iailab.sdk.auth.config.AuthProperties;
 import org.apache.http.HttpEntity;
 import org.apache.http.HttpResponse;
 import org.apache.http.client.methods.HttpGet;
@@ -8,6 +9,7 @@
 import org.apache.http.entity.StringEntity;
 import org.apache.http.util.EntityUtils;
 import org.springframework.util.CollectionUtils;
+import org.springframework.util.ObjectUtils;
 
 import java.io.UnsupportedEncodingException;
 import java.net.URLEncoder;
@@ -16,6 +18,12 @@
 
 public class IailabHttpUtils {
 
+    private static AuthProperties authProperties;
+
+    public static void setAuthProperties(AuthProperties properties) {
+        authProperties = properties;
+    }
+
     /**
      *
      * @param url
@@ -23,8 +31,9 @@
      * @param charset
      * @return
      */
-    public static String doGet(String url, Map<String, String> map, String charset, String accessToken) {
+    public static String doGet(String url, Map<String, String> map, String charset) throws Exception {
         System.out.println("start doGet url: " + url);
+        checkToken();
         org.apache.http.client.HttpClient httpClient = null;
         HttpGet httpGet = null;
         String result = null;
@@ -51,8 +60,9 @@
             //设置参数
             httpGet.addHeader("Accept", "application/json");
             httpGet.addHeader("Content-Type", "application/json;charset=UTF-8");
-            httpGet.addHeader("Authorization", "Bearer " + accessToken);
-            httpGet.addHeader("Tenant-Id", String.valueOf(IailabAuthClient.TENANT_ID));
+            httpGet.addHeader("Authorization", "Bearer " + IailabAuthClient.accessToken);
+            httpGet.addHeader("Tenant-Id", String.valueOf(authProperties.getTenantId()));
+
             HttpResponse response = httpClient.execute(httpGet);
             if (response != null) {
                 HttpEntity resEntity = response.getEntity();
@@ -73,8 +83,9 @@
      * @param charset
      * @return
      */
-    public static String doPost(String url, String json, String charset, String accessToken) {
+    public static String doPost(String url, String json, String charset) throws Exception {
         System.out.println("start doPost url: " + url);
+        checkToken();
         org.apache.http.client.HttpClient httpClient = null;
         HttpPost httpPost = null;
         String result = null;
@@ -84,8 +95,8 @@
             //设置参数
             httpPost.addHeader("Accept", "application/json");
             httpPost.addHeader("Content-Type", "application/json;charset=UTF-8");
-            httpPost.addHeader("Authorization", "Bearer " + accessToken);
-            httpPost.addHeader("Tenant-Id", String.valueOf(IailabAuthClient.TENANT_ID));
+            httpPost.addHeader("Authorization", "Bearer " + IailabAuthClient.accessToken);
+            httpPost.addHeader("Tenant-Id", String.valueOf(authProperties.getTenantId()));
             StringEntity stringEntity = new StringEntity(json);
             stringEntity.setContentEncoding("UTF-8");
             stringEntity.setContentType("application/json");
@@ -103,4 +114,13 @@
         return result;
     }
 
+    private static void checkToken() throws Exception {
+        //第一次请求或者token过期,需要重新获取token
+        if(ObjectUtils.isEmpty(IailabAuthClient.accessToken)) {
+            IailabAuthClient.authenticate();
+        } else if (IailabAuthClient.expireTime < System.currentTimeMillis() / 1000) {
+            IailabAuthClient.refreshToken();
+        }
+    }
+
 }

--
Gitblit v1.9.3