Skip to content

Commit d1cf930

Browse files
authored
Merge pull request #317 from JiazhenBao/main
freemarker和Httpclient
2 parents f4a1f60 + b303e8b commit d1cf930

7 files changed

Lines changed: 89 additions & 17 deletions

File tree

EasyExcel/pom.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
<groupId>com.netease.lowcode.extensions</groupId>
88
<artifactId>EasyExcel</artifactId>
9-
<version>2.3.0</version>
9+
<version>2.3.1</version>
1010

1111
<properties>
1212
<maven.compiler.source>8</maven.compiler.source>
@@ -118,7 +118,7 @@
118118
<version>1.4.3</version>
119119
<configuration>
120120
<jarWithDependencies>false</jarWithDependencies>
121-
<rewriteVersion>false</rewriteVersion>
121+
<!-- <rewriteVersion>true</rewriteVersion>-->
122122
</configuration>
123123
<executions>
124124
<execution>

EasyExcel/src/main/java/com/netease/lowcode/extensions/EasyExcelTools.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -159,7 +159,9 @@ private static String getFileUrl(String url) {
159159
int index = url.indexOf("/upload/");
160160
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
161161
int port = request.getLocalPort();
162-
162+
if (port == -1) {
163+
return url;
164+
}
163165
if (index >= 0) {
164166
url = "http://localhost:" + port + "/upload/" + url.substring(index + "/upload/".length());
165167
}
@@ -211,6 +213,7 @@ public static List<List<String>> readHeaderRows(InputStream inputStream,
211213
try {
212214
EasyExcel.read(inputStream, new AnalysisEventListener<Object>() {
213215
private int currentRow = -1;
216+
214217
@Override
215218
public void invokeHeadMap(Map<Integer, String> headMap, AnalysisContext context) {
216219
if (currentRow < headerRowCount) {
@@ -221,9 +224,11 @@ public void invokeHeadMap(Map<Integer, String> headMap, AnalysisContext context)
221224
throw new ExcelAnalysisException("表头读取完成");
222225
}
223226
}
227+
224228
@Override
225229
public void invoke(Object data, AnalysisContext context) {
226230
}
231+
227232
@Override
228233
public void doAfterAllAnalysed(AnalysisContext context) {
229234
}

freemarker-tool/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
<groupId>com.netease.lowcode</groupId>
88
<artifactId>freemarker-tool</artifactId>
99
<!-- We currently do not support snapshots. Please use a testing version number like 0.x.x, e.g. 0.1.12 -->
10-
<version>1.2.4</version>
10+
<version>1.2.5</version>
1111

1212
<properties>
1313
<maven.compiler.source>8</maven.compiler.source>

freemarker-tool/src/main/java/com/netease/lowcode/freemarker/util/FileUtil.java

Lines changed: 28 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,16 @@
1212
import java.io.IOException;
1313
import java.io.InputStream;
1414
import java.io.UnsupportedEncodingException;
15-
import java.net.*;
15+
import java.net.HttpURLConnection;
16+
import java.net.URI;
17+
import java.net.URISyntaxException;
18+
import java.net.URL;
1619
import java.util.Arrays;
20+
import java.util.Objects;
1721

1822
public class FileUtil {
1923

20-
private static final Logger logger = LoggerFactory.getLogger(FileUtil.class);
24+
private static final Logger logger = LoggerFactory.getLogger("LCAP_CUSTOMIZE_LOGGER");
2125

2226
public static InputStream getFileInputStream(String urlStr) throws IOException {
2327
URL url = new URL(getTrueUrl(urlStr));
@@ -26,6 +30,7 @@ public static InputStream getFileInputStream(String urlStr) throws IOException {
2630
connection.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.82 Safari/537.36");
2731
return url.openStream();
2832
}
33+
2934
// 新增方法:检测 URL 是否已经编码
3035
private static boolean isUrlEncoded(String url) {
3136
try {
@@ -35,6 +40,7 @@ private static boolean isUrlEncoded(String url) {
3540
return false;
3641
}
3742
}
43+
3844
public static String getTrueUrl(String urlStr) throws UnsupportedEncodingException {
3945
URI uri = null;
4046
try {
@@ -56,19 +62,30 @@ public static String getTrueUrl(String urlStr) throws UnsupportedEncodingExcepti
5662
String fileNameEncoded = java.net.URLEncoder.encode(fileName, "UTF-8");
5763
urlStr = urlStr.replace(fileName, fileNameEncoded);
5864
}
59-
if (!urlStr.startsWith("http") && urlStr.startsWith("/upload")) {
60-
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
61-
int port = request.getLocalPort();
62-
return "http://127.0.0.1:" + port + urlStr;
65+
try {
66+
if (!urlStr.startsWith("http") && urlStr.startsWith("/upload")) {
67+
HttpServletRequest request = ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest();
68+
int port = request.getLocalPort();
69+
return "http://127.0.0.1:" + port + urlStr;
70+
}
71+
} catch (Exception e) {
72+
logger.error("urlStr转本地失败", e);
6373
}
6474
return urlStr;
6575
}
6676

6777
public static UploadResponseDTO uploadStream(InputStream inputStream, String fileName) throws IOException {
68-
HttpServletRequest httpServletRequest = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
69-
int port = httpServletRequest.getLocalPort();
70-
78+
int port;
79+
try {
80+
HttpServletRequest httpServletRequest = ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest();
81+
port = httpServletRequest.getLocalPort();
82+
} catch (Exception e) {
83+
logger.error("获取本地port失败,默认获取8080", e);
84+
//兜底方案
85+
port = 8080;
86+
}
7187
String uploadUrl = "http://127.0.0.1:" + port + "/gateway/lowcode/api/v1/app/upload";
88+
7289
OkHttpClient client = new OkHttpClient();
7390

7491
byte[] fileBytes;
@@ -97,7 +114,7 @@ public static UploadResponseDTO uploadStream(InputStream inputStream, String fil
97114
if (response.isSuccessful()) {
98115
return JsonUtil.fromJson(response.body().string(), UploadResponseDTO.class);
99116
}
100-
logger.error(String.format("文件上传失败,%s",response));
101-
throw new RuntimeException(String.format("文件上传失败,%s",response));
117+
logger.error(String.format("文件上传失败,%s", response));
118+
throw new RuntimeException(String.format("文件上传失败,%s", response));
102119
}
103120
}

httpclient/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
<artifactId>httpclient</artifactId>
1717
<name>httpclient</name>
1818
<description>httpclient</description>
19-
<version>1.3.0</version>
19+
<version>1.4.1</version>
2020

2121
<dependencies>
2222
<dependency>

httpclient/src/main/java/com/netease/http/httpclient/LCAPHttpClient.java

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -181,6 +181,44 @@ public ExchangeResponseDto exchangeV4(@Required String url, @Required String htt
181181
}
182182
}
183183

184+
/**
185+
* http/https调用(非form使用,异常时返回http错误码)
186+
*
187+
* @param url
188+
* @param httpMethod
189+
* @param header
190+
* @param body
191+
* @return
192+
* @throws URISyntaxException
193+
*/
194+
@NaslLogic
195+
@Retryable(value = {Exception.class}, maxAttempts = 3, backoff = @Backoff(delay = 1000L))
196+
public ExchangeResponseDto exchangeCrtV4(@Required String url, @Required String httpMethod, @Required Map<String, String> header,
197+
@Required String body, @Required Boolean isIgnoreCrt) throws TransferCommonException {
198+
try {
199+
if (isIgnoreCrt == null) {
200+
isIgnoreCrt = false;
201+
}
202+
if (isIgnoreCrt) {
203+
SSLUtil.turnOffCertificateValidation();
204+
}
205+
RequestParamAllBodyTypeInner requestParam = new RequestParamAllBodyTypeInner();
206+
requestParam.setBody(body);
207+
//填充requestParam参数
208+
requestParam.setUrl(url);
209+
requestParam.setHttpMethod(httpMethod);
210+
requestParam.setHeader(header);
211+
ResponseEntity<String> exchange = httpClientService.exchangeInner(requestParam, restTemplate, String.class);
212+
return convertToExchangeResponseDto(exchange);
213+
} catch (HttpClientErrorException e) {
214+
logger.error("", e);
215+
throw new TransferCommonException(e.getStatusCode().value(), e.getResponseBodyAsString());
216+
} catch (Exception e) {
217+
logger.error("", e);
218+
throw new TransferCommonException(e.getMessage(), e);
219+
}
220+
}
221+
184222
/**
185223
* 下载文件并上传到nos(默认fileUrl是get请求,默认格式xlsx)
186224
*
@@ -266,6 +304,12 @@ public String downloadFileUploadNosExtendHttpMethod(@Required String fileUrl, St
266304
*/
267305
@NaslLogic
268306
public String uploadNosExchange(String fileUrl, String requestUrl, RequestParam requestParam) throws TransferCommonException {
307+
if (requestParam.getIsIgnoreCrt() == null) {
308+
requestParam.setIsIgnoreCrt(false);
309+
}
310+
if (requestParam.getIsIgnoreCrt()) {
311+
SSLUtil.turnOffCertificateValidation();
312+
}
269313
URL url = null;
270314
try {
271315
url = new URL(requestUrl);
@@ -313,6 +357,12 @@ public String uploadNosExchangeCommonFileType(String fileUrl, String fileName, R
313357
public String uploadNosExchangeCommon(UploadFileParam uploadFileParam, String fileName, RequestParam requestParam) throws TransferCommonException {
314358
File file = null;
315359
try {
360+
if (requestParam.getIsIgnoreCrt() == null) {
361+
requestParam.setIsIgnoreCrt(false);
362+
}
363+
if (requestParam.getIsIgnoreCrt()) {
364+
SSLUtil.turnOffCertificateValidation();
365+
}
316366
RequestParamAllBodyTypeInner requestParamGetFile = new RequestParamAllBodyTypeInner();
317367
requestParamGetFile.setUrl(uploadFileParam.getFileUrl());
318368
//文件下载一般是get,默认get

httpclient/src/main/java/com/netease/http/web/ExtHttpFilterConfig.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ public class ExtHttpFilterConfig {
2828
private volatile String secret;
2929

3030
@Bean
31-
public FilterRegistrationBean<Filter> expandTransferLogicAuthFilterRegistration() {
31+
public FilterRegistrationBean<Filter> httpClientExpandTransferLogicAuthFilterRegistration() {
3232
FilterRegistrationBean<Filter> registrationBean = new FilterRegistrationBean<>();
3333
ExtHttpLogicAuthFilter extHttpLogicAuthFilter = new ExtHttpLogicAuthFilter();
3434
extHttpLogicAuthFilter.setExpandLogicAuthFlag(expandLogicAuthFlag);

0 commit comments

Comments
 (0)