From 688617b530d78db107b7e6ab33912a05ad3e8e0b Mon Sep 17 00:00:00 2001 From: lqyan Date: Wed, 24 Jul 2024 23:17:28 +0800 Subject: [PATCH] =?UTF-8?q?fix(=E8=8E=B7=E5=8F=96Token):=20=E4=BC=98?= =?UTF-8?q?=E5=8C=96Token=E8=8E=B7=E5=8F=96=E6=97=B6=E9=97=B4=E6=88=B3?= =?UTF-8?q?=EF=BC=8C=E6=94=AF=E6=8C=81=E8=87=AA=E5=AE=9A=E4=B9=89=E8=8E=B7?= =?UTF-8?q?=E5=8F=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jhinno/sdk/openapi/CommonConstant.java | 10 ++++--- .../sdk/openapi/api/JHApiExecution.java | 3 +-- .../sdk/openapi/client/JHApiClient.java | 20 ++++++++++---- .../sdk/openapi/client/JHApiHttpClient.java | 13 ++++++++++ .../openapi/client/JHApiHttpClientImpl.java | 26 +++++++++++++++++++ 5 files changed, 62 insertions(+), 10 deletions(-) diff --git a/jhinno-openapi-java-sdk/src/main/java/com/jhinno/sdk/openapi/CommonConstant.java b/jhinno-openapi-java-sdk/src/main/java/com/jhinno/sdk/openapi/CommonConstant.java index b5c3268..0df3b64 100644 --- a/jhinno-openapi-java-sdk/src/main/java/com/jhinno/sdk/openapi/CommonConstant.java +++ b/jhinno-openapi-java-sdk/src/main/java/com/jhinno/sdk/openapi/CommonConstant.java @@ -1,5 +1,9 @@ package com.jhinno.sdk.openapi; +import com.fasterxml.jackson.databind.util.StdDateFormat; + +import java.text.DateFormat; + /** * @author yanlongqi * @date 2024/1/31 10:17 @@ -83,10 +87,10 @@ public class CommonConstant { */ public static final String NORM_DATETIME_PATTERN = "yyyy-MM-dd HH:mm:ss"; - /** - * Rest请求JSON编码 + * 时间转换 */ - public static final String CONTENT_TYPE_APPLICATION_JSON = "application/json"; + public static final DateFormat HTTP_DATETIME_FORMAT = new StdDateFormat(); + } diff --git a/jhinno-openapi-java-sdk/src/main/java/com/jhinno/sdk/openapi/api/JHApiExecution.java b/jhinno-openapi-java-sdk/src/main/java/com/jhinno/sdk/openapi/api/JHApiExecution.java index cc667ef..59e4525 100644 --- a/jhinno-openapi-java-sdk/src/main/java/com/jhinno/sdk/openapi/api/JHApiExecution.java +++ b/jhinno-openapi-java-sdk/src/main/java/com/jhinno/sdk/openapi/api/JHApiExecution.java @@ -161,8 +161,7 @@ public class JHApiExecution { if (authType == AuthType.ACCESS_SECRET_MODE || !isUsedServerTime) { return String.valueOf(System.currentTimeMillis()); } - // todo 获取服务器的时间 - return ""; + return jhApiClient.getAppformServerCurrentTimeMillis(); } diff --git a/jhinno-openapi-java-sdk/src/main/java/com/jhinno/sdk/openapi/client/JHApiClient.java b/jhinno-openapi-java-sdk/src/main/java/com/jhinno/sdk/openapi/client/JHApiClient.java index 4a2a3c6..ac3bd3d 100644 --- a/jhinno-openapi-java-sdk/src/main/java/com/jhinno/sdk/openapi/client/JHApiClient.java +++ b/jhinno-openapi-java-sdk/src/main/java/com/jhinno/sdk/openapi/client/JHApiClient.java @@ -8,6 +8,7 @@ import com.jhinno.sdk.openapi.ClientErrorCode; import com.jhinno.sdk.openapi.ClientException; import com.jhinno.sdk.openapi.CommonConstant; import com.jhinno.sdk.openapi.api.ResponseResult; +import com.jhinno.sdk.openapi.api.auth.AuthPathConstant; import lombok.Data; import org.apache.commons.lang3.StringUtils; @@ -90,7 +91,7 @@ public class JHApiClient { InputStream content = apiHttpClient.get(getUrl(path), headers); return mapper.readValue(content, type); } catch (IOException e) { - throw new ClientException(e.getMessage()); + throw new ClientException(e.getMessage(), e); } } @@ -181,7 +182,7 @@ public class JHApiClient { InputStream content = apiHttpClient.post(getUrl(path), bodyStr, headers); return mapper.readValue(content, type); } catch (IOException e) { - throw new ClientException(e.getMessage()); + throw new ClientException(e.getMessage(), e); } } @@ -210,7 +211,7 @@ public class JHApiClient { InputStream content = apiHttpClient.put(getUrl(path), bodyStr, headers); return mapper.readValue(content, type); } catch (IOException e) { - throw new ClientException(e.getMessage()); + throw new ClientException(e.getMessage(), e); } } @@ -275,7 +276,7 @@ public class JHApiClient { InputStream content = apiHttpClient.delete(getUrl(path), headers); return mapper.readValue(content, type); } catch (IOException e) { - throw new ClientException(e.getMessage()); + throw new ClientException(e.getMessage(), e); } } @@ -316,7 +317,16 @@ public class JHApiClient { InputStream content = apiHttpClient.upload(getUrl(path), keyName, fileName, is, body, headers); return mapper.readValue(content, type); } catch (IOException e) { - throw new ClientException(e.getMessage()); + throw new ClientException(e.getMessage(), e); + } + } + + public String getAppformServerCurrentTimeMillis() { + try { + long currentTimeMillis = apiHttpClient.getAppformServerCurrentTimeMillis(getUrl(AuthPathConstant.PING)); + return String.valueOf(currentTimeMillis); + } catch (IOException e) { + throw new ClientException(e.getMessage(), e); } } } diff --git a/jhinno-openapi-java-sdk/src/main/java/com/jhinno/sdk/openapi/client/JHApiHttpClient.java b/jhinno-openapi-java-sdk/src/main/java/com/jhinno/sdk/openapi/client/JHApiHttpClient.java index d4149d0..6953a6e 100644 --- a/jhinno-openapi-java-sdk/src/main/java/com/jhinno/sdk/openapi/client/JHApiHttpClient.java +++ b/jhinno-openapi-java-sdk/src/main/java/com/jhinno/sdk/openapi/client/JHApiHttpClient.java @@ -1,6 +1,8 @@ package com.jhinno.sdk.openapi.client; +import com.jhinno.sdk.openapi.AuthType; + import java.io.IOException; import java.io.InputStream; import java.util.Map; @@ -68,4 +70,15 @@ public interface JHApiHttpClient { InputStream upload(String url, String keyName, String fileName, InputStream is, Map body, Map headers) throws IOException; + /** + * 获取Appform服务器当前的时间 + *

+ * {@link AuthType#TOKEN_MODE}模式,并且打开了获取服务器时间的开关需要实现改方法 + * + * @return 服务器的时间 + */ + default long getAppformServerCurrentTimeMillis(String url) throws IOException { + return System.currentTimeMillis(); + } + } diff --git a/jhinno-openapi-java-sdk/src/main/java/com/jhinno/sdk/openapi/client/JHApiHttpClientImpl.java b/jhinno-openapi-java-sdk/src/main/java/com/jhinno/sdk/openapi/client/JHApiHttpClientImpl.java index 3a762aa..e94e04d 100644 --- a/jhinno-openapi-java-sdk/src/main/java/com/jhinno/sdk/openapi/client/JHApiHttpClientImpl.java +++ b/jhinno-openapi-java-sdk/src/main/java/com/jhinno/sdk/openapi/client/JHApiHttpClientImpl.java @@ -2,9 +2,11 @@ package com.jhinno.sdk.openapi.client; import com.jhinno.sdk.openapi.ClientErrorCode; import com.jhinno.sdk.openapi.ClientException; +import com.jhinno.sdk.openapi.CommonConstant; import lombok.Data; import lombok.NoArgsConstructor; import org.apache.commons.lang3.StringUtils; +import org.apache.http.Header; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.HttpStatus; @@ -31,6 +33,7 @@ import java.nio.charset.StandardCharsets; import java.security.KeyManagementException; import java.security.KeyStoreException; import java.security.NoSuchAlgorithmException; +import java.text.ParseException; import java.util.Map; @Data @@ -204,4 +207,27 @@ public class JHApiHttpClientImpl implements JHApiHttpClient { httpPost.setEntity(builder.build()); return request(httpPost, headers).getContent(); } + + + @Override + public long getAppformServerCurrentTimeMillis(String url) throws IOException { + HttpGet httpGet = new HttpGet(url); + httpGet.setConfig(requestConfig); + try { + HttpResponse response = closeableHttpClient.execute(httpGet); + Header header = response.getFirstHeader("Date"); + if (header == null) { + throw new ClientException("获取时间戳响应为空!"); + } + String value = header.getValue(); + if (StringUtils.isBlank(value)) { + throw new ClientException("获取时间戳响应头为空!"); + } + return CommonConstant.HTTP_DATETIME_FORMAT.parse(value).getTime(); + } catch (ParseException e) { + throw new ClientException("时间格式获取失败,失败原因:" + e.getMessage(), e); + }finally { + httpGet.releaseConnection(); + } + } }