Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
kt-keystone
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
Matrix
kt-keystone
Commits
36101754
提交
36101754
authored
3月 23, 2022
作者:
黄夏豪
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix(base): 修改了#{}变量的正则
上级
86ce261b
隐藏空白字符变更
内嵌
并排
正在显示
4 个修改的文件
包含
23 行增加
和
35 行删除
+23
-35
CheckPointActuator.java
...a/org/matrix/actuators/checkpoint/CheckPointActuator.java
+3
-3
EnvironmentActuator.java
...in/java/org/matrix/actuators/env/EnvironmentActuator.java
+7
-5
HttpClientActuator.java
...a/org/matrix/actuators/httpclient/HttpClientActuator.java
+6
-25
CompleteExpressionUtil.java
...ava/org/matrix/actuators/util/CompleteExpressionUtil.java
+7
-2
没有找到文件。
kt-base/src/main/java/org/matrix/actuators/checkpoint/CheckPointActuator.java
浏览文件 @
36101754
...
...
@@ -82,7 +82,7 @@ public class CheckPointActuator implements Actuator {
public
CheckPointResultDetail
jsonPathCheck
(
String
jsonPathCheckPoint
,
Object
jsonObject
,
Long
envId
,
Long
projectId
)
{
String
expression
=
jsonPathCheckPoint
;
try
{
expression
=
completeExpressionUtil
.
complete
Dynamic
Variable
(
expression
=
completeExpressionUtil
.
completeVariable
(
expression
,
envId
,
projectId
)
...
...
@@ -155,7 +155,7 @@ public class CheckPointActuator implements Actuator {
List
<
CheckPointResultDetail
>
resultDetails
=
new
ArrayList
<>();
String
[]
split
=
containCheckPoint
.
split
(
","
);
for
(
String
containExpression
:
split
)
{
String
parseContainExpression
=
completeExpressionUtil
.
complete
Dynamic
Variable
(
String
parseContainExpression
=
completeExpressionUtil
.
completeVariable
(
containExpression
,
envId
,
projectId
)
...
...
@@ -185,7 +185,7 @@ public class CheckPointActuator implements Actuator {
List
<
CheckPointResultDetail
>
resultDetails
=
new
ArrayList
<>();
String
[]
split
=
noContainCheckPoint
.
split
(
","
);
for
(
String
noContainExpression
:
split
)
{
String
parseNoContainExpression
=
completeExpressionUtil
.
complete
Dynamic
Variable
(
String
parseNoContainExpression
=
completeExpressionUtil
.
completeVariable
(
noContainExpression
,
envId
,
projectId
)
...
...
kt-base/src/main/java/org/matrix/actuators/env/EnvironmentActuator.java
浏览文件 @
36101754
...
...
@@ -9,10 +9,7 @@ import org.matrix.database.service.IEnvironmentService;
import
org.matrix.exception.GlobalException
;
import
org.springframework.stereotype.Component
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Optional
;
import
java.util.*
;
/**
* EnvironmentActuator.
...
...
@@ -28,10 +25,11 @@ public class EnvironmentActuator implements Actuator {
private
final
IEnvironmentService
envService
;
//language=RegExp
/**
* 用于正则找出形如#{id}这样的环境
*/
public
static
final
String
ENV_VAR_EXP
=
"(#\\{(
\\w
*)})"
;
public
static
final
String
ENV_VAR_EXP
=
"(#\\{(
[\\w|[\\u4e00-\\u9fa5]]
*)})"
;
/**
* 替换掉SQL表达式中的形如#{id}这样的环境共享变量
...
...
@@ -51,6 +49,10 @@ public class EnvironmentActuator implements Actuator {
.
orElseThrow
(()
->
new
GlobalException
(
"没有找到对应ID的example(env)对象,id = "
+
envId
));
Map
<
String
,
String
>
envMap
=
env
.
getVariable
();
List
<
String
>
envList
=
ReUtil
.
findAll
(
ENV_VAR_EXP
,
sqlExp
,
2
,
new
ArrayList
<>());
// 对传入的表达式进行一次验证
if
(
envList
.
size
()
==
0
)
{
throw
new
GlobalException
(
String
.
format
(
"没有在表达式中 %s 寻找到环境变量,您需要提供例如 `#{var_example}`这样的语法"
,
sqlExp
));
}
// 到对应env的变量池里找到值替换掉
for
(
String
key
:
envList
)
{
if
(
envMap
.
containsKey
(
key
))
{
...
...
kt-base/src/main/java/org/matrix/actuators/httpclient/HttpClientActuator.java
浏览文件 @
36101754
...
...
@@ -3,22 +3,7 @@ package org.matrix.actuators.httpclient;
import
com.alibaba.fastjson.JSONObject
;
import
io.netty.handler.codec.http.HttpHeaderValues
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.http.client.CookieStore
;
import
org.apache.http.client.config.RequestConfig
;
import
org.apache.http.config.Registry
;
import
org.apache.http.config.RegistryBuilder
;
import
org.apache.http.config.SocketConfig
;
import
org.apache.http.conn.HttpHostConnectException
;
import
org.apache.http.conn.socket.ConnectionSocketFactory
;
import
org.apache.http.conn.socket.PlainConnectionSocketFactory
;
import
org.apache.http.conn.ssl.NoopHostnameVerifier
;
import
org.apache.http.conn.ssl.SSLConnectionSocketFactory
;
import
org.apache.http.conn.ssl.TrustStrategy
;
import
org.apache.http.impl.NoConnectionReuseStrategy
;
import
org.apache.http.impl.client.BasicCookieStore
;
import
org.apache.http.impl.client.DefaultHttpRequestRetryHandler
;
import
org.apache.http.impl.client.HttpClients
;
import
org.apache.http.impl.conn.PoolingHttpClientConnectionManager
;
import
org.matrix.actuators.Actuator
;
import
org.matrix.actuators.util.CompleteExpressionUtil
;
import
org.apache.http.Consts
;
...
...
@@ -32,7 +17,6 @@ import org.apache.http.entity.ByteArrayEntity;
import
org.apache.http.entity.ContentType
;
import
org.apache.http.entity.StringEntity
;
import
org.apache.http.entity.mime.MultipartEntityBuilder
;
import
org.apache.http.impl.client.CloseableHttpClient
;
import
org.apache.http.message.BasicNameValuePair
;
import
org.apache.http.util.EntityUtils
;
import
org.matrix.config.HttpRequestConfig
;
...
...
@@ -52,17 +36,14 @@ import java.io.FileInputStream;
import
java.io.IOException
;
import
java.net.URISyntaxException
;
import
java.nio.charset.StandardCharsets
;
import
java.security.cert.X509Certificate
;
import
java.time.LocalDateTime
;
import
java.time.ZoneOffset
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.concurrent.TimeUnit
;
import
java.util.regex.Pattern
;
import
java.util.stream.Collectors
;
import
static
org
.
matrix
.
enums
.
ModuleType
.
CASE_ACTUATOR
;
import
static
org
.
matrix
.
enums
.
ModuleType
.
HTTP_ACTUATOR
;
/**
...
...
@@ -99,13 +80,13 @@ public class HttpClientActuator implements Actuator {
for
(
RequestHeader
header
:
httpRequestDetail
.
getHeaders
())
{
//获取动态变量,并将动态变量替换进去
header
.
setKey
(
completeExpressionUtil
.
complete
Dynamic
Variable
(
completeExpressionUtil
.
completeVariable
(
header
.
getKey
(),
envId
,
projectId
)
);
header
.
setValue
(
completeExpressionUtil
.
complete
Dynamic
Variable
(
completeExpressionUtil
.
completeVariable
(
header
.
getValue
(),
envId
,
projectId
)
...
...
@@ -113,13 +94,13 @@ public class HttpClientActuator implements Actuator {
}
for
(
RequestBody
requestBody
:
httpRequestDetail
.
getRequestBodies
())
{
requestBody
.
setKey
(
completeExpressionUtil
.
complete
Dynamic
Variable
(
completeExpressionUtil
.
completeVariable
(
requestBody
.
getKey
(),
envId
,
projectId
)
);
requestBody
.
setValue
(
completeExpressionUtil
.
complete
Dynamic
Variable
(
completeExpressionUtil
.
completeVariable
(
requestBody
.
getValue
(),
envId
,
projectId
)
...
...
@@ -127,13 +108,13 @@ public class HttpClientActuator implements Actuator {
}
if
(!
StringUtils
.
isEmpty
(
httpRequestDetail
.
getStringValue
())){
httpRequestDetail
.
setStringValue
(
completeExpressionUtil
.
complete
Dynamic
Variable
(
completeExpressionUtil
.
completeVariable
(
httpRequestDetail
.
getStringValue
(),
envId
,
projectId
)
);
}
httpRequestDetail
.
setUrl
(
completeExpressionUtil
.
complete
Dynamic
Variable
(
httpRequestDetail
.
setUrl
(
completeExpressionUtil
.
completeVariable
(
httpRequestDetail
.
getUrl
(),
envId
,
projectId
));
...
...
kt-base/src/main/java/org/matrix/actuators/util/CompleteExpressionUtil.java
浏览文件 @
36101754
...
...
@@ -4,6 +4,7 @@ package org.matrix.actuators.util;
import
com.alibaba.fastjson.JSON
;
import
com.jayway.jsonpath.Configuration
;
import
com.jayway.jsonpath.JsonPath
;
import
org.matrix.actuators.env.EnvironmentActuator
;
import
org.matrix.actuators.sql.SqlExpActuator
;
import
org.matrix.util.SpringUtils
;
import
org.springframework.stereotype.Component
;
...
...
@@ -31,7 +32,7 @@ public class CompleteExpressionUtil {
public
static
final
String
PATH_REG
=
"\\{(((?!pre\\.).)*?)}(\\[(.*?)])?"
;
public
String
complete
DynamicVariable
(
String
expression
,
Long
envId
,
Long
projectId
)
{
public
String
complete
Variable
(
String
expression
,
Long
envId
,
Long
projectId
)
{
String
result
=
expression
;
result
=
regexExpression
(
result
,
DYNAMIC_VARIABLE_REG
,
...
...
@@ -40,7 +41,7 @@ public class CompleteExpressionUtil {
result
=
regexExpression
(
result
,
ENV_VARIABLE_REG
,
null
,
(
o
,
s
)
->
get
SqlExpActuator
().
parseVarByName
(
s
,
envId
,
project
Id
));
get
EnvironmentActuator
().
replaceEnvVar
(
s
,
env
Id
));
return
result
;
}
...
...
@@ -94,4 +95,8 @@ public class CompleteExpressionUtil {
return
SpringUtils
.
getBean
(
"sqlExpActuator"
);
}
private
static
EnvironmentActuator
getEnvironmentActuator
(){
return
SpringUtils
.
getBean
(
"environmentActuator"
);
}
}
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论