iailab-plat-sdk/src/main/java/com/iailab/sdk/IailabPlatSdkMain.java
@@ -1,6 +1,5 @@ package com.iailab.sdk; import org.springframework.boot.autoconfigure.SpringBootApplication; /** * 项目的主类 iailab-plat-sdk/src/main/java/com/iailab/sdk/auth/client/IailabClient.java
文件名从 iailab-plat-sdk/src/main/java/com/iailab/sdk/auth/client/IailabAuthClient.java 修改 @@ -31,7 +31,7 @@ * @Description * @createTime 2025年02月18日 */ public class IailabAuthClient { public class IailabClient { private static final RestTemplate restTemplate = new RestTemplate(); @@ -52,18 +52,17 @@ private static String CLIENT_ID = SdkAutoConfiguration.CLIENT_ID; private static String CLIENT_SECRET = SdkAutoConfiguration.CLIENT_SECRET; private static String USERNAME = SdkAutoConfiguration.USERNAME; private static String PASSWORD = SdkAutoConfiguration.PASSWORD; private static final String GRAND_TYPE = "password"; private static final String GRAND_TYPE = "client_credentials"; private static final String SCOPE = "user.read user.write"; private static final String CHARSET = "utf-8"; private static final IailabAuthClient iailabAuthClient = new IailabAuthClient(); private static final IailabClient iailabClient = new IailabClient(); public static IailabAuthClient getInstance() { return iailabAuthClient; public static IailabClient getInstance() { return iailabClient; } @@ -89,10 +88,9 @@ headers.setContentType(MediaType.APPLICATION_JSON_UTF8); // 1.2 构建authenticate请求URL String authenticateUrl = BASE_URL + "/system/oauth2/token?" // 密码模式的参数 // 客户端模式的参数 + "&grant_type=" + GRAND_TYPE + "&username=" + USERNAME + "&password=" + PASSWORD + "&scope=" + SCOPE; // 2. 执行请求 ResponseEntity<Map<String, Object>> exchange = restTemplate.exchange( @@ -106,8 +104,6 @@ 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)) { iailab-plat-sdk/src/main/java/com/iailab/sdk/auth/config/SdkAutoConfiguration.java
@@ -32,9 +32,6 @@ @Value("${iailab.token.username}") public String username; @Value("${iailab.token.password}") public String password; public static String BASE_URL; public static Long TENANT_ID; @@ -45,8 +42,6 @@ public static String USERNAME; public static String PASSWORD; @PostConstruct public void initUrl() { BASE_URL = this.baseUrl; @@ -54,6 +49,5 @@ CLIENT_ID = this.clientId; CLIENT_SECRET = this.clientSecret; USERNAME = this.username; PASSWORD = this.password; } } iailab-plat-sdk/src/main/java/com/iailab/sdk/auth/constants/SdkErrorCodeConstants.java
@@ -5,7 +5,6 @@ public class SdkErrorCodeConstants { // ========== AUTH 模块 1-002-000-000 ========== public static final ErrorCode AUTH_LOGIN_BAD_CREDENTIALS = new ErrorCode(1_002_000_000, "登录失败,账号密码不正确"); public static final ErrorCode AUTH_BAD_CREDENTIALS = new ErrorCode(400, "client_id 或 client_secret 未正确传递"); public static final ErrorCode AUTH_REFRESH_TOKEN_ERROR = new ErrorCode(1_002_000_001, "刷新token失败"); public static final ErrorCode OAUTH2_CLIENT_NOT_EXISTS = new ErrorCode(1_002_020_000, "OAuth2 客户端不存在"); iailab-plat-sdk/src/main/java/com/iailab/sdk/util/http/IailabHttpUtils.java
@@ -1,6 +1,6 @@ package com.iailab.sdk.util.http; import com.iailab.sdk.auth.client.IailabAuthClient; import com.iailab.sdk.auth.client.IailabClient; import com.iailab.sdk.auth.config.SdkAutoConfiguration; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; @@ -54,7 +54,7 @@ //设置参数 httpGet.addHeader("Accept", "application/json"); httpGet.addHeader("Content-Type", "application/json;charset=UTF-8"); httpGet.addHeader("Authorization", "Bearer " + IailabAuthClient.accessToken); httpGet.addHeader("Authorization", "Bearer " + IailabClient.accessToken); httpGet.addHeader("Tenant-Id", SdkAutoConfiguration.TENANT_ID.toString()); HttpResponse response = httpClient.execute(httpGet); if (response != null) { @@ -88,7 +88,7 @@ //设置参数 httpPost.addHeader("Accept", "application/json"); httpPost.addHeader("Content-Type", "application/json;charset=UTF-8"); httpPost.addHeader("Authorization", "Bearer " + IailabAuthClient.accessToken); httpPost.addHeader("Authorization", "Bearer " + IailabClient.accessToken); httpPost.addHeader("Tenant-Id", SdkAutoConfiguration.TENANT_ID.toString()); StringEntity stringEntity = new StringEntity(json); stringEntity.setContentEncoding("UTF-8"); @@ -109,10 +109,10 @@ private static void checkToken() throws Exception { //第一次请求或者token过期,需要重新获取token if(ObjectUtils.isEmpty(IailabAuthClient.accessToken)) { IailabAuthClient.authenticate(); } else if (IailabAuthClient.expireTime < System.currentTimeMillis() / 1000) { IailabAuthClient.refreshToken(); if(ObjectUtils.isEmpty(IailabClient.accessToken)) { IailabClient.authenticate(); } else if (IailabClient.expireTime < System.currentTimeMillis() / 1000) { IailabClient.refreshToken(); } } iailab-plat-sdk/src/test/java/com/iailab/sdk/IailabClientTest.java
@@ -1,14 +1,12 @@ package com.iailab.sdk; import com.iailab.sdk.auth.client.IailabAuthClient; import com.iailab.sdk.auth.client.IailabClient; import com.iailab.sdk.auth.client.common.pojo.CommonResult; import com.iailab.sdk.auth.client.dto.ApiDataQueryDTO; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -26,13 +24,13 @@ @Test public void testLogin() { IailabAuthClient.authenticate(); IailabClient.authenticate(); } @Test public void testRefreshToken() throws Exception { // 准备参数 IailabAuthClient.refreshToken(); IailabClient.refreshToken(); } @Test @@ -44,7 +42,7 @@ itemNos.add("P0000100010"); params.put("itemNos", itemNos); // 准备参数 String s = IailabAuthClient.doHttp("POST", "http://172.16.8.100/admin-api/data/api/query-plans/chart", params); String s = IailabClient.doHttp("POST", "http://172.16.8.100/admin-api/data/api/query-plans/chart", params); System.out.println(s); } @@ -52,7 +50,7 @@ public void testQueryPointsRealValue() { List<String> pointNos = new ArrayList<>(); pointNos.add("111"); CommonResult<Map<String, Object>> stringObjectMap = IailabAuthClient.getInstance().queryPointsRealValue(pointNos); CommonResult<Map<String, Object>> stringObjectMap = IailabClient.getInstance().queryPointsRealValue(pointNos); System.out.println(stringObjectMap); }