Skip to content

Commit 6bbe451

Browse files
committed
fix 未配置节点白名单时直接创建分发项目报错
fix DSL 项目状态不判断 jps 命令是否正常
1 parent 3d02c35 commit 6bbe451

File tree

5 files changed

+29
-5
lines changed

5 files changed

+29
-5
lines changed

CHANGELOG.md

+2
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,8 @@
2525
10. 【server】优化 系统缓存页面显示当前服务器时间、时区信息
2626
11. 【server】修复 还原数据后备份状态错误问题
2727
(感谢 [@lin_yeqi](https://gitee.com/lin_yeqi) [Gitee issues I6MVL7](https://gitee.com/dromara/Jpom/issues/I6MVL7)
28+
12. 【agent】修复 DSL 项目状态不判断 jps 命令是否正常(感谢@大灰灰)
29+
13. 【agent】修复 未配置节点白名单时直接创建分发项目报错(感谢@波比)
2830

2931
### ❌ 不兼容功能
3032

modules/agent/src/main/java/io/jpom/common/commander/AbstractProjectCommander.java

+6-1
Original file line numberDiff line numberDiff line change
@@ -740,7 +740,12 @@ public int getPid(NodeProjectInfoModel nodeProjectInfoModel, NodeProjectInfoMode
740740
if (parsePid > 0) {
741741
PID_JPOM_NAME.put(parsePid, nodeProjectInfoModel.getName());
742742
} else {
743-
Assert.state(JvmUtil.jpsNormal, JvmUtil.JPS_ERROR_MSG);
743+
//
744+
RunMode runMode = nodeProjectInfoModel.getRunMode();
745+
if (runMode != RunMode.Dsl && runMode != RunMode.File) {
746+
// 只有 java 项目才判断 jps
747+
Assert.state(JvmUtil.jpsNormal, JvmUtil.JPS_ERROR_MSG);
748+
}
744749
}
745750
return parsePid;
746751
}

modules/agent/src/main/java/io/jpom/common/interceptor/DecryptionFilter.java

+4-2
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
package io.jpom.common.interceptor;
2424

2525
import cn.hutool.core.convert.Convert;
26+
import cn.hutool.core.util.StrUtil;
2627
import cn.hutool.extra.servlet.ServletUtil;
2728
import cn.hutool.http.ContentType;
2829
import io.jpom.encrypt.EncryptFactory;
@@ -64,11 +65,11 @@ public void doFilter(ServletRequest servletRequest, ServletResponse response, Fi
6465
}
6566
log.debug("当前请求需要解密:{}", encryptor.name());
6667
String contentType = request.getContentType();
67-
if (ContentType.isFormUrlEncode(contentType)) {
68+
if (ContentType.isDefault(contentType)) {
6869
// 普通表单
6970
HttpServletRequestWrapper wrapper = new ParameterRequestWrapper(request, encryptor);
7071
chain.doFilter(wrapper, response);
71-
} else if (contentType.contains(MediaType.APPLICATION_JSON_VALUE)) {
72+
} else if (StrUtil.startWithIgnoreCase(contentType, MediaType.APPLICATION_JSON_VALUE)) {
7273
String body = ServletUtil.getBody(request);
7374
String temp;
7475
try {
@@ -84,6 +85,7 @@ public void doFilter(ServletRequest servletRequest, ServletResponse response, Fi
8485
HttpServletRequestWrapper wrapper = new MultipartRequestWrapper(request, encryptor);
8586
chain.doFilter(wrapper, response);
8687
} else {
88+
log.warn("当前请求类型不支持加密:{}", contentType);
8789
chain.doFilter(servletRequest, response);
8890
}
8991
}

modules/agent/src/main/java/io/jpom/service/WhitelistDirectoryService.java

+10-2
Original file line numberDiff line numberDiff line change
@@ -23,13 +23,16 @@
2323
package io.jpom.service;
2424

2525
import cn.hutool.core.collection.CollUtil;
26+
import cn.hutool.core.util.ObjectUtil;
2627
import com.alibaba.fastjson2.JSONObject;
2728
import io.jpom.common.AgentConst;
2829
import io.jpom.model.data.AgentWhitelist;
2930
import io.jpom.util.JsonFileUtil;
3031
import lombok.extern.slf4j.Slf4j;
3132
import org.springframework.stereotype.Service;
3233

34+
import java.util.ArrayList;
35+
import java.util.Collections;
3336
import java.util.List;
3437
import java.util.stream.Collectors;
3538

@@ -67,11 +70,16 @@ public AgentWhitelist getWhitelist() {
6770
* @param item 白名单
6871
*/
6972
public void addProjectWhiteList(String item) {
70-
List<String> checkOk = AgentWhitelist.covertToArray(CollUtil.newArrayList(item), "项目路径白名单不能位于Jpom目录下");
73+
ArrayList<String> list = CollUtil.newArrayList(item);
74+
List<String> checkOk = AgentWhitelist.covertToArray(list, "项目路径白名单不能位于Jpom目录下");
7175

7276
AgentWhitelist agentWhitelist = getWhitelist();
7377
List<String> project = agentWhitelist.getProject();
74-
project = CollUtil.addAll(project, checkOk).stream().distinct().collect(Collectors.toList());
78+
project = ObjectUtil.defaultIfNull(project, Collections.emptyList());
79+
project = CollUtil.addAll(project, checkOk)
80+
.stream()
81+
.distinct()
82+
.collect(Collectors.toList());
7583
agentWhitelist.setProject(project);
7684
saveWhitelistDirectory(agentWhitelist);
7785
}

modules/agent/src/test/java/TestStr.java

+7
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@
2020
* IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
2121
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
2222
*/
23+
24+
import cn.hutool.core.collection.CollUtil;
2325
import cn.hutool.core.convert.Convert;
2426
import cn.hutool.core.lang.PatternPool;
2527
import cn.hutool.core.lang.RegexPool;
@@ -92,4 +94,9 @@ public void testNum() {
9294
public void testTimeZone() {
9395
System.out.println(TimeZone.getDefault().getID());
9496
}
97+
98+
@Test
99+
public void testList() {
100+
System.out.println(CollUtil.addAll(null, CollUtil.newArrayList("")));
101+
}
95102
}

0 commit comments

Comments
 (0)