From 651111e80d84333cbaf9907d2ee1f90c3dfc62e4 Mon Sep 17 00:00:00 2001
From: 潘志宝 <979469083@qq.com>
Date: 星期五, 07 三月 2025 13:48:17 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 iailab-plat-sdk/src/main/java/com/iailab/sdk/auth/client/IailabAuthClient.java |   58 ++++++++++++++++++++++++++++++++++++++++++++--------------
 1 files changed, 44 insertions(+), 14 deletions(-)

diff --git a/iailab-plat-sdk/src/main/java/com/iailab/sdk/auth/client/IailabAuthClient.java b/iailab-plat-sdk/src/main/java/com/iailab/sdk/auth/client/IailabAuthClient.java
index 388ff67..17c088b 100644
--- a/iailab-plat-sdk/src/main/java/com/iailab/sdk/auth/client/IailabAuthClient.java
+++ b/iailab-plat-sdk/src/main/java/com/iailab/sdk/auth/client/IailabAuthClient.java
@@ -1,9 +1,11 @@
 package com.iailab.sdk.auth.client;
 
+import com.alibaba.fastjson.JSON;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.iailab.sdk.auth.client.dto.TokenDTO;
-import com.iailab.sdk.auth.client.vo.AuthLoginReqVO;
 import com.iailab.sdk.auth.config.AuthProperties;
+import com.iailab.sdk.auth.constants.SdkErrorCodeConstants;
+import com.iailab.sdk.util.http.IailabHttpUtils;
 import org.springframework.core.ParameterizedTypeReference;
 import org.springframework.http.*;
 import org.springframework.stereotype.Component;
@@ -16,9 +18,7 @@
 import java.nio.charset.StandardCharsets;
 import java.util.*;
 
-import static com.iailab.framework.common.exception.enums.GlobalErrorCodeConstants.BAD_REQUEST;
 import static com.iailab.framework.common.exception.util.ServiceExceptionUtil.exception;
-import static com.iailab.sdk.auth.enums.ErrorCodeConstants.*;
 
 /**
  * @author Houzhongjian
@@ -40,6 +40,8 @@
     private static final String GRAND_TYPE = "password";
 
     private static final String SCOPE = "user.read user.write";
+
+    private static final String CHARSET = "utf-8";
 
     // 鉴权token
     public static String accessToken;
@@ -72,13 +74,22 @@
                 new HttpEntity<>(headers),
                 new ParameterizedTypeReference<Map<String, Object>>() {
                 });
-        Map<String, Object> authMap = exchange.getBody();
-        if(AUTH_BAD_CREDENTIALS.getCode().equals(authMap.get("code"))) {
-            throw exception(AUTH_BAD_CREDENTIALS);
-        } else if(AUTH_LOGIN_BAD_CREDENTIALS.getCode().equals(authMap.get("code"))) {
-            throw exception(AUTH_LOGIN_BAD_CREDENTIALS);
-        }
         Assert.isTrue(exchange.getStatusCode().is2xxSuccessful(), "响应必须是 200 成功");
+        Map<String, Object> authMap = exchange.getBody();
+        Object code = authMap.get("code");
+        if(SdkErrorCodeConstants.AUTH_BAD_CREDENTIALS.getCode().equals(code)) {
+            throw exception(SdkErrorCodeConstants.AUTH_BAD_CREDENTIALS);
+        } else if(SdkErrorCodeConstants.AUTH_LOGIN_BAD_CREDENTIALS.getCode().equals(code)) {
+            throw exception(SdkErrorCodeConstants.AUTH_LOGIN_BAD_CREDENTIALS);
+        } else if(SdkErrorCodeConstants.OAUTH2_CLIENT_REDIRECT_URI_NOT_MATCH.getCode().equals(code)) {
+            throw exception(SdkErrorCodeConstants.OAUTH2_CLIENT_REDIRECT_URI_NOT_MATCH);
+        } else if(SdkErrorCodeConstants.OAUTH2_CLIENT_CLIENT_SECRET_ERROR.getCode().equals(code)) {
+            throw exception(SdkErrorCodeConstants.OAUTH2_CLIENT_CLIENT_SECRET_ERROR);
+        } else if(SdkErrorCodeConstants.OAUTH2_CLIENT_NOT_EXISTS.getCode().equals(code)) {
+            throw exception(SdkErrorCodeConstants.OAUTH2_CLIENT_NOT_EXISTS);
+        } else if(SdkErrorCodeConstants.OAUTH2_CLIENT_DISABLE.getCode().equals(code)) {
+            throw exception(SdkErrorCodeConstants.OAUTH2_CLIENT_DISABLE);
+        }
         accessToken = authMap.get("access_token").toString();
         refreshToken = authMap.get("refresh_token").toString();
         expireTime = Long.valueOf(authMap.get("expires_time").toString());
@@ -107,13 +118,33 @@
             if (code == 401) {
                 authenticate();
             } else {
-                throw exception(AUTH_REFRESH_TOKEN_ERROR);
+                throw exception(SdkErrorCodeConstants.AUTH_REFRESH_TOKEN_ERROR);
             }
         } else {
             accessToken = authMap.get("access_token").toString();
             expireTime = Long.valueOf(authMap.get("expires_time").toString());
         }
         return handleResponse(exchange);
+    }
+
+    /**
+     * 平台http请求封装
+     * @param method
+     * @param url
+     * @param params
+     * @return
+     * @throws Exception
+     */
+    public static String doHttp(String method, String url, Map<String, Object> params) throws Exception {
+        String response = null;
+        String upperMethod = method.toUpperCase();
+        if("GET".equals(upperMethod)) {
+            response = IailabHttpUtils.doGet(url, params, CHARSET);
+        } else if("POST".equals(upperMethod)) {
+            ObjectMapper objectMapper = new ObjectMapper();
+            response = IailabHttpUtils.doPost(url, objectMapper.writeValueAsString(params), CHARSET);
+        }
+        return response;
     }
 
     private static void addClientHeader(HttpHeaders headers) {
@@ -131,10 +162,9 @@
         System.out.println(response);
         TokenDTO authTokenDTO = new TokenDTO();
         Map<String, Object> authMap = (Map<String, Object>)response.getBody();
-        Map<String, Object> tokenData = (Map<String, Object>)authMap.get("data");
-        authTokenDTO.setAccessToken(tokenData.get("accessToken").toString());
-        authTokenDTO.setRefreshToken(tokenData.get("refreshToken").toString());
-        authTokenDTO.setExpiresTime(Long.valueOf(tokenData.get("expiresTime").toString()));
+        authTokenDTO.setAccessToken(authMap.get("access_token").toString());
+        authTokenDTO.setRefreshToken(authMap.get("refresh_token").toString());
+        authTokenDTO.setExpiresTime(Long.valueOf(authMap.get("expires_time").toString()));
         return authTokenDTO;
     }
 

--
Gitblit v1.9.3