diff --git a/Dockerfile b/Dockerfile index d2d164a..ffa49cc 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM jumpserver/chen-base:20260303_090037 AS stage-build +FROM jumpserver/chen-base:20260618_031928 AS stage-build ENV LANG=en_US.UTF-8 WORKDIR /opt/chen/ diff --git a/Dockerfile-base b/Dockerfile-base index bb06282..dbbdf1d 100644 --- a/Dockerfile-base +++ b/Dockerfile-base @@ -43,7 +43,7 @@ RUN --mount=type=cache,target=/usr/local/share/.cache/yarn,sharing=locked,id=che npm install # Install Maven dependencies -ARG MAVEN_VERSION=3.9.12 +ARG MAVEN_VERSION=3.9.16 ARG USER_HOME_DIR="/root" ARG BASE_URL=https://downloads.apache.org/maven/maven-3/${MAVEN_VERSION}/binaries ARG MAVEN_MIRROR=https://repo.maven.apache.org/maven2 diff --git a/backend/framework/src/main/java/org/jumpserver/chen/framework/console/DataViewConsole.java b/backend/framework/src/main/java/org/jumpserver/chen/framework/console/DataViewConsole.java index 0f9c9eb..e808d64 100644 --- a/backend/framework/src/main/java/org/jumpserver/chen/framework/console/DataViewConsole.java +++ b/backend/framework/src/main/java/org/jumpserver/chen/framework/console/DataViewConsole.java @@ -1,6 +1,6 @@ package org.jumpserver.chen.framework.console; -import com.alibaba.fastjson.JSON; +import com.google.gson.Gson; import org.apache.commons.lang3.StringUtils; import org.jumpserver.chen.framework.console.action.DataViewAction; import org.jumpserver.chen.framework.console.dataview.DataView; @@ -33,6 +33,8 @@ public class DataViewConsole extends AbstractConsole { private String schema; private String table; + private static final Gson GSON = new Gson(); + public DataViewConsole(Datasource datasource, WebSocketSession ws, String nodeKey) { super(datasource, ws, nodeKey); } @@ -73,7 +75,7 @@ public void handle(Packet packet) { switch (packet.getType()) { case "ping" -> this.getPacketIO().sendPacket("pong", null); case Packet.TYPE_DATA_VIEW_ACTION -> { - var action = JSON.parseObject(JSON.toJSONString(packet.getData()), DataViewAction.class); + var action = GSON.fromJson(GSON.toJson(packet.getData()), DataViewAction.class); this.onDataViewAction(action); } } diff --git a/backend/framework/src/main/java/org/jumpserver/chen/framework/console/QueryConsole.java b/backend/framework/src/main/java/org/jumpserver/chen/framework/console/QueryConsole.java index 26c90d2..ca25f62 100644 --- a/backend/framework/src/main/java/org/jumpserver/chen/framework/console/QueryConsole.java +++ b/backend/framework/src/main/java/org/jumpserver/chen/framework/console/QueryConsole.java @@ -1,7 +1,7 @@ package org.jumpserver.chen.framework.console; import com.alibaba.druid.sql.parser.ParserException; -import com.alibaba.fastjson.JSON; +import com.google.gson.Gson; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.jumpserver.chen.framework.console.action.DataViewAction; @@ -48,6 +48,8 @@ public class QueryConsole extends AbstractConsole { private StateManager stateManager; private final Map dataViews = new HashMap<>(); + private static final Gson GSON = new Gson(); + public QueryConsole(Datasource datasource, WebSocketSession ws, String nodeKey) { super(datasource, ws, nodeKey); this.setTitle(String.format(MessageUtils.get("Query") + "-%d", generateConsoleName())); @@ -132,12 +134,12 @@ public void handle(Packet packet) { } case Packet.TYPE_QUERY_CONSOLE_ACTION -> { - var action = JSON.parseObject(JSON.toJSONString(packet.getData()), QueryConsoleAction.class); + var action = GSON.fromJson(GSON.toJson(packet.getData()), QueryConsoleAction.class); this.onAction(action); } case Packet.TYPE_DATA_VIEW_ACTION -> { - var action = JSON.parseObject(JSON.toJSONString(packet.getData()), DataViewAction.class); + var action = GSON.fromJson(GSON.toJson(packet.getData()), DataViewAction.class); this.onDataViewAction(action); } default -> log.warn("Unknown packet type {}", packet.getType()); diff --git a/backend/framework/src/main/java/org/jumpserver/chen/framework/ws/ConsoleWebSocketHandler.java b/backend/framework/src/main/java/org/jumpserver/chen/framework/ws/ConsoleWebSocketHandler.java index 6d1ec9c..0968d18 100644 --- a/backend/framework/src/main/java/org/jumpserver/chen/framework/ws/ConsoleWebSocketHandler.java +++ b/backend/framework/src/main/java/org/jumpserver/chen/framework/ws/ConsoleWebSocketHandler.java @@ -1,6 +1,6 @@ package org.jumpserver.chen.framework.ws; -import com.alibaba.fastjson.JSON; +import com.google.gson.Gson; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.jumpserver.chen.framework.console.Console; @@ -22,6 +22,8 @@ @Slf4j public class ConsoleWebSocketHandler extends TextWebSocketHandler { + private static final Gson GSON = new Gson(); + @Override public void afterConnectionEstablished(WebSocketSession session) throws Exception { @@ -44,7 +46,7 @@ public void handleMessage(WebSocketSession session, WebSocketMessage message) var token = (String) session.getAttributes().get("token"); SessionManager.setContext(token); - var packet = JSON.parseObject(message.getPayload().toString(), Packet.class); + var packet = GSON.fromJson(message.getPayload().toString(), Packet.class); if (StringUtils.equals(packet.getType(), Packet.TYPE_CONNECT)) { onConnectPacket(session, packet); } else { @@ -68,7 +70,7 @@ public void handleMessage(WebSocketSession session, WebSocketMessage message) } private void onConnectPacket(WebSocketSession session, Packet packet) { - Connect connect = JSON.parseObject(packet.getData().toString(), Connect.class); + Connect connect = GSON.fromJson(packet.getData().toString(), Connect.class); Console console = null; var webSess = SessionManager.getCurrentSession(); diff --git a/backend/framework/src/main/java/org/jumpserver/chen/framework/ws/SessionWebSocketHandler.java b/backend/framework/src/main/java/org/jumpserver/chen/framework/ws/SessionWebSocketHandler.java index 048ad4b..1c0b2a0 100644 --- a/backend/framework/src/main/java/org/jumpserver/chen/framework/ws/SessionWebSocketHandler.java +++ b/backend/framework/src/main/java/org/jumpserver/chen/framework/ws/SessionWebSocketHandler.java @@ -1,6 +1,6 @@ package org.jumpserver.chen.framework.ws; -import com.alibaba.fastjson.JSON; +import com.google.gson.Gson; import lombok.extern.slf4j.Slf4j; import org.jumpserver.chen.framework.i18n.MessageUtils; import org.jumpserver.chen.framework.session.Session; @@ -17,6 +17,8 @@ @Slf4j public class SessionWebSocketHandler extends TextWebSocketHandler { + private static final Gson GSON = new Gson(); + @Override public void afterConnectionEstablished(WebSocketSession session) throws Exception { @@ -77,7 +79,11 @@ public void handleMessage(WebSocketSession session, WebSocketMessage message) SessionManager.setContext(token); var webSession = SessionManager.getCurrentSession(); - var packet = JSON.parseObject(message.getPayload().toString(), Packet.class); + var packet = GSON.fromJson( + message.getPayload().toString(), + Packet.class + ); + switch (packet.getType()) { case "ping" -> { log.debug("receive ping packet from session {}", webSession.getUsername()); diff --git a/backend/framework/src/main/java/org/jumpserver/chen/framework/ws/io/PacketIO.java b/backend/framework/src/main/java/org/jumpserver/chen/framework/ws/io/PacketIO.java index 80c523d..5de5d2a 100644 --- a/backend/framework/src/main/java/org/jumpserver/chen/framework/ws/io/PacketIO.java +++ b/backend/framework/src/main/java/org/jumpserver/chen/framework/ws/io/PacketIO.java @@ -1,6 +1,6 @@ package org.jumpserver.chen.framework.ws.io; - -import com.alibaba.fastjson.JSON; +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; import lombok.Getter; import lombok.extern.slf4j.Slf4j; import org.springframework.web.socket.TextMessage; @@ -19,10 +19,15 @@ public PacketIO(WebSocketSession ws) { this.wsSession = ws; } + private static final Gson GSON = new GsonBuilder() + .setDateFormat("yyyy-MM-dd HH:mm:ss") + .create(); + public void sendPacket(Packet packet) { synchronized (this.wsSession) { try { - String json = JSON.toJSONStringWithDateFormat(packet, "yyyy-MM-dd HH:mm:ss"); + + String json = GSON.toJson(packet); this.wsSession.sendMessage(new TextMessage(json)); } catch (IOException e) { log.error(e.getMessage()); diff --git a/pom.xml b/pom.xml index 4ad7033..0922588 100644 --- a/pom.xml +++ b/pom.xml @@ -52,11 +52,6 @@ lombok 1.18.38 - - com.alibaba - fastjson - 1.2.83 - com.google.code.gson gson