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